@redocly/openapi-docs 3.2.9 → 3.2.10

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LanguageList=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),LanguageDropdown_1=require("./LanguageDropdown"),app_1=require("../../jotai/app"),styled_1=require("./styled"),LanguageItem_1=require("./LanguageItem"),constants_1=require("./constants"),LanguageListSkeleton_1=require("../common/Skeleton/LanguageListSkeleton");function LanguageListComponent({languages:e,activeLanguage:t}){const[n,a]=(0,react_1.useState)([]),[s,i]=(0,react_1.useState)([]),r=(0,react_1.useRef)(null),o=(0,jotai_1.useAtomValue)(app_1.layoutAtom),u=(0,jotai_1.useSetAtom)(app_1.languageAtom),_=(0,react_1.useCallback)((()=>{var n;const s=null===(n=null==r?void 0:r.current)||void 0===n?void 0:n.offsetWidth;if(!s)return;const{newVisibleItems:o,newHiddenItems:u}=calculateVisibleAndHiddenItems(s,[...e]),_=u.findIndex((e=>e.key===t));-1!==_&&swapItems(o,u,_),a(o),i(u)}),[t,e]);return(0,react_1.useLayoutEffect)((()=>(_(),window.addEventListener("resize",_),()=>{window.removeEventListener("resize",_)})),[o,t]),(0,jsx_runtime_1.jsxs)(styled_1.Container,{ref:r,children:[(0,jsx_runtime_1.jsxs)(styled_1.LanguageListContainer,{children:[!n.length&&(0,jsx_runtime_1.jsx)(LanguageListSkeleton_1.LanguageListSkeleton,{}),n.map((e=>(0,jsx_runtime_1.jsx)(styled_1.LanguageListItem,{onClick:()=>u(e.key),active:t===e.key,children:(0,jsx_runtime_1.jsx)(LanguageItem_1.LanguageItem,{item:e,withIcon:!0})},e.key)))]}),s.length?(0,jsx_runtime_1.jsx)(LanguageDropdown_1.LanguageDropdown,{activeTab:t,samples:s,onChange:e=>{const t=s.findIndex((t=>t.key===e));if(-1!==t){const r=[...s],o=[...n];swapItems(o,r,t),a(o),i(r),u(e)}},trigger:(0,jsx_runtime_1.jsx)(theme_1.Button,{icon:(0,jsx_runtime_1.jsx)(theme_1.OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}function calculateVisibleAndHiddenItems(e,t){let n=0;const a=[],s=[];return t.forEach((t=>{e&&n+constants_1.ITEM_WIDTH<=e?(a.push(t),n+=constants_1.ITEM_WIDTH):s.push(t)})),{newVisibleItems:a,newHiddenItems:s}}function swapItems(e,t,n){const a=e[e.length-1];a&&(e[e.length-1]=t[n],t[n]=a)}exports.LanguageList=(0,react_1.memo)(LanguageListComponent);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LanguageList=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),LanguageDropdown_1=require("./LanguageDropdown"),app_1=require("../../jotai/app"),styled_1=require("./styled"),LanguageItem_1=require("./LanguageItem"),constants_1=require("./constants"),LanguageListSkeleton_1=require("../common/Skeleton/LanguageListSkeleton");function LanguageListComponent({languages:e,activeLanguage:t}){const[n,a]=(0,react_1.useState)([]),[s,i]=(0,react_1.useState)([]),r=(0,react_1.useRef)(null),o=(0,jotai_1.useAtomValue)(app_1.layoutAtom),u=(0,jotai_1.useSetAtom)(app_1.languageAtom),_=(0,react_1.useCallback)((()=>{var n;const s=null===(n=null==r?void 0:r.current)||void 0===n?void 0:n.offsetWidth;if(!s)return;const{newVisibleItems:o,newHiddenItems:u}=calculateVisibleAndHiddenItems(s,[...e]),_=u.findIndex((e=>e.key===t));-1!==_&&swapItems(o,u,_),a(o),i(u)}),[t,e]);return(0,react_1.useLayoutEffect)((()=>(_(),window.addEventListener("resize",_),()=>{window.removeEventListener("resize",_)})),[o,t]),(0,jsx_runtime_1.jsxs)(styled_1.Container,{ref:r,children:[(0,jsx_runtime_1.jsxs)(styled_1.LanguageListContainer,{children:[!n.length&&(0,jsx_runtime_1.jsx)(LanguageListSkeleton_1.LanguageListSkeleton,{}),n.map((e=>(0,jsx_runtime_1.jsx)(styled_1.LanguageListItem,{onClick:()=>u(e.key),active:t===e.key,children:(0,jsx_runtime_1.jsx)(LanguageItem_1.LanguageItem,{item:e,withIcon:!0})},e.key)))]}),s.length?(0,jsx_runtime_1.jsx)(LanguageDropdown_1.LanguageDropdown,{activeTab:t,samples:s,onChange:e=>{const t=s.findIndex((t=>t.key===e));if(-1!==t){const r=[...s],o=[...n];swapItems(o,r,t),a(o),i(r),u(e)}},trigger:(0,jsx_runtime_1.jsx)(theme_1.Button,{icon:(0,jsx_runtime_1.jsx)(theme_1.OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}function calculateVisibleAndHiddenItems(e,t){let n=0;const a=[],s=[];return t.forEach(((i,r)=>{const o=r===t.length-1&&0===s.length?0:constants_1.DROPDOWN_TRIGGER_WIDTH;e&&n+constants_1.ITEM_WIDTH+o<=e?(a.push(i),n+=constants_1.ITEM_WIDTH):s.push(i)})),{newVisibleItems:a,newHiddenItems:s}}function swapItems(e,t,n){const a=e[e.length-1];a&&(e[e.length-1]=t[n],t[n]=a)}exports.LanguageList=(0,react_1.memo)(LanguageListComponent);
2
2
  //# sourceMappingURL=LanguageList.js.map
@@ -1 +1,2 @@
1
1
  export declare const ITEM_WIDTH = 78;
2
+ export declare const DROPDOWN_TRIGGER_WIDTH = 32;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ITEM_WIDTH=void 0,exports.ITEM_WIDTH=78;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DROPDOWN_TRIGGER_WIDTH=exports.ITEM_WIDTH=void 0,exports.ITEM_WIDTH=78,exports.DROPDOWN_TRIGGER_WIDTH=32;
2
2
  //# sourceMappingURL=constants.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeInMockServer=exports.getOperation=exports.isPayloadSample=void 0;const theme_1=require("@redocly/theme"),utils_1=require("../utils"),callback_1=require("./callback"),field_1=require("./field"),request_1=require("./request"),security_1=require("./security"),response_1=require("./response"),operation_1=require("../services/menu/operation");function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}function getOperation(e,r,t,s,i,o){var a,n;const l=r.isWebhook,p={operationDefinition:r,parent:t,pointer:r.pointer,description:(0,utils_1.getValueFromMdParsedExtension)(r,"description"),externalDocs:r.externalDocs,deprecated:!!r.deprecated,httpVerb:r.httpVerb,operationId:r.operationId,path:r.pathName,isWebhook:l,isCallback:Boolean(null==o?void 0:o.isCallback),isEvent:(null==o?void 0:o.isCallback)||l,name:(0,utils_1.getOperationName)(r),defaultExampleName:r.defaultSampleName,type:"operation",callbackId:null==o?void 0:o.id,href:i,get callbacks(){return Object.keys(r.callbacks||[]).map((o=>{var a;return(0,callback_1.getCallback)(e,o,null===(a=r.callbacks)||void 0===a?void 0:a[o],p.pointer,s,i,t)}))},get responses(){let t=!1;return Object.keys(r.responses||[]).filter((e=>"default"===e||("success"===(0,utils_1.getStatusCodeType)(e)&&(t=!0),(0,utils_1.isStatusCode)(e)))).map((i=>(0,response_1.getResponse)({parser:e,code:i,defaultAsError:t,infoOrRef:r.responses[i],options:s,isEvent:p.isEvent,operation:p})))},get parameters(){let t=(0,utils_1.mergeParams)(e,r.pathParameters,r.parameters,{pathPointer:utils_1.JsonPointer.dirName(p.pointer),operationPointer:p.pointer}).map((({paramOrRef:r,pointer:t})=>(0,field_1.getField)(e,r,t,s,{operation:p,type:"request"})));return s.sortRequiredPropsFirst&&(t=(0,utils_1.sortByRequired)(t)),(0,utils_1.sortByDeprecated)(t)}};(null==o?void 0:o.isCallback)?(p.security=(r.security||[]).map((r=>(0,security_1.getSecurityRequirement)({requirement:r,parser:e}))),p.servers=(0,utils_1.normalizeServers)("",r.servers||r.pathServers||[]),p.id=(0,theme_1.removeLeadingSlash)(i)):(p.id=(0,utils_1.getOperationId)(r,t),p.href=p.href||(0,operation_1.getHref)(p),p.security=(r.security||e.definition.security||[]).map((r=>(0,security_1.getSecurityRequirement)({requirement:r,parser:e}))),p.servers=(0,utils_1.normalizeServers)(e.definitionUrl,mergeInMockServer(r.servers||r.pathServers||e.definition.servers||[],s.mockServer))),s.showExtensions&&(p.extensions=(0,utils_1.extractExtensions)(r,s.showExtensions)),p.requestBody=r.requestBody&&(0,request_1.getRequestBody)({parser:e,infoOrRef:r.requestBody,options:s,operation:p,isEvent:p.isEvent});const u=null===(a=p.requestBody)||void 0===a?void 0:a.content;return p.payload={lang:"Payload",source:"",requestBodyContent:(null==u?void 0:u.hasSample)?u:void 0},p.definitionSamples=r["x-codeSamples"]||[],p.badges=(null===(n=r["x-badges"])||void 0===n?void 0:n.map((({name:e,color:r,position:t})=>({name:e,color:r||"var(--color-info-base)",position:t||"after"}))))||[],p.hasSamples=(null==u?void 0:u.hasSample)||p.definitionSamples.length>0,p.hideReplay=!0===r["x-hideReplay"],p}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}}exports.isPayloadSample=isPayloadSample,exports.getOperation=getOperation,exports.mergeInMockServer=mergeInMockServer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeInMockServer=exports.getOperation=exports.isPayloadSample=void 0;const theme_1=require("@redocly/theme"),utils_1=require("../utils"),callback_1=require("./callback"),field_1=require("./field"),request_1=require("./request"),security_1=require("./security"),response_1=require("./response"),operation_1=require("../services/menu/operation");function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}function getOperation(e,r,t,s,i,o){var a,n;const l=r.isWebhook,p={operationDefinition:r,parent:t,pointer:r.pointer,description:(0,utils_1.getValueFromMdParsedExtension)(r,"description"),externalDocs:r.externalDocs,deprecated:!!r.deprecated,httpVerb:r.httpVerb,operationId:r.operationId,path:r.pathName,isWebhook:l,isCallback:Boolean(null==o?void 0:o.isCallback),isEvent:(null==o?void 0:o.isCallback)||l,name:(0,utils_1.getOperationName)(r),defaultExampleName:r.defaultSampleName,type:"operation",callbackId:null==o?void 0:o.id,href:i,get callbacks(){return Object.keys(r.callbacks||[]).map((o=>{var a;return(0,callback_1.getCallback)(e,o,null===(a=r.callbacks)||void 0===a?void 0:a[o],p.pointer,s,i,t)}))},get responses(){let t=!1;return Object.keys(r.responses||[]).filter((e=>"default"===e||("success"===(0,utils_1.getStatusCodeType)(e)&&(t=!0),(0,utils_1.isStatusCode)(e)))).map((i=>(0,response_1.getResponse)({parser:e,code:i,defaultAsError:t,infoOrRef:r.responses[i],options:s,isEvent:p.isEvent,operation:p})))},get parameters(){let t=(0,utils_1.mergeParams)(e,r.pathParameters,r.parameters,{pathPointer:utils_1.JsonPointer.dirName(p.pointer),operationPointer:p.pointer}).map((({paramOrRef:r,pointer:t})=>(0,field_1.getField)(e,r,t,s,{operation:p,type:"request"})));return s.sortRequiredPropsFirst&&(t=(0,utils_1.sortByRequired)(t)),(0,utils_1.sortByDeprecated)(t)}};if(null==o?void 0:o.isCallback)p.security=(Array.isArray(r.security)?r.security:[]).map((r=>(0,security_1.getSecurityRequirement)({requirement:r,parser:e}))),p.servers=(0,utils_1.normalizeServers)("",r.servers||r.pathServers||[]),p.id=(0,theme_1.removeLeadingSlash)(i);else{p.id=(0,utils_1.getOperationId)(r,t),p.href=p.href||(0,operation_1.getHref)(p);const i=r.security||e.definition.security;p.security=(Array.isArray(i)?i:[]).map((r=>(0,security_1.getSecurityRequirement)({requirement:r,parser:e}))),p.servers=(0,utils_1.normalizeServers)(e.definitionUrl,mergeInMockServer(r.servers||r.pathServers||e.definition.servers||[],s.mockServer))}s.showExtensions&&(p.extensions=(0,utils_1.extractExtensions)(r,s.showExtensions)),p.requestBody=r.requestBody&&(0,request_1.getRequestBody)({parser:e,infoOrRef:r.requestBody,options:s,operation:p,isEvent:p.isEvent});const u=null===(a=p.requestBody)||void 0===a?void 0:a.content;return p.payload={lang:"Payload",source:"",requestBodyContent:(null==u?void 0:u.hasSample)?u:void 0},p.definitionSamples=r["x-codeSamples"]||[],p.badges=(null===(n=r["x-badges"])||void 0===n?void 0:n.map((({name:e,color:r,position:t})=>({name:e,color:r||"var(--color-info-base)",position:t||"after"}))))||[],p.hasSamples=(null==u?void 0:u.hasSample)||p.definitionSamples.length>0,p.hideReplay=!0===r["x-hideReplay"],p}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}}exports.isPayloadSample=isPayloadSample,exports.getOperation=getOperation,exports.mergeInMockServer=mergeInMockServer;
2
2
  //# sourceMappingURL=operation.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAPIParser=exports.concatRefStacks=exports.pushRef=void 0;const theme_1=require("@redocly/theme"),utils_1=require("../utils"),JsonPointer_1=require("../utils/JsonPointer"),normalizeOptions_1=require("./config-options/normalizeOptions");function pushRef(e,t){return t&&e[e.length-1]!==t?[...e,t]:e}function concatRefStacks(e,t){return t?e.concat(t):e}exports.pushRef=pushRef,exports.concatRefStacks=concatRefStacks;class OpenAPIParser{constructor(e,t,r=(0,normalizeOptions_1.normalizeOptions)({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"definitionUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allowMergeRefs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"byRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{let t;if(this.definition){"#"!==e.charAt(0)&&(e="#"+e),e=decodeURIComponent(e);try{t=JsonPointer_1.JsonPointer.get(this.definition,e)}catch(e){}return t||{}}}}),this.definition=Object.assign({},e),this.validate(e),this.definition=e,this.allowMergeRefs=e.openapi.startsWith("3.1");const i=theme_1.IS_BROWSER?window.location.href:"";"string"==typeof t&&(this.definitionUrl=new URL(t,i).href)}validate(e){if(void 0===e.openapi)throw new Error("Document must be valid OpenAPI 3.0.0 definition")}isRef(e){return!!e&&(void 0!==e.$ref&&null!==e.$ref)}deref(e,t=[],r=!1){const i=null==e?void 0:e["x-refsStack"];if(t=concatRefStacks(t,i),this.isRef(e)){const i=(0,utils_1.getDefinitionName)(e.$ref);if(i&&this.options.ignoreNamedSchemas.has(i))return{resolved:{type:"object",title:i},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);let s=t;if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){const e=this.deref(n,t,r);s=e.refsStack,n=e.resolved}return s=pushRef(t,e.$ref),n=this.allowMergeRefs?this.mergeRefs(e,n,r):n,{resolved:n,refsStack:s}}return{resolved:e,refsStack:concatRefStacks(t,i)}}mergeRefs(e,t,r){const{$ref:i}=e,n=__rest(e,["$ref"]),s=Object.keys(n);if(0===s.length)return t;if(r&&s.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly"].includes(e)))){const e=n,{description:r,title:i,readOnly:s,writeOnly:o}=e;return{allOf:[{description:r,title:i,readOnly:s,writeOnly:o},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,r,i=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:i},e);let s=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer_1.JsonPointer.join(i,["allOf"]),allOf:void 0,title:e.title||(0,utils_1.getDefinitionName)(t)});void 0!==s.properties&&"object"==typeof s.properties&&(s.properties=Object.assign({},s.properties)),void 0!==s.items&&"object"==typeof s.items&&(s.items=Object.assign({},s.items));const o=e.allOf.map(((e,t)=>{var n;const{resolved:o,refsStack:a}=this.deref(e,r,!0),l=e.$ref,f=l||JsonPointer_1.JsonPointer.join(i,[String(t)]),c=this.mergeAllOf(o,l,a,f);if(!c["x-circular-ref"]||!c.allOf)return l&&(null===(n=s["x-parentRefs"])||void 0===n||n.push(...c["x-parentRefs"]||[],l)),{$ref:l,refsStack:pushRef(a,l),schema:c,absolutePointer:f}})).filter((e=>void 0!==e));for(const[e,{schema:r,refsStack:i,absolutePointer:a}]of o.entries()){const{type:o,enum:l,properties:f,items:c,required:p,title:d,description:O,readOnly:u,writeOnly:y,oneOf:b,anyOf:h,"x-circular-ref":m}=r,v=__rest(r,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref"]);if(s.type===o||void 0===s.type||void 0===o){if(void 0!==o&&(Array.isArray(o)&&Array.isArray(s.type)?s.type=[...o,...s.type]:s.type=o),void 0!==l&&(Array.isArray(l)&&Array.isArray(s.enum)?s.enum=Array.from(new Set([...l,...s.enum])):s.enum=l),void 0!==f&&"object"==typeof f){s.properties=s.properties||{};for(const r in f){const o=concatRefStacks(i,null===(n=f[r])||void 0===n?void 0:n["x-refsStack"]);if(s.properties[r]){if(!m){const i=this.mergeAllOf({allOf:[s.properties[r],f[r]],"x-refsStack":o},t+"/properties/"+r,o,JsonPointer_1.JsonPointer.join(a,["allOf",String(e),"properties",r]));s.properties[r]=i}}else s.properties[r]=Object.assign(Object.assign({},f[r]),{absolutePointer:JsonPointer_1.JsonPointer.join(a,["properties",r]),"x-refsStack":o})}}if(void 0!==c&&!m){const e="boolean"==typeof s.items?{}:Object.assign({},s.items),n="boolean"==typeof r.items?{}:Object.assign({},r.items);s.items=this.mergeAllOf({allOf:[e,n]},t+"/items",i)}void 0!==b&&(s.oneOf=b),void 0!==h&&(s.anyOf=h),void 0!==p&&(s.required=[...s.required||[],...p]),s=Object.assign(Object.assign(Object.assign({},s),{title:s.title||d,description:s.description||O,readOnly:void 0!==s.readOnly?s.readOnly:u,writeOnly:void 0!==s.writeOnly?s.writeOnly:y,"x-circular-ref":s["x-circular-ref"]||m}),v)}}return s}findDerived(e){const t={},r=this.definition.components&&this.definition.components.schemas||{};for(const i in r){const{resolved:n}=this.deref(r[i]);void 0!==n.allOf&&n.allOf.find((t=>void 0!==t.$ref&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+i]=[n["x-discriminator-value"]||i])}return t}hoistOneOfs(e){if(void 0===e.allOf)return e;const t=e.allOf;for(let e=0;e<t.length;e++){const r=t[e];if(Array.isArray(r.oneOf)){const i=t.slice(0,e),n=t.slice(e+1);return{oneOf:r.oneOf.map((e=>({allOf:[...i,e,...n]})))}}}return e}}exports.OpenAPIParser=OpenAPIParser;
1
+ "use strict";var __rest=this&&this.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAPIParser=exports.concatRefStacks=exports.pushRef=void 0;const theme_1=require("@redocly/theme"),utils_1=require("../utils"),JsonPointer_1=require("../utils/JsonPointer"),normalizeOptions_1=require("./config-options/normalizeOptions");function pushRef(e,t){return t&&e[e.length-1]!==t?[...e,t]:e}function concatRefStacks(e,t){return t?e.concat(t):e}exports.pushRef=pushRef,exports.concatRefStacks=concatRefStacks;class OpenAPIParser{constructor(e,t,r=(0,normalizeOptions_1.normalizeOptions)({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"definitionUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allowMergeRefs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"byRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{let t;if(this.definition){"#"!==e.charAt(0)&&(e="#"+e),e=decodeURIComponent(e);try{t=JsonPointer_1.JsonPointer.get(this.definition,e)}catch(e){}return t||{}}}}),this.definition=Object.assign({},e),this.validate(e),this.definition=e,this.allowMergeRefs=e.openapi.startsWith("3.1");const i=theme_1.IS_BROWSER?window.location.href:"";"string"==typeof t&&(this.definitionUrl=new URL(t,i).href)}validate(e){if(void 0===e.openapi)throw new Error("Document must be valid OpenAPI 3.0.0 definition")}isRef(e){return!!e&&(void 0!==e.$ref&&null!==e.$ref)}deref(e,t=[],r=!1){const i=null==e?void 0:e["x-refsStack"];if(t=concatRefStacks(t,i),this.isRef(e)){const i=(0,utils_1.getDefinitionName)(e.$ref);if(i&&this.options.ignoreNamedSchemas.has(i))return{resolved:{type:"object",title:i},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);let s=t;if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){const e=this.deref(n,t,r);s=e.refsStack,n=e.resolved}return s=pushRef(t,e.$ref),n=this.allowMergeRefs?this.mergeRefs(e,n,r):n,{resolved:n,refsStack:s}}return{resolved:e,refsStack:concatRefStacks(t,i)}}mergeRefs(e,t,r){const{$ref:i}=e,n=__rest(e,["$ref"]),s=Object.keys(n);if(0===s.length)return t;if(r&&s.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly"].includes(e)))){const e=n,{description:r,title:i,readOnly:s,writeOnly:o}=e;return{allOf:[{description:r,title:i,readOnly:s,writeOnly:o},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,r,i=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:i},e);let s=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer_1.JsonPointer.join(i,["allOf"]),allOf:void 0,title:e.title||(0,utils_1.getDefinitionName)(t)});void 0!==s.properties&&"object"==typeof s.properties&&(s.properties=Object.assign({},s.properties)),void 0!==s.items&&"object"==typeof s.items&&(s.items=Object.assign({},s.items));const o=e.allOf.map(((e,t)=>{var n;const{resolved:o,refsStack:a}=this.deref(e,r,!0),l=e.$ref,f=l||JsonPointer_1.JsonPointer.join(i,[String(t)]),c=this.mergeAllOf(o,l,a,f);if(!c["x-circular-ref"]||!c.allOf)return l&&(null===(n=s["x-parentRefs"])||void 0===n||n.push(...c["x-parentRefs"]||[],l)),{$ref:l,refsStack:pushRef(a,l),schema:c,absolutePointer:f}})).filter((e=>void 0!==e));for(const[e,{schema:r,refsStack:i,absolutePointer:a}]of o.entries()){const{type:o,enum:l,properties:f,items:c,required:p,title:d,description:O,readOnly:u,writeOnly:y,oneOf:b,anyOf:h,"x-circular-ref":m}=r,v=__rest(r,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref"]);if(s.type===o||void 0===s.type||void 0===o){if(void 0!==o&&(Array.isArray(o)&&Array.isArray(s.type)?s.type=[...o,...s.type]:s.type=o),void 0!==l&&(Array.isArray(l)&&Array.isArray(s.enum)?s.enum=Array.from(new Set([...l,...s.enum])):s.enum=l),void 0!==f&&"object"==typeof f){s.properties=s.properties||{};for(const r in f){const o=concatRefStacks(i,null===(n=f[r])||void 0===n?void 0:n["x-refsStack"]);if(s.properties[r]){if(!m){const i=this.mergeAllOf({allOf:[s.properties[r],f[r]],"x-refsStack":o},t+"/properties/"+r,o,JsonPointer_1.JsonPointer.join(a,["allOf",String(e),"properties",r]));s.properties[r]=i}}else s.properties[r]=Object.assign(Object.assign({},f[r]),{absolutePointer:JsonPointer_1.JsonPointer.join(a,["properties",r]),"x-refsStack":o})}}if(void 0!==c&&!m){const e="boolean"==typeof s.items?{}:Object.assign({},s.items),n="boolean"==typeof r.items?{}:Object.assign({},r.items);s.items=this.mergeAllOf({allOf:[e,n]},t+"/items",i)}void 0!==b&&(s.oneOf=b),void 0!==h&&(s.anyOf=h),Array.isArray(p)&&(s.required=[...s.required||[],...p]),s=Object.assign(Object.assign(Object.assign({},s),{title:s.title||d,description:s.description||O,readOnly:void 0!==s.readOnly?s.readOnly:u,writeOnly:void 0!==s.writeOnly?s.writeOnly:y,"x-circular-ref":s["x-circular-ref"]||m}),v)}}return s}findDerived(e){const t={},r=this.definition.components&&this.definition.components.schemas||{};for(const i in r){const{resolved:n}=this.deref(r[i]);void 0!==n.allOf&&n.allOf.find((t=>void 0!==t.$ref&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+i]=[n["x-discriminator-value"]||i])}return t}hoistOneOfs(e){if(void 0===e.allOf)return e;const t=e.allOf;for(let e=0;e<t.length;e++){const r=t[e];if(Array.isArray(r.oneOf)){const i=t.slice(0,e),n=t.slice(e+1);return{oneOf:r.oneOf.map((e=>({allOf:[...i,e,...n]})))}}}return e}}exports.OpenAPIParser=OpenAPIParser;
2
2
  //# sourceMappingURL=OpenAPIParser.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useLayoutEffect,useRef,useState,useCallback,memo}from"react";import{useAtomValue,useSetAtom}from"jotai";import{Button,OverflowMenuVerticalIcon}from"@redocly/theme";import{LanguageDropdown}from"./LanguageDropdown";import{languageAtom,layoutAtom}from"../../jotai/app";import{LanguageListContainer,LanguageListItem,Container}from"./styled";import{LanguageItem}from"./LanguageItem";import{ITEM_WIDTH}from"./constants";import{LanguageListSkeleton}from"../common/Skeleton/LanguageListSkeleton";function LanguageListComponent({languages:e,activeLanguage:t}){const[n,o]=useState([]),[a,s]=useState([]),i=useRef(null),r=useAtomValue(layoutAtom),u=useSetAtom(languageAtom),m=useCallback((()=>{var n;const a=null===(n=null==i?void 0:i.current)||void 0===n?void 0:n.offsetWidth;if(!a)return;const{newVisibleItems:r,newHiddenItems:u}=calculateVisibleAndHiddenItems(a,[...e]),m=u.findIndex((e=>e.key===t));-1!==m&&swapItems(r,u,m),o(r),s(u)}),[t,e]);return useLayoutEffect((()=>(m(),window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)})),[r,t]),_jsxs(Container,{ref:i,children:[_jsxs(LanguageListContainer,{children:[!n.length&&_jsx(LanguageListSkeleton,{}),n.map((e=>_jsx(LanguageListItem,{onClick:()=>u(e.key),active:t===e.key,children:_jsx(LanguageItem,{item:e,withIcon:!0})},e.key)))]}),a.length?_jsx(LanguageDropdown,{activeTab:t,samples:a,onChange:e=>{const t=a.findIndex((t=>t.key===e));if(-1!==t){const i=[...a],r=[...n];swapItems(r,i,t),o(r),s(i),u(e)}},trigger:_jsx(Button,{icon:_jsx(OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}export const LanguageList=memo(LanguageListComponent);function calculateVisibleAndHiddenItems(e,t){let n=0;const o=[],a=[];return t.forEach((t=>{e&&n+ITEM_WIDTH<=e?(o.push(t),n+=ITEM_WIDTH):a.push(t)})),{newVisibleItems:o,newHiddenItems:a}}function swapItems(e,t,n){const o=e[e.length-1];o&&(e[e.length-1]=t[n],t[n]=o)}
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useLayoutEffect,useRef,useState,useCallback,memo}from"react";import{useAtomValue,useSetAtom}from"jotai";import{Button,OverflowMenuVerticalIcon}from"@redocly/theme";import{LanguageDropdown}from"./LanguageDropdown";import{languageAtom,layoutAtom}from"../../jotai/app";import{LanguageListContainer,LanguageListItem,Container}from"./styled";import{LanguageItem}from"./LanguageItem";import{DROPDOWN_TRIGGER_WIDTH,ITEM_WIDTH}from"./constants";import{LanguageListSkeleton}from"../common/Skeleton/LanguageListSkeleton";function LanguageListComponent({languages:e,activeLanguage:t}){const[n,o]=useState([]),[a,s]=useState([]),i=useRef(null),r=useAtomValue(layoutAtom),u=useSetAtom(languageAtom),m=useCallback((()=>{var n;const a=null===(n=null==i?void 0:i.current)||void 0===n?void 0:n.offsetWidth;if(!a)return;const{newVisibleItems:r,newHiddenItems:u}=calculateVisibleAndHiddenItems(a,[...e]),m=u.findIndex((e=>e.key===t));-1!==m&&swapItems(r,u,m),o(r),s(u)}),[t,e]);return useLayoutEffect((()=>(m(),window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)})),[r,t]),_jsxs(Container,{ref:i,children:[_jsxs(LanguageListContainer,{children:[!n.length&&_jsx(LanguageListSkeleton,{}),n.map((e=>_jsx(LanguageListItem,{onClick:()=>u(e.key),active:t===e.key,children:_jsx(LanguageItem,{item:e,withIcon:!0})},e.key)))]}),a.length?_jsx(LanguageDropdown,{activeTab:t,samples:a,onChange:e=>{const t=a.findIndex((t=>t.key===e));if(-1!==t){const i=[...a],r=[...n];swapItems(r,i,t),o(r),s(i),u(e)}},trigger:_jsx(Button,{icon:_jsx(OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}export const LanguageList=memo(LanguageListComponent);function calculateVisibleAndHiddenItems(e,t){let n=0;const o=[],a=[];return t.forEach(((s,i)=>{const r=i===t.length-1&&0===a.length?0:DROPDOWN_TRIGGER_WIDTH;e&&n+ITEM_WIDTH+r<=e?(o.push(s),n+=ITEM_WIDTH):a.push(s)})),{newVisibleItems:o,newHiddenItems:a}}function swapItems(e,t,n){const o=e[e.length-1];o&&(e[e.length-1]=t[n],t[n]=o)}
2
2
  //# sourceMappingURL=LanguageList.js.map
@@ -1 +1,2 @@
1
1
  export declare const ITEM_WIDTH = 78;
2
+ export declare const DROPDOWN_TRIGGER_WIDTH = 32;
@@ -1,2 +1,2 @@
1
- export const ITEM_WIDTH=78;
1
+ export const ITEM_WIDTH=78;export const DROPDOWN_TRIGGER_WIDTH=32;
2
2
  //# sourceMappingURL=constants.js.map
@@ -1,2 +1,2 @@
1
- import{removeLeadingSlash}from"@redocly/theme";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{getSecurityRequirement}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){var a,n;const p=r.isWebhook,l={operationDefinition:r,parent:t,pointer:r.pointer,description: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,type:"operation",callbackId:null==s?void 0:s.id,href:i,get callbacks(){return Object.keys(r.callbacks||[]).map((s=>{var a;return getCallback(e,s,null===(a=r.callbacks)||void 0===a?void 0:a[s],l.pointer,o,i,t)}))},get responses(){let t=!1;return 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:l.isEvent,operation:l})))},get parameters(){let t=mergeParams(e,r.pathParameters,r.parameters,{pathPointer:JsonPointer.dirName(l.pointer),operationPointer:l.pointer}).map((({paramOrRef:r,pointer:t})=>getField(e,r,t,o,{operation:l,type:"request"})));return o.sortRequiredPropsFirst&&(t=sortByRequired(t)),sortByDeprecated(t)}};(null==s?void 0:s.isCallback)?(l.security=(r.security||[]).map((r=>getSecurityRequirement({requirement:r,parser:e}))),l.servers=normalizeServers("",r.servers||r.pathServers||[]),l.id=removeLeadingSlash(i)):(l.id=getOperationId(r,t),l.href=l.href||getHref(l),l.security=(r.security||e.definition.security||[]).map((r=>getSecurityRequirement({requirement:r,parser:e}))),l.servers=normalizeServers(e.definitionUrl,mergeInMockServer(r.servers||r.pathServers||e.definition.servers||[],o.mockServer))),o.showExtensions&&(l.extensions=extractExtensions(r,o.showExtensions)),l.requestBody=r.requestBody&&getRequestBody({parser:e,infoOrRef:r.requestBody,options:o,operation:l,isEvent:l.isEvent});const d=null===(a=l.requestBody)||void 0===a?void 0:a.content;return l.payload={lang:"Payload",source:"",requestBodyContent:(null==d?void 0:d.hasSample)?d:void 0},l.definitionSamples=r["x-codeSamples"]||[],l.badges=(null===(n=r["x-badges"])||void 0===n?void 0:n.map((({name:e,color:r,position:t})=>({name:e,color:r||"var(--color-info-base)",position:t||"after"}))))||[],l.hasSamples=(null==d?void 0:d.hasSample)||l.definitionSamples.length>0,l.hideReplay=!0===r["x-hideReplay"],l}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{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{getSecurityRequirement}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){var a,n;const l=r.isWebhook,p={operationDefinition:r,parent:t,pointer:r.pointer,description:getValueFromMdParsedExtension(r,"description"),externalDocs:r.externalDocs,deprecated:!!r.deprecated,httpVerb:r.httpVerb,operationId:r.operationId,path:r.pathName,isWebhook:l,isCallback:Boolean(null==s?void 0:s.isCallback),isEvent:(null==s?void 0:s.isCallback)||l,name:getOperationName(r),defaultExampleName:r.defaultSampleName,type:"operation",callbackId:null==s?void 0:s.id,href:i,get callbacks(){return Object.keys(r.callbacks||[]).map((s=>{var a;return getCallback(e,s,null===(a=r.callbacks)||void 0===a?void 0:a[s],p.pointer,o,i,t)}))},get responses(){let t=!1;return 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:p.isEvent,operation:p})))},get parameters(){let t=mergeParams(e,r.pathParameters,r.parameters,{pathPointer:JsonPointer.dirName(p.pointer),operationPointer:p.pointer}).map((({paramOrRef:r,pointer:t})=>getField(e,r,t,o,{operation:p,type:"request"})));return o.sortRequiredPropsFirst&&(t=sortByRequired(t)),sortByDeprecated(t)}};if(null==s?void 0:s.isCallback)p.security=(Array.isArray(r.security)?r.security:[]).map((r=>getSecurityRequirement({requirement:r,parser:e}))),p.servers=normalizeServers("",r.servers||r.pathServers||[]),p.id=removeLeadingSlash(i);else{p.id=getOperationId(r,t),p.href=p.href||getHref(p);const i=r.security||e.definition.security;p.security=(Array.isArray(i)?i:[]).map((r=>getSecurityRequirement({requirement:r,parser:e}))),p.servers=normalizeServers(e.definitionUrl,mergeInMockServer(r.servers||r.pathServers||e.definition.servers||[],o.mockServer))}o.showExtensions&&(p.extensions=extractExtensions(r,o.showExtensions)),p.requestBody=r.requestBody&&getRequestBody({parser:e,infoOrRef:r.requestBody,options:o,operation:p,isEvent:p.isEvent});const d=null===(a=p.requestBody)||void 0===a?void 0:a.content;return p.payload={lang:"Payload",source:"",requestBodyContent:(null==d?void 0:d.hasSample)?d:void 0},p.definitionSamples=r["x-codeSamples"]||[],p.badges=(null===(n=r["x-badges"])||void 0===n?void 0:n.map((({name:e,color:r,position:t})=>({name:e,color:r||"var(--color-info-base)",position:t||"after"}))))||[],p.hasSamples=(null==d?void 0:d.hasSample)||p.definitionSamples.length>0,p.hideReplay=!0===r["x-hideReplay"],p}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,2 +1,2 @@
1
- var __rest=this&&this.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]])}return r};import{IS_BROWSER}from"@redocly/theme";import{getDefinitionName}from"../utils";import{JsonPointer}from"../utils/JsonPointer";import{normalizeOptions}from"./config-options/normalizeOptions";export function pushRef(e,t){return t&&e[e.length-1]!==t?[...e,t]:e}export function concatRefStacks(e,t){return t?e.concat(t):e}export class OpenAPIParser{constructor(e,t,r=normalizeOptions({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"definitionUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allowMergeRefs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"byRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{let t;if(this.definition){"#"!==e.charAt(0)&&(e="#"+e),e=decodeURIComponent(e);try{t=JsonPointer.get(this.definition,e)}catch(e){}return t||{}}}}),this.definition=Object.assign({},e),this.validate(e),this.definition=e,this.allowMergeRefs=e.openapi.startsWith("3.1");const i=IS_BROWSER?window.location.href:"";"string"==typeof t&&(this.definitionUrl=new URL(t,i).href)}validate(e){if(void 0===e.openapi)throw new Error("Document must be valid OpenAPI 3.0.0 definition")}isRef(e){return!!e&&(void 0!==e.$ref&&null!==e.$ref)}deref(e,t=[],r=!1){const i=null==e?void 0:e["x-refsStack"];if(t=concatRefStacks(t,i),this.isRef(e)){const i=getDefinitionName(e.$ref);if(i&&this.options.ignoreNamedSchemas.has(i))return{resolved:{type:"object",title:i},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);let o=t;if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){const e=this.deref(n,t,r);o=e.refsStack,n=e.resolved}return o=pushRef(t,e.$ref),n=this.allowMergeRefs?this.mergeRefs(e,n,r):n,{resolved:n,refsStack:o}}return{resolved:e,refsStack:concatRefStacks(t,i)}}mergeRefs(e,t,r){const{$ref:i}=e,n=__rest(e,["$ref"]),o=Object.keys(n);if(0===o.length)return t;if(r&&o.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly"].includes(e)))){const e=n,{description:r,title:i,readOnly:o,writeOnly:s}=e;return{allOf:[{description:r,title:i,readOnly:o,writeOnly:s},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,r,i=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:i},e);let o=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer.join(i,["allOf"]),allOf:void 0,title:e.title||getDefinitionName(t)});void 0!==o.properties&&"object"==typeof o.properties&&(o.properties=Object.assign({},o.properties)),void 0!==o.items&&"object"==typeof o.items&&(o.items=Object.assign({},o.items));const s=e.allOf.map(((e,t)=>{var n;const{resolved:s,refsStack:f}=this.deref(e,r,!0),l=e.$ref,a=l||JsonPointer.join(i,[String(t)]),c=this.mergeAllOf(s,l,f,a);if(!c["x-circular-ref"]||!c.allOf)return l&&(null===(n=o["x-parentRefs"])||void 0===n||n.push(...c["x-parentRefs"]||[],l)),{$ref:l,refsStack:pushRef(f,l),schema:c,absolutePointer:a}})).filter((e=>void 0!==e));for(const[e,{schema:r,refsStack:i,absolutePointer:f}]of s.entries()){const{type:s,enum:l,properties:a,items:c,required:p,title:d,description:O,readOnly:u,writeOnly:y,oneOf:m,anyOf:b,"x-circular-ref":h}=r,v=__rest(r,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref"]);if(o.type===s||void 0===o.type||void 0===s){if(void 0!==s&&(Array.isArray(s)&&Array.isArray(o.type)?o.type=[...s,...o.type]:o.type=s),void 0!==l&&(Array.isArray(l)&&Array.isArray(o.enum)?o.enum=Array.from(new Set([...l,...o.enum])):o.enum=l),void 0!==a&&"object"==typeof a){o.properties=o.properties||{};for(const r in a){const s=concatRefStacks(i,null===(n=a[r])||void 0===n?void 0:n["x-refsStack"]);if(o.properties[r]){if(!h){const i=this.mergeAllOf({allOf:[o.properties[r],a[r]],"x-refsStack":s},t+"/properties/"+r,s,JsonPointer.join(f,["allOf",String(e),"properties",r]));o.properties[r]=i}}else o.properties[r]=Object.assign(Object.assign({},a[r]),{absolutePointer:JsonPointer.join(f,["properties",r]),"x-refsStack":s})}}if(void 0!==c&&!h){const e="boolean"==typeof o.items?{}:Object.assign({},o.items),n="boolean"==typeof r.items?{}:Object.assign({},r.items);o.items=this.mergeAllOf({allOf:[e,n]},t+"/items",i)}void 0!==m&&(o.oneOf=m),void 0!==b&&(o.anyOf=b),void 0!==p&&(o.required=[...o.required||[],...p]),o=Object.assign(Object.assign(Object.assign({},o),{title:o.title||d,description:o.description||O,readOnly:void 0!==o.readOnly?o.readOnly:u,writeOnly:void 0!==o.writeOnly?o.writeOnly:y,"x-circular-ref":o["x-circular-ref"]||h}),v)}}return o}findDerived(e){const t={},r=this.definition.components&&this.definition.components.schemas||{};for(const i in r){const{resolved:n}=this.deref(r[i]);void 0!==n.allOf&&n.allOf.find((t=>void 0!==t.$ref&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+i]=[n["x-discriminator-value"]||i])}return t}hoistOneOfs(e){if(void 0===e.allOf)return e;const t=e.allOf;for(let e=0;e<t.length;e++){const r=t[e];if(Array.isArray(r.oneOf)){const i=t.slice(0,e),n=t.slice(e+1);return{oneOf:r.oneOf.map((e=>({allOf:[...i,e,...n]})))}}}return e}}
1
+ var __rest=this&&this.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]])}return r};import{IS_BROWSER}from"@redocly/theme";import{getDefinitionName}from"../utils";import{JsonPointer}from"../utils/JsonPointer";import{normalizeOptions}from"./config-options/normalizeOptions";export function pushRef(e,t){return t&&e[e.length-1]!==t?[...e,t]:e}export function concatRefStacks(e,t){return t?e.concat(t):e}export class OpenAPIParser{constructor(e,t,r=normalizeOptions({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"definitionUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allowMergeRefs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"byRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{let t;if(this.definition){"#"!==e.charAt(0)&&(e="#"+e),e=decodeURIComponent(e);try{t=JsonPointer.get(this.definition,e)}catch(e){}return t||{}}}}),this.definition=Object.assign({},e),this.validate(e),this.definition=e,this.allowMergeRefs=e.openapi.startsWith("3.1");const i=IS_BROWSER?window.location.href:"";"string"==typeof t&&(this.definitionUrl=new URL(t,i).href)}validate(e){if(void 0===e.openapi)throw new Error("Document must be valid OpenAPI 3.0.0 definition")}isRef(e){return!!e&&(void 0!==e.$ref&&null!==e.$ref)}deref(e,t=[],r=!1){const i=null==e?void 0:e["x-refsStack"];if(t=concatRefStacks(t,i),this.isRef(e)){const i=getDefinitionName(e.$ref);if(i&&this.options.ignoreNamedSchemas.has(i))return{resolved:{type:"object",title:i},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);let o=t;if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){const e=this.deref(n,t,r);o=e.refsStack,n=e.resolved}return o=pushRef(t,e.$ref),n=this.allowMergeRefs?this.mergeRefs(e,n,r):n,{resolved:n,refsStack:o}}return{resolved:e,refsStack:concatRefStacks(t,i)}}mergeRefs(e,t,r){const{$ref:i}=e,n=__rest(e,["$ref"]),o=Object.keys(n);if(0===o.length)return t;if(r&&o.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly"].includes(e)))){const e=n,{description:r,title:i,readOnly:o,writeOnly:s}=e;return{allOf:[{description:r,title:i,readOnly:o,writeOnly:s},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,r,i=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:i},e);let o=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer.join(i,["allOf"]),allOf:void 0,title:e.title||getDefinitionName(t)});void 0!==o.properties&&"object"==typeof o.properties&&(o.properties=Object.assign({},o.properties)),void 0!==o.items&&"object"==typeof o.items&&(o.items=Object.assign({},o.items));const s=e.allOf.map(((e,t)=>{var n;const{resolved:s,refsStack:f}=this.deref(e,r,!0),l=e.$ref,a=l||JsonPointer.join(i,[String(t)]),c=this.mergeAllOf(s,l,f,a);if(!c["x-circular-ref"]||!c.allOf)return l&&(null===(n=o["x-parentRefs"])||void 0===n||n.push(...c["x-parentRefs"]||[],l)),{$ref:l,refsStack:pushRef(f,l),schema:c,absolutePointer:a}})).filter((e=>void 0!==e));for(const[e,{schema:r,refsStack:i,absolutePointer:f}]of s.entries()){const{type:s,enum:l,properties:a,items:c,required:p,title:d,description:O,readOnly:u,writeOnly:y,oneOf:m,anyOf:b,"x-circular-ref":h}=r,v=__rest(r,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref"]);if(o.type===s||void 0===o.type||void 0===s){if(void 0!==s&&(Array.isArray(s)&&Array.isArray(o.type)?o.type=[...s,...o.type]:o.type=s),void 0!==l&&(Array.isArray(l)&&Array.isArray(o.enum)?o.enum=Array.from(new Set([...l,...o.enum])):o.enum=l),void 0!==a&&"object"==typeof a){o.properties=o.properties||{};for(const r in a){const s=concatRefStacks(i,null===(n=a[r])||void 0===n?void 0:n["x-refsStack"]);if(o.properties[r]){if(!h){const i=this.mergeAllOf({allOf:[o.properties[r],a[r]],"x-refsStack":s},t+"/properties/"+r,s,JsonPointer.join(f,["allOf",String(e),"properties",r]));o.properties[r]=i}}else o.properties[r]=Object.assign(Object.assign({},a[r]),{absolutePointer:JsonPointer.join(f,["properties",r]),"x-refsStack":s})}}if(void 0!==c&&!h){const e="boolean"==typeof o.items?{}:Object.assign({},o.items),n="boolean"==typeof r.items?{}:Object.assign({},r.items);o.items=this.mergeAllOf({allOf:[e,n]},t+"/items",i)}void 0!==m&&(o.oneOf=m),void 0!==b&&(o.anyOf=b),Array.isArray(p)&&(o.required=[...o.required||[],...p]),o=Object.assign(Object.assign(Object.assign({},o),{title:o.title||d,description:o.description||O,readOnly:void 0!==o.readOnly?o.readOnly:u,writeOnly:void 0!==o.writeOnly?o.writeOnly:y,"x-circular-ref":o["x-circular-ref"]||h}),v)}}return o}findDerived(e){const t={},r=this.definition.components&&this.definition.components.schemas||{};for(const i in r){const{resolved:n}=this.deref(r[i]);void 0!==n.allOf&&n.allOf.find((t=>void 0!==t.$ref&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+i]=[n["x-discriminator-value"]||i])}return t}hoistOneOfs(e){if(void 0===e.allOf)return e;const t=e.allOf;for(let e=0;e<t.length;e++){const r=t[e];if(Array.isArray(r.oneOf)){const i=t.slice(0,e),n=t.slice(e+1);return{oneOf:r.oneOf.map((e=>({allOf:[...i,e,...n]})))}}}return e}}
2
2
  //# sourceMappingURL=OpenAPIParser.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.2.9",
3
+ "version": "3.2.10",
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.17.1",
27
+ "@redocly/openapi-core": "1.18.1",
28
28
  "deepmerge": "^4.2.2",
29
29
  "dompurify": "^2.0.12",
30
30
  "fast-deep-equal": "^3.1.3",
@@ -44,8 +44,8 @@
44
44
  "url": "~0.11.0",
45
45
  "url-template": "^2.0.8",
46
46
  "util": "~0.12.5",
47
- "@redocly/replay": "0.3.12",
48
- "@redocly/config": "0.8.0"
47
+ "@redocly/replay": "0.3.13",
48
+ "@redocly/config": "0.8.1"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@testing-library/jest-dom": "6.1.5",
@@ -73,7 +73,7 @@
73
73
  "jest-environment-jsdom": "29.5.0",
74
74
  "jest-styled-components": "7.2.0",
75
75
  "jest-when": "3.6.0",
76
- "js-yaml": "^4.1.0",
76
+ "js-yaml": "4.1.0",
77
77
  "json-schema": "0.4.0",
78
78
  "outdent": "0.8.0",
79
79
  "react": "18.2.0",
@@ -92,7 +92,7 @@
92
92
  "webpack": "5.91.0",
93
93
  "webpack-cli": "5.1.4",
94
94
  "webpack-dev-server": "4.15.2",
95
- "@redocly/theme": "0.38.7"
95
+ "@redocly/theme": "0.38.8"
96
96
  },
97
97
  "scripts": {
98
98
  "start": "webpack serve --mode=development --hot",