@redocly/openapi-docs 3.5.2 → 3.5.3

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,4 +1,4 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FieldDetails=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),common_1=require("../common"),ExternalDocumentation_1=require("../ExternalDocumentation"),Markdown_1=require("../Markdown"),FieldDetail_1=require("./FieldDetail"),Extensions_1=require("./Extensions"),EnumValues_1=require("./EnumValues"),Examples_1=require("./Examples"),store_1=require("../../jotai/store"),SchemaTypeInfo_1=require("./SchemaTypeInfo"),LinkToField_1=require("../common/LinkToField"),Pattern_1=require("./Pattern"),RenderHook_1=require("../RenderHook"),hooks_1=require("../../hooks");function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:t,deepLink:i,fieldParentsName:r=[]}){var n;const a=(0,hooks_1.useTranslate)(),{hidePropertiesPrefix:o,hideSchemaTitles:s}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{schema:l,description:m,example:p,deprecated:_,examples:c,kind:d,required:u,name:x}=e,h="header"===e.in,j=(0,react_1.useMemo)((()=>{if(void 0!==p||void 0!==c){if(void 0!==c)return(0,jsx_runtime_1.jsx)(Examples_1.Examples,{field:e});{const t=!!e.in;return(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:`${a("openapi.example","Example")}:`,value:(0,Examples_1.getSerializedValue)(e,e.example),raw:t})}}return null}),[p,c,e,a]),f=(0,RenderHook_1.getAccessModeLabelText)(e.schema);return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(Row,{children:[x&&(0,jsx_runtime_1.jsxs)(Name,{children:[i&&(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:i}),!o&&r.map((e=>e+".​")),(0,jsx_runtime_1.jsx)(SchemaName,{className:"schema-name",children:x})]}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.typePrefix+l.displayType}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.displayFormat&&`(${l.displayFormat})`}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.contentEncoding}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.title&&!s?`(${l.title})`:""}),null===(n=l.constraints)||void 0===n?void 0:n.map((e=>(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:e},e))),_&&(0,jsx_runtime_1.jsx)(common_1.StyledBadge,{deprecated:!0,children:a("openapi.badges.deprecated","Deprecated")}),(0,jsx_runtime_1.jsx)(Pattern_1.Pattern,{pattern:l.pattern}),"additionalProperties"===d&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:a("openapi.additionalProperties","additional property")}),"patternProperties"===d&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:a("openapi.patternProperties","pattern property")}),f&&(0,jsx_runtime_1.jsx)(common_1.AccessLabel,{children:f}),u&&(0,jsx_runtime_1.jsx)(common_1.RequiredLabel,{children:a("openapi.required","required")}),l.isCircular&&(0,jsx_runtime_1.jsx)(common_1.RecursiveLabel,{children:a("openapi.recursive","Recursive")})]}),(0,jsx_runtime_1.jsx)(StyledDescription,{source:m}),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{raw:h,type:"default",label:a("openapi.default","Default"),value:l.default}),(0,jsx_runtime_1.jsx)(EnumValues_1.EnumValues,{type:l.type,values:l["x-enumDescriptions"]||l.enum}),j,(0,jsx_runtime_1.jsx)(Extensions_1.Extensions,{extensions:Object.assign(Object.assign({},e.extensions),l.extensions)}),l.externalDocs&&(0,jsx_runtime_1.jsx)(ExternalDocumentation_1.ExternalDocumentation,{externalDocs:l.externalDocs,compact:!0}),null==t?void 0:t(),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:a("openapi.value","Value"),value:e.const||void 0})]})}exports.FieldDetails=(0,react_1.memo)(FieldDetailsComponent);const Row=styled_components_1.default.div`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FieldDetails=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),common_1=require("../common"),ExternalDocumentation_1=require("../ExternalDocumentation"),Markdown_1=require("../Markdown"),FieldDetail_1=require("./FieldDetail"),Extensions_1=require("./Extensions"),EnumValues_1=require("./EnumValues"),Examples_1=require("./Examples"),store_1=require("../../jotai/store"),SchemaTypeInfo_1=require("./SchemaTypeInfo"),LinkToField_1=require("../common/LinkToField"),Pattern_1=require("./Pattern"),RenderHook_1=require("../RenderHook"),hooks_1=require("../../hooks");function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:i,deepLink:t,fieldParentsName:r=[]}){var n;const a=(0,hooks_1.useTranslate)(),{hidePropertiesPrefix:o,hideSchemaTitles:s}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{schema:l,description:m,example:p,deprecated:_,examples:c,kind:d,required:u,name:x}=e,j="header"===e.in,h=(0,react_1.useMemo)((()=>{if(void 0!==p||void 0!==c){if(void 0!==c)return(0,jsx_runtime_1.jsx)(Examples_1.Examples,{field:e});{const i=!!e.in;return(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:`${a("openapi.example","Example")}:`,value:(0,Examples_1.getSerializedValue)(e,e.example),raw:i})}}return null}),[p,c,e,a]),f=(0,RenderHook_1.getAccessModeLabelText)(e.schema);return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(Row,{children:[x&&(0,jsx_runtime_1.jsxs)(Name,{children:[t&&(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:t}),!o&&r.map((e=>e+".​")),(0,jsx_runtime_1.jsx)(SchemaName,{className:"schema-name",children:x})]}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.typePrefix+l.displayType}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.displayFormat&&`(${l.displayFormat})`}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.contentEncoding}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:l.title&&!s?`(${l.title})`:""}),null===(n=l.constraints)||void 0===n?void 0:n.map((e=>(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:e},e))),_&&(0,jsx_runtime_1.jsx)(common_1.StyledBadge,{deprecated:!0,children:a("openapi.badges.deprecated","Deprecated")}),(0,jsx_runtime_1.jsx)(Pattern_1.Pattern,{pattern:l.pattern}),"additionalProperties"===d&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:a("openapi.additionalProperties","additional property")}),"patternProperties"===d&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:a("openapi.patternProperties","pattern property")}),f&&(0,jsx_runtime_1.jsx)(common_1.AccessLabel,{children:f}),u&&(0,jsx_runtime_1.jsx)(common_1.RequiredLabel,{children:a("openapi.required","required")}),l.isCircular&&(0,jsx_runtime_1.jsx)(common_1.RecursiveLabel,{children:a("openapi.recursive","Recursive")})]}),l.isComplex&&(0,jsx_runtime_1.jsx)(common_1.RecursiveLabel,{children:a("openapi.complex","Complex")}),(0,jsx_runtime_1.jsx)(StyledDescription,{source:m}),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{raw:j,type:"default",label:a("openapi.default","Default"),value:l.default}),(0,jsx_runtime_1.jsx)(EnumValues_1.EnumValues,{type:l.type,values:l["x-enumDescriptions"]||l.enum}),h,(0,jsx_runtime_1.jsx)(Extensions_1.Extensions,{extensions:Object.assign(Object.assign({},e.extensions),l.extensions)}),l.externalDocs&&(0,jsx_runtime_1.jsx)(ExternalDocumentation_1.ExternalDocumentation,{externalDocs:l.externalDocs,compact:!0}),null==i?void 0:i(),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:a("openapi.value","Value"),value:e.const||void 0})]})}exports.FieldDetails=(0,react_1.memo)(FieldDetailsComponent);const Row=styled_components_1.default.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: calc(var(--spacing-xxs) / 4) var(--spacing-xxs);
@@ -1,2 +1,2 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,i){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&i.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)i.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(t[r[n]]=e[r[n]])}return t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSchema=getSchema;const theme_1=require("@redocly/theme"),config_1=require("@redocly/config"),OpenAPIParser_1=require("../services/OpenAPIParser"),utils_1=require("../utils"),field_1=require("./field");function getSchema({parser:e,schemaOrRef:i,pointer:t,options:r,isChild:n=!1,baseRefsStack:s=[],deps:o,absolutePointer:a}){var l,p,d,c,f,m,u,y,O;const{resolved:h,refsStack:v}=e.deref(i,s,!0),b=i.$ref||t||a||"",g=(0,OpenAPIParser_1.pushRef)(v,b),P=e.mergeAllOf(h,b,g,i.$ref||a),x=P.type||(0,utils_1.detectType)(P),_={operationPointer:(null===(l=o.operation)||void 0===l?void 0:l.pointer)||a||"",schemaOrRef:i,isChild:n,typePrefix:"",pointer:b,absolutePointer:a,refsStack:g,rawSchema:h,type:x,isCircular:!!P["x-circular-ref"],title:P.title||(0,utils_1.isNamedDefinition)(b)&&utils_1.JsonPointer.baseName(b)||"",description:(0,utils_1.getValueFromMdParsedExtension)(P,"description")||"",format:P.format,enum:P.enum||[],example:P.example,deprecated:!!P.deprecated,pattern:P.pattern,externalDocs:P.externalDocs,displayFormat:P.format,isPrimitive:(0,utils_1.isPrimitiveType)(P,x),constraints:(0,utils_1.humanizeConstraints)(P),default:P.default,readOnly:!!P.readOnly,writeOnly:!!P.writeOnly,const:P.const||"",contentEncoding:P.contentEncoding,contentMediaType:P.contentMediaType,minItems:P.minItems,maxItems:P.maxItems,nullable:P.nullable||P["x-nullable"],schema:P,displayType:"",items:void 0,extensions:void 0,oneOfType:"",discriminatorProp:void 0,oneOf:void 0,[config_1.REDOCLY_TEAMS_RBAC]:P[config_1.REDOCLY_TEAMS_RBAC],"x-enumDescriptions":(0,utils_1.getValueFromMdParsedExtension)(P,"x-enumDescriptions"),get fields(){if(hasType(_,"object")||hasType(_,"array")&&(Array.isArray(P.items)||Array.isArray(P.prefixItems)))return buildFields(e,P,b,r,g,o)}};if((P.nullable||P["x-nullable"])&&(Array.isArray(_.type)&&!_.type.some((e=>null===e||"null"===e))?_.type=[..._.type,"null"]:Array.isArray(_.type)||null===_.type&&"null"===_.type||(_.type=[_.type,"null"])),_.displayType=Array.isArray(_.type)?_.type.map((e=>null===e?"null":e)).join(" or "):_.type,_.isCircular)return _;if(P.if&&P.then||P.if&&P.else){const{oneOf:i,oneOfType:t}=initConditionalOperators({schema:P,parser:e,pointer:b,options:r,deps:o,refsStack:g});return _.oneOf=i,_.oneOfType=t,_}if(!n&&void 0!==getDiscriminator(P)){const{oneOf:i,discriminatorProp:t}=initDiscriminator({schema:P,parser:e,deps:o,mergedSchema:P,options:r,pointer:b,refsStack:g});return _.oneOf=i,_.discriminatorProp=t,_}if(n&&Array.isArray(P.oneOf)&&P.oneOf.find((e=>e.$ref===b))&&delete P.oneOf,void 0!==P.oneOf){const{oneOf:i,displayType:t}=initOneOf({schemaOneOf:P.oneOf,parser:e,deps:o,options:r,pointer:b,refsStack:g,schema:P});return _.oneOfType="One of",i&&(_.oneOf=i),_.displayType=t,void 0!==P.anyOf&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${b}`),_}if(void 0!==P.anyOf){const{oneOf:i,displayType:t}=initOneOf({schemaOneOf:P.anyOf,parser:e,deps:o,options:r,pointer:b,refsStack:g,schema:P});return i&&(_.oneOf=i),_.displayType=t,_.oneOfType="Any of",_}if(hasType(_,"array")&&(P.items&&(_.items=getSchema({parser:e,schemaOrRef:P.items,pointer:b+"/items",options:r,baseRefsStack:g,deps:o,absolutePointer:utils_1.JsonPointer.join(P.absolutePointer||"",["items"])})),_.displayType=P.prefixItems||Array.isArray(P.items)?"items":(0,utils_1.pluralizeType)((null===(p=_.items)||void 0===p?void 0:p.displayType)||_.displayType),_.displayFormat=(null===(d=_.items)||void 0===d?void 0:d.format)||"",_.typePrefix=(null===(c=_.items)||void 0===c?void 0:c.typePrefix)||"Array of ",_.title=_.title||(null===(f=_.items)||void 0===f?void 0:f.title)||"",_.isPrimitive=void 0!==(null===(m=_.items)||void 0===m?void 0:m.isPrimitive)?null===(u=_.items)||void 0===u?void 0:u.isPrimitive:_.isPrimitive,void 0===_.example&&void 0!==(null===(y=_.items)||void 0===y?void 0:y.example)&&(_.example=[_.items.example]),(null===(O=_.items)||void 0===O?void 0:O.isPrimitive)&&(_.enum=_.items.enum,_["x-enumDescriptions"]=(0,utils_1.getValueFromMdParsedExtension)(_.items,"x-enumDescriptions")),Array.isArray(_.type))){const e=_.type.filter((e=>"array"!==e));e.length&&(_.displayType+=` or ${e.join(" or ")}`)}return r.showExtensions&&(_.extensions=(0,utils_1.extractExtensions)(P,r.showExtensions)),_}function initDiscriminator({schema:e,parser:i,pointer:t,options:r,refsStack:n,deps:s,mergedSchema:o}){const a=getDiscriminator(e),l=null==a?void 0:a.propertyName,p=i.findDerived([...o["x-parentRefs"]||[],t]);if(e.oneOf)for(const i of e.oneOf){if(void 0===i.$ref)continue;const e=utils_1.JsonPointer.baseName(i.$ref);p[i.$ref]=e}const d=(null==a?void 0:a.mapping)||{};let c=(null==a?void 0:a["x-explicitMappingOnly"])||!1;0===Object.keys(d).length&&(c=!1);const f={};for(const e in d){const i=d[e];Array.isArray(f[i])?f[i].push(e):f[i]=[e]}const m=c?Object.assign({},f):Object.assign(Object.assign({},p),f);let u=[];for(const e of Object.keys(m)){const i=m[e];if(Array.isArray(i))for(const t of i)u.push({$ref:e,name:t});else u.push({$ref:e,name:i})}const y=Object.keys(d);0!==y.length&&(u=u.sort(((e,i)=>{const t=y.indexOf(e.name),r=y.indexOf(i.name);return t<0&&r<0?e.name.localeCompare(i.name):t<0?1:r<0?-1:t-r})));return{oneOf:u.map((({$ref:e,name:t},a)=>{const l=getSchema({parser:i,schemaOrRef:{$ref:e},pointer:e,options:r,isChild:!0,baseRefsStack:n.slice(0,-1),deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&d="+a:"&d="+a.toString()}),absolutePointer:o.absolutePointer});return l.title=t,l})),discriminatorProp:l}}function initOneOf({schemaOneOf:e,parser:i,refsStack:t,pointer:r,schema:n,options:s,deps:o}){const a=e.map(((e,a)=>{const{resolved:l,refsStack:p}=i.deref(e,t,!0),d=i.mergeAllOf(l,r+"/oneOf/"+a,p),c=(0,utils_1.isNamedDefinition)(e.$ref)&&!d.title?utils_1.JsonPointer.baseName(e.$ref):`${d.title||""}${d.const&&JSON.stringify(d.const)||""}`;return getSchema({parser:i,schemaOrRef:Object.assign(Object.assign({},d),{title:c,allOf:[Object.assign(Object.assign({},n),{oneOf:void 0,anyOf:void 0})],discriminator:l.allOf?void 0:d.discriminator}),pointer:e.$ref||r+"/oneOf/"+a,options:s,baseRefsStack:p,deps:Object.assign(Object.assign({},o),{parentFieldFullPath:o.parentFieldFullPath?o.parentFieldFullPath+"&oneOf="+a:"&oneOf="+a.toString()})})})),l=a.map((e=>{let i=e.typePrefix+(e.title?`${e.title} (${e.displayType})`:e.displayType);return i.indexOf(" or ")>-1&&(i=`(${i})`),i})).join(" or ");return{oneOf:a,displayType:l}}function initConditionalOperators({schema:e,parser:i,pointer:t,options:r,refsStack:n,deps:s}){const{if:o,else:a={},then:l={}}=e,p=__rest(e,["if","else","then"]);return{oneOf:[{allOf:[p,l,o],title:o&&o["x-displayName"]||(null==o?void 0:o.title)||"case 1"},{allOf:[p,a],title:a&&a["x-displayName"]||(null==a?void 0:a.title)||"case 2"}].map(((e,o)=>getSchema({parser:i,schemaOrRef:Object.assign({},e),pointer:t+"/oneOf/"+o,options:r,baseRefsStack:n,deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&oneOf="+o:"&oneOf="+o.toString()})}))),oneOfType:"One of"}}function normalizeField(e,i,t){return e||(console.warn(`Field "${i}" is invalid, skipping.\n Field must be an object but got ${typeof e} at "${t}"`),{})}function buildFields(e,i,t,r,n,s){let o=i.properties||(hasType(i,"array")?i.prefixItems||i.items:void 0)||{};const a=i.patternProperties||{},l=i.additionalProperties||i.unevaluatedProperties,p=i.prefixItems?i.items:i.additionalItems,d=i.default||{};let c=Object.keys(o).map((a=>{var l;const p=normalizeField(o[a],a,t),c=void 0!==i.required&&i.required.indexOf(a)>-1;return(0,field_1.getField)(e,{name:i.properties?a:`[${a}]`,required:c,schema:Object.assign(Object.assign({},p),{example:(null===(l=i.example)||void 0===l?void 0:l[a])||p.example,default:void 0===p.default&&d?d[a]:p.default})},t+"/properties/"+a,r,s,n,utils_1.JsonPointer.join(i.absolutePointer||"",["properties",a]))}));return r.sortRequiredPropsFirst&&(c=(0,utils_1.sortByRequired)(c,i.required)),c.push(...Object.keys(a).map((i=>{const o=normalizeField(a[i],i,t);return(0,field_1.getField)(e,{name:i,required:!1,schema:o,kind:"patternProperties"},`${t}/patternProperties/${i}`,r,s,n)}))),((0,theme_1.isObject)(l)||!0===l)&&c.push((0,field_1.getField)(e,{name:((0,theme_1.isObject)(l)&&l["x-additionalPropertiesName"]||"property name").concat("*"),required:!1,schema:!0===l?{}:l,kind:"additionalProperties"},t+"/additionalProperties",r,s,n,utils_1.JsonPointer.join(i.absolutePointer||"",["additionalProperties"]))),c.push(...buildAdditionalItems({parser:e,schema:p,fieldsCount:c.length,$ref:t,options:r,refsStack:n,deps:s})),(0,utils_1.sortByDeprecated)(c)}function buildAdditionalItems({parser:e,schema:i=!1,fieldsCount:t,$ref:r,options:n,refsStack:s,deps:o}){return"boolean"==typeof i?i?[(0,field_1.getField)(e,{name:`[${t}...]`,schema:{},kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]:Array.isArray(i)?[...i.map(((i,a)=>(0,field_1.getField)(e,{name:`[${t+a}]`,schema:i,kind:"additionalItems"},`${r}/additionalItems/${a}`,n,o,s)))]:(0,theme_1.isObject)(i)?[(0,field_1.getField)(e,{name:`[${t}...]`,schema:i,kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]}function getDiscriminator(e){return e.discriminator||e["x-discriminator"]}function hasType(e,i){return e.type===i||Array.isArray(e.type)&&e.type.includes(i)}
1
+ "use strict";var __rest=this&&this.__rest||function(e,i){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&i.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)i.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(t[r[n]]=e[r[n]])}return t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSchema=getSchema;const theme_1=require("@redocly/theme"),config_1=require("@redocly/config"),OpenAPIParser_1=require("../services/OpenAPIParser"),utils_1=require("../utils"),field_1=require("./field");function getSchema({parser:e,schemaOrRef:i,pointer:t,options:r,isChild:n=!1,baseRefsStack:s=[],deps:o,absolutePointer:a}){var l,p,d,c,f,m,u,y,O;const{resolved:h,refsStack:v}=e.deref(i,s,!0),b=i.$ref||t||a||"",g=(0,OpenAPIParser_1.pushRef)(v,b),P=e.mergeAllOf(h,b,g,i.$ref||a),x=P.type||(0,utils_1.detectType)(P),_={operationPointer:(null===(l=o.operation)||void 0===l?void 0:l.pointer)||a||"",schemaOrRef:i,isChild:n,typePrefix:"",pointer:b,absolutePointer:a,refsStack:g,rawSchema:h,type:x,isCircular:!!P["x-circular-ref"],isComplex:!!P["x-complex"],title:P.title||(0,utils_1.isNamedDefinition)(b)&&utils_1.JsonPointer.baseName(b)||"",description:(0,utils_1.getValueFromMdParsedExtension)(P,"description")||"",format:P.format,enum:P.enum||[],example:P.example,deprecated:!!P.deprecated,pattern:P.pattern,externalDocs:P.externalDocs,displayFormat:P.format,isPrimitive:(0,utils_1.isPrimitiveType)(P,x),constraints:(0,utils_1.humanizeConstraints)(P),default:P.default,readOnly:!!P.readOnly,writeOnly:!!P.writeOnly,const:P.const||"",contentEncoding:P.contentEncoding,contentMediaType:P.contentMediaType,minItems:P.minItems,maxItems:P.maxItems,nullable:P.nullable||P["x-nullable"],schema:P,displayType:"",items:void 0,extensions:void 0,oneOfType:"",discriminatorProp:void 0,oneOf:void 0,[config_1.REDOCLY_TEAMS_RBAC]:P[config_1.REDOCLY_TEAMS_RBAC],"x-enumDescriptions":(0,utils_1.getValueFromMdParsedExtension)(P,"x-enumDescriptions"),get fields(){if(!_.isCircular&&!_.isComplex&&(hasType(_,"object")||hasType(_,"array")&&(Array.isArray(P.items)||Array.isArray(P.prefixItems))))return buildFields(e,P,b,r,g,o)}};if((P.nullable||P["x-nullable"])&&(Array.isArray(_.type)&&!_.type.some((e=>null===e||"null"===e))?_.type=[..._.type,"null"]:Array.isArray(_.type)||null===_.type&&"null"===_.type||(_.type=[_.type,"null"])),_.displayType=Array.isArray(_.type)?_.type.map((e=>null===e?"null":e)).join(" or "):_.type,_.isCircular)return _;if(P.if&&P.then||P.if&&P.else){const{oneOf:i,oneOfType:t}=initConditionalOperators({schema:P,parser:e,pointer:b,options:r,deps:o,refsStack:g});return _.oneOf=i,_.oneOfType=t,_}if(!n&&void 0!==getDiscriminator(P)){const{oneOf:i,discriminatorProp:t}=initDiscriminator({schema:P,parser:e,deps:o,mergedSchema:P,options:r,pointer:b,refsStack:g});return _.oneOf=i,_.discriminatorProp=t,_}if(n&&Array.isArray(P.oneOf)&&P.oneOf.find((e=>e.$ref===b))&&delete P.oneOf,void 0!==P.oneOf){const{oneOf:i,displayType:t}=initOneOf({schemaOneOf:P.oneOf,parser:e,deps:o,options:r,pointer:b,refsStack:g,schema:P});return _.oneOfType="One of",i&&(_.oneOf=i),_.displayType=t,void 0!==P.anyOf&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${b}`),_}if(void 0!==P.anyOf){const{oneOf:i,displayType:t}=initOneOf({schemaOneOf:P.anyOf,parser:e,deps:o,options:r,pointer:b,refsStack:g,schema:P});return i&&(_.oneOf=i),_.displayType=t,_.oneOfType="Any of",_}if(hasType(_,"array")&&(P.items&&(_.items=getSchema({parser:e,schemaOrRef:P.items,pointer:b+"/items",options:r,baseRefsStack:g,deps:o,absolutePointer:utils_1.JsonPointer.join(P.absolutePointer||"",["items"])})),_.displayType=P.prefixItems||Array.isArray(P.items)?"items":(0,utils_1.pluralizeType)((null===(p=_.items)||void 0===p?void 0:p.displayType)||_.displayType),_.displayFormat=(null===(d=_.items)||void 0===d?void 0:d.format)||"",_.typePrefix=(null===(c=_.items)||void 0===c?void 0:c.typePrefix)||"Array of ",_.title=_.title||(null===(f=_.items)||void 0===f?void 0:f.title)||"",_.isPrimitive=void 0!==(null===(m=_.items)||void 0===m?void 0:m.isPrimitive)?null===(u=_.items)||void 0===u?void 0:u.isPrimitive:_.isPrimitive,void 0===_.example&&void 0!==(null===(y=_.items)||void 0===y?void 0:y.example)&&(_.example=[_.items.example]),(null===(O=_.items)||void 0===O?void 0:O.isPrimitive)&&(_.enum=_.items.enum,_["x-enumDescriptions"]=(0,utils_1.getValueFromMdParsedExtension)(_.items,"x-enumDescriptions")),Array.isArray(_.type))){const e=_.type.filter((e=>"array"!==e));e.length&&(_.displayType+=` or ${e.join(" or ")}`)}return r.showExtensions&&(_.extensions=(0,utils_1.extractExtensions)(P,r.showExtensions)),_}function initDiscriminator({schema:e,parser:i,pointer:t,options:r,refsStack:n,deps:s,mergedSchema:o}){const a=getDiscriminator(e),l=null==a?void 0:a.propertyName,p=i.findDerived([...o["x-parentRefs"]||[],t]);if(e.oneOf)for(const i of e.oneOf){if(void 0===i.$ref)continue;const e=utils_1.JsonPointer.baseName(i.$ref);p[i.$ref]=e}const d=(null==a?void 0:a.mapping)||{};let c=(null==a?void 0:a["x-explicitMappingOnly"])||!1;0===Object.keys(d).length&&(c=!1);const f={};for(const e in d){const i=d[e];Array.isArray(f[i])?f[i].push(e):f[i]=[e]}const m=c?Object.assign({},f):Object.assign(Object.assign({},p),f);let u=[];for(const e of Object.keys(m)){const i=m[e];if(Array.isArray(i))for(const t of i)u.push({$ref:e,name:t});else u.push({$ref:e,name:i})}const y=Object.keys(d);0!==y.length&&(u=u.sort(((e,i)=>{const t=y.indexOf(e.name),r=y.indexOf(i.name);return t<0&&r<0?e.name.localeCompare(i.name):t<0?1:r<0?-1:t-r})));return{oneOf:u.map((({$ref:e,name:t},a)=>{const l=getSchema({parser:i,schemaOrRef:{$ref:e},pointer:e,options:r,isChild:!0,baseRefsStack:n.slice(0,-1),deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&d="+a:"&d="+a.toString()}),absolutePointer:o.absolutePointer});return l.title=t,l})),discriminatorProp:l}}function initOneOf({schemaOneOf:e,parser:i,refsStack:t,pointer:r,schema:n,options:s,deps:o}){const a=e.map(((e,a)=>{const{resolved:l,refsStack:p}=i.deref(e,t,!0),d=i.mergeAllOf(l,r+"/oneOf/"+a,p),c=(0,utils_1.isNamedDefinition)(e.$ref)&&!d.title?utils_1.JsonPointer.baseName(e.$ref):`${d.title||""}${d.const&&JSON.stringify(d.const)||""}`;return getSchema({parser:i,schemaOrRef:Object.assign(Object.assign({},d),{title:c,allOf:[Object.assign(Object.assign({},n),{oneOf:void 0,anyOf:void 0})],discriminator:l.allOf?void 0:d.discriminator}),pointer:e.$ref||r+"/oneOf/"+a,options:s,baseRefsStack:p,deps:Object.assign(Object.assign({},o),{parentFieldFullPath:o.parentFieldFullPath?o.parentFieldFullPath+"&oneOf="+a:"&oneOf="+a.toString()})})})),l=a.map((e=>{let i=e.typePrefix+(e.title?`${e.title} (${e.displayType})`:e.displayType);return i.indexOf(" or ")>-1&&(i=`(${i})`),i})).join(" or ");return{oneOf:a,displayType:l}}function initConditionalOperators({schema:e,parser:i,pointer:t,options:r,refsStack:n,deps:s}){const{if:o,else:a={},then:l={}}=e,p=__rest(e,["if","else","then"]);return{oneOf:[{allOf:[p,l,o],title:o&&o["x-displayName"]||(null==o?void 0:o.title)||"case 1"},{allOf:[p,a],title:a&&a["x-displayName"]||(null==a?void 0:a.title)||"case 2"}].map(((e,o)=>getSchema({parser:i,schemaOrRef:Object.assign({},e),pointer:t+"/oneOf/"+o,options:r,baseRefsStack:n,deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&oneOf="+o:"&oneOf="+o.toString()})}))),oneOfType:"One of"}}function normalizeField(e,i,t){return e||(console.warn(`Field "${i}" is invalid, skipping.\n Field must be an object but got ${typeof e} at "${t}"`),{})}function buildFields(e,i,t,r,n,s){let o=i.properties||(hasType(i,"array")?i.prefixItems||i.items:void 0)||{};const a=i.patternProperties||{},l=i.additionalProperties||i.unevaluatedProperties,p=i.prefixItems?i.items:i.additionalItems,d=i.default||{};let c=Object.keys(o).map((a=>{var l;const p=normalizeField(o[a],a,t),c=void 0!==i.required&&i.required.indexOf(a)>-1;return(0,field_1.getField)(e,{name:i.properties?a:`[${a}]`,required:c,schema:Object.assign(Object.assign({},p),{example:(null===(l=i.example)||void 0===l?void 0:l[a])||p.example,default:void 0===p.default&&d?d[a]:p.default})},t+"/properties/"+a,r,s,n,utils_1.JsonPointer.join(i.absolutePointer||"",["properties",a]))}));return r.sortRequiredPropsFirst&&(c=(0,utils_1.sortByRequired)(c,i.required)),c.push(...Object.keys(a).map((i=>{const o=normalizeField(a[i],i,t);return(0,field_1.getField)(e,{name:i,required:!1,schema:o,kind:"patternProperties"},`${t}/patternProperties/${i}`,r,s,n)}))),((0,theme_1.isObject)(l)||!0===l)&&c.push((0,field_1.getField)(e,{name:((0,theme_1.isObject)(l)&&l["x-additionalPropertiesName"]||"property name").concat("*"),required:!1,schema:!0===l?{}:l,kind:"additionalProperties"},t+"/additionalProperties",r,s,n,utils_1.JsonPointer.join(i.absolutePointer||"",["additionalProperties"]))),c.push(...buildAdditionalItems({parser:e,schema:p,fieldsCount:c.length,$ref:t,options:r,refsStack:n,deps:s})),(0,utils_1.sortByDeprecated)(c)}function buildAdditionalItems({parser:e,schema:i=!1,fieldsCount:t,$ref:r,options:n,refsStack:s,deps:o}){return"boolean"==typeof i?i?[(0,field_1.getField)(e,{name:`[${t}...]`,schema:{},kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]:Array.isArray(i)?[...i.map(((i,a)=>(0,field_1.getField)(e,{name:`[${t+a}]`,schema:i,kind:"additionalItems"},`${r}/additionalItems/${a}`,n,o,s)))]:(0,theme_1.isObject)(i)?[(0,field_1.getField)(e,{name:`[${t}...]`,schema:i,kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]}function getDiscriminator(e){return e.discriminator||e["x-discriminator"]}function hasType(e,i){return e.type===i||Array.isArray(e.type)&&e.type.includes(i)}
2
2
  //# sourceMappingURL=schema.js.map
@@ -197,6 +197,7 @@ export type SchemaModel = {
197
197
  externalDocs?: OpenAPIExternalDocumentation;
198
198
  isPrimitive: boolean;
199
199
  isCircular: boolean;
200
+ isComplex: boolean;
200
201
  format?: string;
201
202
  displayFormat?: string;
202
203
  nullable: boolean;
@@ -1,2 +1,2 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(i[r[n]]=e[r[n]])}return i};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAPIParser=void 0,exports.pushRef=pushRef,exports.concatRefStacks=concatRefStacks;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}class OpenAPIParser{constructor(e,t,i=(0,normalizeOptions_1.normalizeOptions)({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:i}),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=(0,utils_1.tryDecodeURIComponent)(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 r=theme_1.IS_BROWSER?window.location.href:"";(0,theme_1.isString)(t)&&(this.definitionUrl=new URL(t,r).href)}validate(e){if((0,theme_1.isUndefined)(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=[],i=!1){const r=null==e?void 0:e["x-refsStack"];if(t=concatRefStacks(t,r),this.isRef(e)){const r=(0,utils_1.getDefinitionName)(e.$ref);if(r&&this.options.ignoreNamedSchemas.has(r))return{resolved:{type:"object",title:r},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){n=this.deref(n,t,i).resolved}return this.allowMergeRefs&&(n=this.mergeRefs(e,n,i)),{resolved:n,refsStack:pushRef(t,e.$ref)}}return{resolved:e,refsStack:concatRefStacks(t,r)}}mergeRefs(e,t,i){const{$ref:r}=e,n=__rest(e,["$ref"]),s=Object.keys(n);if(0===s.length)return t;if(i&&s.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly"].includes(e)))){const e=n,{description:i,title:r,readOnly:s,writeOnly:o}=e;return{allOf:[{description:i,title:r,readOnly:s,writeOnly:o},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,i,r=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:r},e);let s=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer_1.JsonPointer.join(r,["allOf"]),allOf:void 0,title:e.title||(0,utils_1.getDefinitionName)(t)});!(0,theme_1.isUndefined)(s.properties)&&(0,theme_1.isObject)(s.properties)&&(s.properties=Object.assign({},s.properties)),!(0,theme_1.isUndefined)(s.items)&&(0,theme_1.isObject)(s.items)&&(s.items=Object.assign({},s.items));const o=e.allOf.map(((e,t)=>{var n;const{resolved:o,refsStack:f}=this.deref(e,i,!0),l=e.$ref,a=l||JsonPointer_1.JsonPointer.join(r,[String(t)]),c=this.mergeAllOf(o,l,f,a);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(f,l),schema:c,absolutePointer:a}})).filter(Boolean);for(const[e,{schema:i,refsStack:r,absolutePointer:f}]of o.entries()){const{type:o,enum:l,properties:a,items:c,required:d,title:p,description:O,readOnly:u,writeOnly:h,oneOf:m,anyOf:y,"x-circular-ref":b}=i,_=__rest(i,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref"]);if(s.type===o||(0,theme_1.isUndefined)(s.type)||(0,theme_1.isUndefined)(o)){if((0,theme_1.isUndefined)(o)||(Array.isArray(o)&&Array.isArray(s.type)?s.type=[...o,...s.type]:s.type=o),(0,theme_1.isUndefined)(l)||(Array.isArray(l)&&Array.isArray(s.enum)?s.enum=Array.from(new Set([...l,...s.enum])):s.enum=l),!(0,theme_1.isUndefined)(a)&&(0,theme_1.isObject)(a)){s.properties=s.properties||{};for(const i in a){const o=concatRefStacks(r,null===(n=a[i])||void 0===n?void 0:n["x-refsStack"]);if(s.properties[i]){if(!b){const r=this.mergeAllOf({allOf:[s.properties[i],a[i]],"x-refsStack":o},t+"/properties/"+i,o,JsonPointer_1.JsonPointer.join(f,["allOf",String(e),"properties",i]));s.properties[i]=r}}else s.properties[i]=Object.assign(Object.assign({},a[i]),{absolutePointer:JsonPointer_1.JsonPointer.join(f,["properties",i]),"x-refsStack":o})}}if(!(0,theme_1.isUndefined)(c)&&!b){const e="boolean"==typeof s.items?{}:Object.assign({},s.items),n="boolean"==typeof i.items?{}:Object.assign({},i.items);s.items=this.mergeAllOf({allOf:[e,n]},t+"/items",r)}(0,theme_1.isUndefined)(m)||(s.oneOf=m),(0,theme_1.isUndefined)(y)||(s.anyOf=y),Array.isArray(d)&&(s.required=[...s.required||[],...d]),s=Object.assign(Object.assign(Object.assign({},s),{title:s.title||p,description:s.description||O,readOnly:(0,theme_1.isUndefined)(s.readOnly)?u:s.readOnly,writeOnly:(0,theme_1.isUndefined)(s.writeOnly)?h:s.writeOnly,"x-circular-ref":s["x-circular-ref"]||b}),_)}}return s}findDerived(e){const t={},i=this.definition.components&&this.definition.components.schemas||{};for(const r in i){const{resolved:n}=this.deref(i[r]);!(0,theme_1.isUndefined)(n.allOf)&&n.allOf.find((t=>!(0,theme_1.isUndefined)(t.$ref)&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+r]=[n["x-discriminator-value"]||r])}return t}hoistOneOfs(e){if((0,theme_1.isUndefined)(e.allOf))return e;const{allOf:t}=e,i=__rest(e,["allOf"]);for(let e=0;e<t.length;e++){const r=t[e],{oneOf:n}=r,s=__rest(r,["oneOf"]);if(n&&Array.isArray(n)){const r=t.slice(0,e),o=t.slice(e+1),f=Object.keys(s).length>0?[s]:[];return Object.assign(Object.assign({},i),{oneOf:n.map((e=>({allOf:[...r,...f,e,...o]})))})}}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=void 0,exports.pushRef=pushRef,exports.concatRefStacks=concatRefStacks;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}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=(0,utils_1.tryDecodeURIComponent)(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:"";(0,theme_1.isString)(t)&&(this.definitionUrl=new URL(t,i).href)}validate(e){if((0,theme_1.isUndefined)(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)).length>100)return{resolved:Object.assign({},e,{"x-complex":!0}),refsStack:t};if(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}"`);if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){n=this.deref(n,t,r).resolved}return this.allowMergeRefs&&(n=this.mergeRefs(e,n,r)),{resolved:n,refsStack:pushRef(t,e.$ref)}}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","x-complex"].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)});!(0,theme_1.isUndefined)(s.properties)&&(0,theme_1.isObject)(s.properties)&&(s.properties=Object.assign({},s.properties)),!(0,theme_1.isUndefined)(s.items)&&(0,theme_1.isObject)(s.items)&&(s.items=Object.assign({},s.items));const o=e.allOf.map(((e,t)=>{var n;const{resolved:o,refsStack:l}=this.deref(e,r,!0),f=e.$ref,a=f||JsonPointer_1.JsonPointer.join(i,[String(t)]);if(o["x-complex"])return{$ref:f,refsStack:pushRef(l,f),schema:{"x-complex":!0},absolutePointer:a};const c=this.mergeAllOf(o,f,l,a);return c["x-circular-ref"]&&c.allOf?void 0:(f&&(null===(n=s["x-parentRefs"])||void 0===n||n.push(...c["x-parentRefs"]||[],f)),{$ref:f,refsStack:pushRef(l,f),schema:c,absolutePointer:a})})).filter(Boolean);for(const[e,{schema:r,refsStack:i,absolutePointer:l}]of o.entries()){const o=r||{},{type:f,enum:a,properties:c,items:p,required:d,title:O,description:u,readOnly:m,writeOnly:h,oneOf:y,anyOf:b,"x-circular-ref":_,"x-complex":g}=o,x=__rest(o,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref","x-complex"]);if(s.type===f||(0,theme_1.isUndefined)(s.type)||(0,theme_1.isUndefined)(f)){if((0,theme_1.isUndefined)(f)||(Array.isArray(f)&&Array.isArray(s.type)?s.type=[...f,...s.type]:s.type=f),(0,theme_1.isUndefined)(a)||(Array.isArray(a)&&Array.isArray(s.enum)?s.enum=Array.from(new Set([...a,...s.enum])):s.enum=a),!(0,theme_1.isUndefined)(c)&&(0,theme_1.isObject)(c)){s.properties=s.properties||{};for(const r in c){const o=concatRefStacks(i,null===(n=c[r])||void 0===n?void 0:n["x-refsStack"]);if(s.properties[r]){if(!_){const i=this.mergeAllOf({allOf:[s.properties[r],c[r]],"x-refsStack":o},t+"/properties/"+r,o,JsonPointer_1.JsonPointer.join(l,["allOf",String(e),"properties",r]));s.properties[r]=i}}else s.properties[r]=Object.assign(Object.assign({},c[r]),{absolutePointer:JsonPointer_1.JsonPointer.join(l,["properties",r]),"x-refsStack":o})}}if(!(0,theme_1.isUndefined)(p)&&!_&&!g){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)}(0,theme_1.isUndefined)(y)||(s.oneOf=y),(0,theme_1.isUndefined)(b)||(s.anyOf=b),Array.isArray(d)&&(s.required=[...s.required||[],...d]),s=Object.assign(Object.assign(Object.assign({},s),{title:s.title||O,description:s.description||u,readOnly:(0,theme_1.isUndefined)(s.readOnly)?m:s.readOnly,writeOnly:(0,theme_1.isUndefined)(s.writeOnly)?h:s.writeOnly,"x-circular-ref":s["x-circular-ref"]||_,"x-complex":s["x-complex"]||g}),x)}}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]);!(0,theme_1.isUndefined)(n.allOf)&&n.allOf.find((t=>!(0,theme_1.isUndefined)(t.$ref)&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+i]=[n["x-discriminator-value"]||i])}return t}hoistOneOfs(e){if((0,theme_1.isUndefined)(e.allOf))return e;const{allOf:t}=e,r=__rest(e,["allOf"]);for(let e=0;e<t.length;e++){const i=t[e],{oneOf:n}=i,s=__rest(i,["oneOf"]);if(n&&Array.isArray(n)){const i=t.slice(0,e),o=t.slice(e+1),l=Object.keys(s).length>0?[s]:[];return Object.assign(Object.assign({},r),{oneOf:n.map((e=>({allOf:[...i,...l,e,...o]})))})}}return e}}exports.OpenAPIParser=OpenAPIParser;
2
2
  //# sourceMappingURL=OpenAPIParser.js.map
@@ -61,6 +61,7 @@ export type MergedOpenAPISchema = OpenAPISchema & {
61
61
  'x-refsStack'?: string[];
62
62
  'x-parentRefs'?: string[];
63
63
  'x-circular-ref'?: boolean;
64
+ 'x-complex'?: boolean;
64
65
  absolutePointer?: string;
65
66
  };
66
67
  export interface MarkdownHeading {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getValueFromMdParsedExtension=exports.normalizeText=exports.dottedString=exports.isMergeableObject=exports.deleteEmptyArrayItem=exports.isArrayOfObjects=void 0,exports.mapWithLast=mapWithLast,exports.mapValues=mapValues,exports.flattenByProp=flattenByProp,exports.stripTrailingSlash=stripTrailingSlash,exports.isNumeric=isNumeric,exports.appendToMdHeading=appendToMdHeading,exports.isAbsoluteUrl=isAbsoluteUrl,exports.resolveUrl=resolveUrl,exports.titleize=titleize,exports.removeQueryStringAndHash=removeQueryStringAndHash,exports.escapeHTMLAttrChars=escapeHTMLAttrChars,exports.unescapeHTMLChars=unescapeHTMLChars,exports.sanitizeItemId=sanitizeItemId,exports.useSchemaTitle=useSchemaTitle,exports.get=get,exports.joinStringFactory=joinStringFactory,exports.getWindowReferenceOptions=getWindowReferenceOptions,exports.getJsUrl=getJsUrl,exports.isLastInArray=isLastInArray,exports.isLastProperty=isLastProperty;const url_1=require("url"),theme_1=require("@redocly/theme"),openapi_1=require("./openapi"),JsonPointer_1=require("./JsonPointer");function mapWithLast(e,t){const r=[];for(let n=0;n<e.length-1;n++)r.push(t(e[n],!1));return 0!==e.length&&r.push(t(e[e.length-1],!0)),r}function mapValues(e,t){const r={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=t(e[n],n,e));return r}function flattenByProp(e,t){const r=[],n=e=>{for(const s of e)r.push(s),s[t]&&n(s[t])};return n(e),r}function stripTrailingSlash(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function appendToMdHeading(e,t,r){const n=new RegExp(`(^|\\n)#\\s?${t}\\s*\\n`,"i"),s=new RegExp(`((\\n|^)#\\s*${t}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(e))return e.replace(s,`$1\n\n${r}\n$4`);{const n=""===e||e.endsWith("\n\n")?"":e.endsWith("\n")?"\n":"\n\n";return`${e}${n}# ${t}\n\n${r}`}}const isArrayOfObjects=e=>Array.isArray(e)&&e.some((e=>(0,theme_1.isObject)(e)));exports.isArrayOfObjects=isArrayOfObjects;const deleteEmptyArrayItem=e=>e.filter((e=>!!e));exports.deleteEmptyArrayItem=deleteEmptyArrayItem;const isMergeableObject=e=>(0,theme_1.isObject)(e)&&!Array.isArray(e);function isAbsoluteUrl(e){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}function resolveUrl(e,t){let r;if(t.startsWith("//")){const{protocol:n}=(0,url_1.parse)(e);r=`${n||"https:"}${t}`}else if(isAbsoluteUrl(t))r=t;else if(t.startsWith("/")){const n=(0,url_1.parse)(e);r=(0,url_1.format)(Object.assign(Object.assign({},n),{pathname:t}))}else r=stripTrailingSlash(e)+"/"+t;return stripTrailingSlash(r)}function titleize(e){return e.charAt(0).toUpperCase()+e.slice(1)}function removeQueryStringAndHash(e){try{const t=parseURL(e);return t.search="",t.hash="",t.toString()}catch(t){return e}}function parseURL(e){return"undefined"==typeof URL?new(require("url").URL)(e):new URL(e)}function escapeHTMLAttrChars(e){return e.replace(/["\\]/g,"\\$&")}function unescapeHTMLChars(e){return e.replace(/&#(\d+);/g,((e,t)=>String.fromCharCode(parseInt(t,10)))).replace(/&amp;/g,"&").replace(/&quot;/g,'"')}function sanitizeItemId(e){return e&&e.replace(/#/g,"_").toLowerCase()}function useSchemaTitle(e,t){return t||(0,openapi_1.isNamedDefinition)(e)&&JsonPointer_1.JsonPointer.baseName(e)||""}function get(e={},t,r){return"string"==typeof t&&(t=t.split(".")),t.reduce(((e,t)=>e&&e[t]?e[t]:r),e)}function joinStringFactory(e){return(...t)=>t.filter(Boolean).join(e)}function getWindowReferenceOptions(e){var t;return theme_1.IS_BROWSER?null===(t=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===t?void 0:t[e]:null}function getJsUrl(){var e;if(!theme_1.IS_BROWSER)return"";const t=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${t}"><\/script>`),(null===(e=document.getElementById("dummy"+t))||void 0===e?void 0:e.previousSibling).src}catch(e){return""}}exports.isMergeableObject=isMergeableObject,exports.dottedString=joinStringFactory(".");const normalizeText=e=>(0,theme_1.isString)(e)?e:null==e?void 0:e.raw;exports.normalizeText=normalizeText;const getValueFromMdParsedExtension=(e,t)=>{const r=e[`x-parsed-md-${t}`]||e[t];if("x-enumDescriptions"!==t)return r;let n={};for(const e in r)e.startsWith("x-parsed-md")||(n[e]=r[`x-parsed-md-${e}`]||r[e]);return Object.keys(n).length?n:r};function isLastInArray(e,t){return t===e.length-1}function isLastProperty(e,t){const r=Object.keys(e);return r.indexOf(t)===r.length-1}exports.getValueFromMdParsedExtension=getValueFromMdParsedExtension;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getValueFromMdParsedExtension=exports.normalizeText=exports.dottedString=exports.isMergeableObject=exports.deleteEmptyArrayItem=exports.isArrayOfObjects=void 0,exports.mapWithLast=mapWithLast,exports.mapValues=mapValues,exports.flattenByProp=flattenByProp,exports.stripTrailingSlash=stripTrailingSlash,exports.isNumeric=isNumeric,exports.appendToMdHeading=appendToMdHeading,exports.isAbsoluteUrl=isAbsoluteUrl,exports.resolveUrl=resolveUrl,exports.titleize=titleize,exports.removeQueryStringAndHash=removeQueryStringAndHash,exports.escapeHTMLAttrChars=escapeHTMLAttrChars,exports.unescapeHTMLChars=unescapeHTMLChars,exports.sanitizeItemId=sanitizeItemId,exports.useSchemaTitle=useSchemaTitle,exports.get=get,exports.joinStringFactory=joinStringFactory,exports.getWindowReferenceOptions=getWindowReferenceOptions,exports.getJsUrl=getJsUrl,exports.isLastInArray=isLastInArray,exports.isLastProperty=isLastProperty;const url_1=require("url"),theme_1=require("@redocly/theme"),openapi_1=require("./openapi"),JsonPointer_1=require("./JsonPointer");function mapWithLast(e,t){const r=[];for(let n=0;n<e.length-1;n++)r.push(t(e[n],!1));return 0!==e.length&&r.push(t(e[e.length-1],!0)),r}function mapValues(e,t){const r={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=t(e[n],n,e));return r}function flattenByProp(e,t){const r=[],n=e=>{for(const s of e)r.push(s),s[t]&&n(s[t])};return n(e),r}function stripTrailingSlash(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function appendToMdHeading(e,t,r){const n=new RegExp(`(^|\\n)#\\s?${t}\\s*\\n`,"i"),s=new RegExp(`((\\n|^)#\\s*${t}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(e))return e.replace(s,`$1\n\n${r}\n$4`);{const n=""===e||e.endsWith("\n\n")?"":e.endsWith("\n")?"\n":"\n\n";return`${e}${n}# ${t}\n\n${r}`}}const isArrayOfObjects=e=>Array.isArray(e)&&e.some((e=>(0,theme_1.isObject)(e)));exports.isArrayOfObjects=isArrayOfObjects;const deleteEmptyArrayItem=e=>e.filter((e=>!!e));exports.deleteEmptyArrayItem=deleteEmptyArrayItem;const isMergeableObject=e=>(0,theme_1.isObject)(e)&&!Array.isArray(e);function isAbsoluteUrl(e){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}function resolveUrl(e,t){let r;if(t.startsWith("//")){const{protocol:n}=(0,url_1.parse)(e);r=`${n||"https:"}${t}`}else if(isAbsoluteUrl(t))r=t;else if(t.startsWith("/")){const n=(0,url_1.parse)(e);r=(0,url_1.format)(Object.assign(Object.assign({},n),{pathname:t}))}else r=stripTrailingSlash(e)+"/"+t;return stripTrailingSlash(r)}function titleize(e){return e.charAt(0).toUpperCase()+e.slice(1)}function removeQueryStringAndHash(e){try{const t=parseURL(e);return t.search="",t.hash="",t.toString()}catch(t){return e}}function parseURL(e){return"undefined"==typeof URL?new(require("url").URL)(e):new URL(e)}function escapeHTMLAttrChars(e){return e.replace(/["\\]/g,"\\$&")}function unescapeHTMLChars(e){return e.replace(/&#(\d+);/g,((e,t)=>String.fromCharCode(parseInt(t,10)))).replace(/&amp;/g,"&").replace(/&quot;/g,'"')}function sanitizeItemId(e){return e&&e.replace(/#/g,"_").toLowerCase()}function useSchemaTitle(e,t){return t||(0,openapi_1.isNamedDefinition)(e)&&JsonPointer_1.JsonPointer.baseName(e)||""}function get(e={},t,r){return"string"==typeof t&&(t=t.split(".")),t.reduce(((e,t)=>e&&e[t]?e[t]:r),e)}function joinStringFactory(e){return(...t)=>t.filter(Boolean).join(e)}function getWindowReferenceOptions(e){var t;return theme_1.IS_BROWSER?null===(t=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===t?void 0:t[e]:null}function getJsUrl(){var e;if(!theme_1.IS_BROWSER)return"";const t=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${t}"><\/script>`),(null===(e=document.getElementById("dummy"+t))||void 0===e?void 0:e.previousSibling).src}catch(e){return""}}exports.isMergeableObject=isMergeableObject,exports.dottedString=joinStringFactory(".");const normalizeText=e=>(0,theme_1.isString)(e)?e:null==e?void 0:e.raw;exports.normalizeText=normalizeText;const getValueFromMdParsedExtension=(e,t)=>{const r=(null==e?void 0:e[`x-parsed-md-${t}`])||(null==e?void 0:e[t]);if("x-enumDescriptions"!==t)return r;let n={};for(const e in r)e.startsWith("x-parsed-md")||(n[e]=(null==r?void 0:r[`x-parsed-md-${e}`])||(null==r?void 0:r[e]));return Object.keys(n).length?n:r};function isLastInArray(e,t){return t===e.length-1}function isLastProperty(e,t){const r=Object.keys(e);return r.indexOf(t)===r.length-1}exports.getValueFromMdParsedExtension=getValueFromMdParsedExtension;
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.shortenHTTPVerb=void 0,exports.isStatusCode=isStatusCode,exports.getStatusCodeType=getStatusCodeType,exports.isOperationName=isOperationName,exports.getOperationName=getOperationName,exports.getOperationId=getOperationId,exports.detectType=detectType,exports.isPrimitiveType=isPrimitiveType,exports.isJsonLike=isJsonLike,exports.isXmlLike=isXmlLike,exports.isFormUrlEncoded=isFormUrlEncoded,exports.isMultipartFormData=isMultipartFormData,exports.urlFormEncodePayload=urlFormEncodePayload,exports.serializeQueryParameter=serializeQueryParameter,exports.serializeParameterValueWithMime=serializeParameterValueWithMime,exports.serializeParameterValue=serializeParameterValue,exports.langFromMime=langFromMime,exports.isNamedDefinition=isNamedDefinition,exports.getDefinitionName=getDefinitionName,exports.humanizeNumberRange=humanizeNumberRange,exports.humanizeConstraints=humanizeConstraints,exports.sortByRequired=sortByRequired,exports.sortByDeprecated=sortByDeprecated,exports.mergeParams=mergeParams,exports.normalizeServers=normalizeServers,exports.isRedocExtension=isRedocExtension,exports.extractExtensions=extractExtensions,exports.pluralizeType=pluralizeType,exports.getContentWithLegacyExamples=getContentWithLegacyExamples;const path_1=require("path"),url_template_1=__importDefault(require("url-template")),theme_1=require("@redocly/theme"),helpers_1=require("./helpers"),constants_1=require("../constants"),JsonPointer_1=require("./JsonPointer"),services_1=require("../services"),string_1=require("./string");function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}function isStatusCode(e){return"default"===e||(0,helpers_1.isNumeric)(e)||isWildcardStatusCode(e)}function getStatusCodeType(e,r=!1){if("default"===e)return r?"error":"success";let t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");let i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};function isOperationName(e){return e in operationNames}function getOperationName(e){const{operationId:r,pathName:t}=e,i=(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"description"));return(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}function getOperationId(e,r){var t;return(null==r?void 0:r.id)?(0,services_1.joinWithSeparator)(r.id,(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer))).toLowerCase():(null===(t=e.tags)||void 0===t?void 0:t.length)?(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer)):(0,helpers_1.sanitizeItemId)(e.operationId?(0,services_1.joinWithSeparator)(constants_1.DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}const schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;const r=Object.keys(schemaKeywordTypes);for(const t of r){const r=schemaKeywordTypes[t];if(void 0!==e[t])return r}return"any"}function isPrimitiveType(e,r=e.type){if(e["x-circular-ref"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;let t=!0;const i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}function isJsonLike(e){return-1!==e.search(/json/i)}function isXmlLike(e){return-1!==(null==e?void 0:e.search(/xml/i))}function isFormUrlEncoded(e){return e===constants_1.MediaTypes.URL_ENCODED}function isMultipartFormData(e){return e===constants_1.MediaTypes.MULTIPART}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((e=>e.toString())).join(t):"object"==typeof e?Object.keys(e).map((r=>`${r}${t}${e[r]}`)).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((t=>e[t]?`${r}[${t}]=${e[t]}`:void 0)).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){const i="__redoc_param_name__",n=r?"*":"";return url_template_1.default.parse(`{?${i}${n}}`).expand({[i]:t}).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){const t=e?"*":"",i="__redoc_param_name__",n=url_template_1.default.parse(`{${i}${t}}`);return(0,string_1.tryDecodeURIComponent)(n.expand({[i]:r}))}function urlFormEncodePayload(e,r={}){if(Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((t=>{const i=e[t],{style:n="form",explode:o=!0}=r[t]||{};switch(n){case"form":return serializeFormValue(t,o,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+n),""}})).join("&")}function serializePathParameter(e,r,t,i){const n=t?"*":"";let o="";"label"===r?o=".":"matrix"===r&&(o=";");const a="__redoc_param_name__";return url_template_1.default.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}function serializeQueryParameter(e,r,t,i){const n=n=>{switch(r){case"form":return serializeFormValue(e,t,n);case"spaceDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"%20"):(console.warn("The style spaceDelimited is applicable to arrays or objects"),"");case"pipeDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"|"):(console.warn("The style pipeDelimited is applicable to arrays or objects"),"");case"deepObject":return!t||Array.isArray(n)||"object"!=typeof n?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(n,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return(0,helpers_1.isArrayOfObjects)(i)&&(i=(0,helpers_1.deleteEmptyArrayItem)(i).map((e=>n(e)))),n(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}function serializeParameterValue(e,r){const{name:t,style:i,explode:n=!1,serializationMime:o}=e;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return`${t}=${serializeParameterValueWithMime(r,o)}`;default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn(`Missing style attribute or content for parameter ${t}`),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0===e)return;const r=e.toString(10);return/^0\.0*1$/.test(r)?`decimal places <= ${r.split(".")[1].length}`:`multiple of ${r}`}function humanizeRangeConstraint(e,r,t){let i;return void 0!==r&&void 0!==t?i=r===t?`= ${r} ${e}`:`[ ${r} .. ${t} ] ${e}`:void 0!==t?i=`<= ${t} ${e}`:void 0!==r&&(i=1===r?"non-empty":`>= ${r} ${e}`),i}function humanizeNumberRange(e){var r,t;const i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,n="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,o="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,a="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==n?`${o?"( ":"[ "}${i} .. ${n}${a?" )":" ]"}`:void 0!==n?`${a?"< ":"<= "}${n}`:void 0!==i?`${o?"> ":">= "}${i}`:void 0}function humanizeConstraints(e){const r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);const i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);const n=humanizeRangeConstraint(1===e.minProperties&&1===e.maxProperties?"property":"properties",e.minProperties,e.maxProperties);void 0!==n&&r.push(n);const o=humanizeMultipleOfConstraint(e.multipleOf);void 0!==o&&r.push(o);const a=humanizeNumberRange(e);return void 0!==a&&r.push(a),e.uniqueItems&&r.push("unique"),r}function sortByRequired(e,r=[]){const t=[],i=[],n=[];return e.forEach((e=>{e.required?r.includes(e.name)?i.push(e):n.push(e):t.push(e)})),i.sort(((e,t)=>r.indexOf(e.name)-r.indexOf(t.name))),[...i,...n,...t]}function sortByDeprecated(e){return e.sort(((e,r)=>Number(e.deprecated)-Number(r.deprecated)))}function mergeParams(e,r=[],t=[],{pathPointer:i,operationPointer:n}){const o={};t.forEach((r=>{({resolved:r}=e.deref(r)),o[r.name+"_"+r.in]=!0}));return[...r.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(i,["parameters",String(r)])}))).filter((({paramOrRef:r})=>(({resolved:r}=e.deref(r)),!o[r.name+"_"+r.in]))),...t.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(n,["parameters",String(r)])})))]}function normalizeServers(e,r){const t=void 0===e?(0,helpers_1.removeQueryStringAndHash)((()=>{if(!theme_1.IS_BROWSER)return globalThis.SSR_HOSTNAME||"";const e=window.location.href;return e.endsWith(".html")?(0,path_1.dirname)(e):e})()):(0,path_1.dirname)(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,(0,helpers_1.resolveUrl)(t,r)),description:e.description||""});var r}))}const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideReplay":!0,"x-tokenEndpointAuthMethod":!0,"x-feedback":!0,"x-badges":!0,"x-assertionType":!0,"x-rbac":!0}||e.startsWith("x-parsed-md-")}function extractExtensions(e,r){return Object.keys(e).filter((e=>!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1)).reduce(((r,t)=>(r[t]=e[t],r)),{})}function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}function getContentWithLegacyExamples(e){let r=e.content;const t=e["x-examples"],i=e["x-example"];if(t){r=Object.assign({},r);for(const e of Object.keys(t)){const i=t[e];r[e]=Object.assign(Object.assign({},r[e]),{examples:i})}}else if(i){r=Object.assign({},r);for(const e of Object.keys(i)){const t=i[e];r[e]=Object.assign(Object.assign({},r[e]),{example:t})}}return r}exports.shortenHTTPVerb=shortenHTTPVerb;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.shortenHTTPVerb=void 0,exports.isStatusCode=isStatusCode,exports.getStatusCodeType=getStatusCodeType,exports.isOperationName=isOperationName,exports.getOperationName=getOperationName,exports.getOperationId=getOperationId,exports.detectType=detectType,exports.isPrimitiveType=isPrimitiveType,exports.isJsonLike=isJsonLike,exports.isXmlLike=isXmlLike,exports.isFormUrlEncoded=isFormUrlEncoded,exports.isMultipartFormData=isMultipartFormData,exports.urlFormEncodePayload=urlFormEncodePayload,exports.serializeQueryParameter=serializeQueryParameter,exports.serializeParameterValueWithMime=serializeParameterValueWithMime,exports.serializeParameterValue=serializeParameterValue,exports.langFromMime=langFromMime,exports.isNamedDefinition=isNamedDefinition,exports.getDefinitionName=getDefinitionName,exports.humanizeNumberRange=humanizeNumberRange,exports.humanizeConstraints=humanizeConstraints,exports.sortByRequired=sortByRequired,exports.sortByDeprecated=sortByDeprecated,exports.mergeParams=mergeParams,exports.normalizeServers=normalizeServers,exports.isRedocExtension=isRedocExtension,exports.extractExtensions=extractExtensions,exports.pluralizeType=pluralizeType,exports.getContentWithLegacyExamples=getContentWithLegacyExamples;const path_1=require("path"),url_template_1=__importDefault(require("url-template")),theme_1=require("@redocly/theme"),helpers_1=require("./helpers"),constants_1=require("../constants"),JsonPointer_1=require("./JsonPointer"),services_1=require("../services"),string_1=require("./string");function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}function isStatusCode(e){return"default"===e||(0,helpers_1.isNumeric)(e)||isWildcardStatusCode(e)}function getStatusCodeType(e,r=!1){if("default"===e)return r?"error":"success";let t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");let i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};function isOperationName(e){return e in operationNames}function getOperationName(e){const{operationId:r,pathName:t}=e,i=(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"description"));return(0,helpers_1.normalizeText)((0,helpers_1.getValueFromMdParsedExtension)(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}function getOperationId(e,r){var t;return(null==r?void 0:r.id)?(0,services_1.joinWithSeparator)(r.id,(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer))).toLowerCase():(null===(t=e.tags)||void 0===t?void 0:t.length)?(0,helpers_1.sanitizeItemId)(e.operationId?e.operationId:pointerToId(e.pointer)):(0,helpers_1.sanitizeItemId)(e.operationId?(0,services_1.joinWithSeparator)(constants_1.DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}const schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;const r=Object.keys(schemaKeywordTypes);for(const t of r){const r=schemaKeywordTypes[t];if(void 0!==e[t])return r}return"any"}function isPrimitiveType(e,r=e.type){if(e["x-circular-ref"])return!0;if(e["x-complex"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;let t=!0;const i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}function isJsonLike(e){return-1!==e.search(/json/i)}function isXmlLike(e){return-1!==(null==e?void 0:e.search(/xml/i))}function isFormUrlEncoded(e){return e===constants_1.MediaTypes.URL_ENCODED}function isMultipartFormData(e){return e===constants_1.MediaTypes.MULTIPART}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((e=>e.toString())).join(t):"object"==typeof e?Object.keys(e).map((r=>`${r}${t}${e[r]}`)).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((t=>e[t]?`${r}[${t}]=${e[t]}`:void 0)).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){const i="__redoc_param_name__",n=r?"*":"";return url_template_1.default.parse(`{?${i}${n}}`).expand({[i]:t}).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){const t=e?"*":"",i="__redoc_param_name__",n=url_template_1.default.parse(`{${i}${t}}`);return(0,string_1.tryDecodeURIComponent)(n.expand({[i]:r}))}function urlFormEncodePayload(e,r={}){if(Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((t=>{const i=e[t],{style:n="form",explode:o=!0}=r[t]||{};switch(n){case"form":return serializeFormValue(t,o,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+n),""}})).join("&")}function serializePathParameter(e,r,t,i){const n=t?"*":"";let o="";"label"===r?o=".":"matrix"===r&&(o=";");const a="__redoc_param_name__";return url_template_1.default.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}function serializeQueryParameter(e,r,t,i){const n=n=>{switch(r){case"form":return serializeFormValue(e,t,n);case"spaceDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"%20"):(console.warn("The style spaceDelimited is applicable to arrays or objects"),"");case"pipeDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"|"):(console.warn("The style pipeDelimited is applicable to arrays or objects"),"");case"deepObject":return!t||Array.isArray(n)||"object"!=typeof n?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(n,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return(0,helpers_1.isArrayOfObjects)(i)&&(i=(0,helpers_1.deleteEmptyArrayItem)(i).map((e=>n(e)))),n(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}function serializeParameterValue(e,r){const{name:t,style:i,explode:n=!1,serializationMime:o}=e;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return`${t}=${serializeParameterValueWithMime(r,o)}`;default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn(`Missing style attribute or content for parameter ${t}`),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0===e)return;const r=e.toString(10);return/^0\.0*1$/.test(r)?`decimal places <= ${r.split(".")[1].length}`:`multiple of ${r}`}function humanizeRangeConstraint(e,r,t){let i;return void 0!==r&&void 0!==t?i=r===t?`= ${r} ${e}`:`[ ${r} .. ${t} ] ${e}`:void 0!==t?i=`<= ${t} ${e}`:void 0!==r&&(i=1===r?"non-empty":`>= ${r} ${e}`),i}function humanizeNumberRange(e){var r,t;const i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,n="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,o="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,a="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==n?`${o?"( ":"[ "}${i} .. ${n}${a?" )":" ]"}`:void 0!==n?`${a?"< ":"<= "}${n}`:void 0!==i?`${o?"> ":">= "}${i}`:void 0}function humanizeConstraints(e){const r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);const i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);const n=humanizeRangeConstraint(1===e.minProperties&&1===e.maxProperties?"property":"properties",e.minProperties,e.maxProperties);void 0!==n&&r.push(n);const o=humanizeMultipleOfConstraint(e.multipleOf);void 0!==o&&r.push(o);const a=humanizeNumberRange(e);return void 0!==a&&r.push(a),e.uniqueItems&&r.push("unique"),r}function sortByRequired(e,r=[]){const t=[],i=[],n=[];return e.forEach((e=>{e.required?r.includes(e.name)?i.push(e):n.push(e):t.push(e)})),i.sort(((e,t)=>r.indexOf(e.name)-r.indexOf(t.name))),[...i,...n,...t]}function sortByDeprecated(e){return e.sort(((e,r)=>Number(e.deprecated)-Number(r.deprecated)))}function mergeParams(e,r=[],t=[],{pathPointer:i,operationPointer:n}){const o={};t.forEach((r=>{({resolved:r}=e.deref(r)),o[r.name+"_"+r.in]=!0}));return[...r.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(i,["parameters",String(r)])}))).filter((({paramOrRef:r})=>(({resolved:r}=e.deref(r)),!o[r.name+"_"+r.in]))),...t.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer_1.JsonPointer.join(n,["parameters",String(r)])})))]}function normalizeServers(e,r){const t=void 0===e?(0,helpers_1.removeQueryStringAndHash)((()=>{if(!theme_1.IS_BROWSER)return globalThis.SSR_HOSTNAME||"";const e=window.location.href;return e.endsWith(".html")?(0,path_1.dirname)(e):e})()):(0,path_1.dirname)(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,(0,helpers_1.resolveUrl)(t,r)),description:e.description||""});var r}))}const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-complex":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideReplay":!0,"x-tokenEndpointAuthMethod":!0,"x-feedback":!0,"x-badges":!0,"x-assertionType":!0,"x-rbac":!0}||e.startsWith("x-parsed-md-")}function extractExtensions(e,r){return Object.keys(e).filter((e=>!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1)).reduce(((r,t)=>(r[t]=e[t],r)),{})}function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}function getContentWithLegacyExamples(e){let r=e.content;const t=e["x-examples"],i=e["x-example"];if(t){r=Object.assign({},r);for(const e of Object.keys(t)){const i=t[e];r[e]=Object.assign(Object.assign({},r[e]),{examples:i})}}else if(i){r=Object.assign({},r);for(const e of Object.keys(i)){const t=i[e];r[e]=Object.assign(Object.assign({},r[e]),{example:t})}}return r}exports.shortenHTTPVerb=shortenHTTPVerb;
2
2
  //# sourceMappingURL=openapi.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useMemo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{LinkIcon}from"@redocly/theme";import{RecursiveLabel,Tag,AccessLabel,RequiredLabel,StyledBadge}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{FieldDetail}from"./FieldDetail";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{globalOptionsAtom}from"../../jotai/store";import{SchemaTypeInfo}from"./SchemaTypeInfo";import{LinkToField}from"../common/LinkToField";import{Pattern}from"./Pattern";import{getAccessModeLabelText}from"../RenderHook";import{useTranslate}from"../../hooks";function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:a,deepLink:t,fieldParentsName:i=[]}){var o;const r=useTranslate(),{hidePropertiesPrefix:s,hideSchemaTitles:n}=useAtomValue(globalOptionsAtom),{schema:l,description:p,example:m,deprecated:d,examples:c,kind:x,required:f,name:u}=e,h="header"===e.in,y=useMemo((()=>{if(void 0!==m||void 0!==c){if(void 0!==c)return _jsx(Examples,{field:e});{const a=!!e.in;return _jsx(FieldDetail,{label:`${r("openapi.example","Example")}:`,value:getSerializedValue(e,e.example),raw:a})}}return null}),[m,c,e,r]),v=getAccessModeLabelText(e.schema);return _jsxs(_Fragment,{children:[_jsxs(Row,{children:[u&&_jsxs(Name,{children:[t&&_jsx(LinkToField,{to:t}),!s&&i.map((e=>e+".​")),_jsx(SchemaName,{className:"schema-name",children:u})]}),_jsx(SchemaTypeInfo,{type:l.typePrefix+l.displayType}),_jsx(SchemaTypeInfo,{type:l.displayFormat&&`(${l.displayFormat})`}),_jsx(SchemaTypeInfo,{type:l.contentEncoding}),_jsx(SchemaTypeInfo,{type:l.title&&!n?`(${l.title})`:""}),null===(o=l.constraints)||void 0===o?void 0:o.map((e=>_jsx(SchemaTypeInfo,{type:e},e))),d&&_jsx(StyledBadge,{deprecated:!0,children:r("openapi.badges.deprecated","Deprecated")}),_jsx(Pattern,{pattern:l.pattern}),"additionalProperties"===x&&_jsx(Tag,{children:r("openapi.additionalProperties","additional property")}),"patternProperties"===x&&_jsx(Tag,{children:r("openapi.patternProperties","pattern property")}),v&&_jsx(AccessLabel,{children:v}),f&&_jsx(RequiredLabel,{children:r("openapi.required","required")}),l.isCircular&&_jsx(RecursiveLabel,{children:r("openapi.recursive","Recursive")})]}),_jsx(StyledDescription,{source:p}),_jsx(FieldDetail,{raw:h,type:"default",label:r("openapi.default","Default"),value:l.default}),_jsx(EnumValues,{type:l.type,values:l["x-enumDescriptions"]||l.enum}),y,_jsx(Extensions,{extensions:Object.assign(Object.assign({},e.extensions),l.extensions)}),l.externalDocs&&_jsx(ExternalDocumentation,{externalDocs:l.externalDocs,compact:!0}),null==a?void 0:a(),_jsx(FieldDetail,{label:r("openapi.value","Value"),value:e.const||void 0})]})}export const FieldDetails=memo(FieldDetailsComponent);const Row=styled.div`
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useMemo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{LinkIcon}from"@redocly/theme";import{RecursiveLabel,Tag,AccessLabel,RequiredLabel,StyledBadge}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{FieldDetail}from"./FieldDetail";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{globalOptionsAtom}from"../../jotai/store";import{SchemaTypeInfo}from"./SchemaTypeInfo";import{LinkToField}from"../common/LinkToField";import{Pattern}from"./Pattern";import{getAccessModeLabelText}from"../RenderHook";import{useTranslate}from"../../hooks";function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:a,deepLink:i,fieldParentsName:t=[]}){var o;const r=useTranslate(),{hidePropertiesPrefix:s,hideSchemaTitles:n}=useAtomValue(globalOptionsAtom),{schema:l,description:p,example:m,deprecated:c,examples:d,kind:x,required:f,name:u}=e,h="header"===e.in,y=useMemo((()=>{if(void 0!==m||void 0!==d){if(void 0!==d)return _jsx(Examples,{field:e});{const a=!!e.in;return _jsx(FieldDetail,{label:`${r("openapi.example","Example")}:`,value:getSerializedValue(e,e.example),raw:a})}}return null}),[m,d,e,r]),v=getAccessModeLabelText(e.schema);return _jsxs(_Fragment,{children:[_jsxs(Row,{children:[u&&_jsxs(Name,{children:[i&&_jsx(LinkToField,{to:i}),!s&&t.map((e=>e+".​")),_jsx(SchemaName,{className:"schema-name",children:u})]}),_jsx(SchemaTypeInfo,{type:l.typePrefix+l.displayType}),_jsx(SchemaTypeInfo,{type:l.displayFormat&&`(${l.displayFormat})`}),_jsx(SchemaTypeInfo,{type:l.contentEncoding}),_jsx(SchemaTypeInfo,{type:l.title&&!n?`(${l.title})`:""}),null===(o=l.constraints)||void 0===o?void 0:o.map((e=>_jsx(SchemaTypeInfo,{type:e},e))),c&&_jsx(StyledBadge,{deprecated:!0,children:r("openapi.badges.deprecated","Deprecated")}),_jsx(Pattern,{pattern:l.pattern}),"additionalProperties"===x&&_jsx(Tag,{children:r("openapi.additionalProperties","additional property")}),"patternProperties"===x&&_jsx(Tag,{children:r("openapi.patternProperties","pattern property")}),v&&_jsx(AccessLabel,{children:v}),f&&_jsx(RequiredLabel,{children:r("openapi.required","required")}),l.isCircular&&_jsx(RecursiveLabel,{children:r("openapi.recursive","Recursive")})]}),l.isComplex&&_jsx(RecursiveLabel,{children:r("openapi.complex","Complex")}),_jsx(StyledDescription,{source:p}),_jsx(FieldDetail,{raw:h,type:"default",label:r("openapi.default","Default"),value:l.default}),_jsx(EnumValues,{type:l.type,values:l["x-enumDescriptions"]||l.enum}),y,_jsx(Extensions,{extensions:Object.assign(Object.assign({},e.extensions),l.extensions)}),l.externalDocs&&_jsx(ExternalDocumentation,{externalDocs:l.externalDocs,compact:!0}),null==a?void 0:a(),_jsx(FieldDetail,{label:r("openapi.value","Value"),value:e.const||void 0})]})}export const FieldDetails=memo(FieldDetailsComponent);const Row=styled.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: calc(var(--spacing-xxs) / 4) var(--spacing-xxs);
@@ -1,2 +1,2 @@
1
- var __rest=this&&this.__rest||function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(i[r[n]]=e[r[n]])}return i};import{isObject}from"@redocly/theme";import{REDOCLY_TEAMS_RBAC}from"@redocly/config";import{pushRef}from"../services/OpenAPIParser";import{detectType,extractExtensions,getValueFromMdParsedExtension,humanizeConstraints,isNamedDefinition,isPrimitiveType,JsonPointer,pluralizeType,sortByDeprecated,sortByRequired}from"../utils";import{getField}from"./field";export function getSchema({parser:e,schemaOrRef:t,pointer:i,options:r,isChild:n=!1,baseRefsStack:s=[],deps:o,absolutePointer:a}){var l,p,d,m,c,f,y,u,O;const{resolved:h,refsStack:v}=e.deref(t,s,!0),b=t.$ref||i||a||"",P=pushRef(v,b),g=e.mergeAllOf(h,b,P,t.$ref||a),x=g.type||detectType(g),F={operationPointer:(null===(l=o.operation)||void 0===l?void 0:l.pointer)||a||"",schemaOrRef:t,isChild:n,typePrefix:"",pointer:b,absolutePointer:a,refsStack:P,rawSchema:h,type:x,isCircular:!!g["x-circular-ref"],title:g.title||isNamedDefinition(b)&&JsonPointer.baseName(b)||"",description:getValueFromMdParsedExtension(g,"description")||"",format:g.format,enum:g.enum||[],example:g.example,deprecated:!!g.deprecated,pattern:g.pattern,externalDocs:g.externalDocs,displayFormat:g.format,isPrimitive:isPrimitiveType(g,x),constraints:humanizeConstraints(g),default:g.default,readOnly:!!g.readOnly,writeOnly:!!g.writeOnly,const:g.const||"",contentEncoding:g.contentEncoding,contentMediaType:g.contentMediaType,minItems:g.minItems,maxItems:g.maxItems,nullable:g.nullable||g["x-nullable"],schema:g,displayType:"",items:void 0,extensions:void 0,oneOfType:"",discriminatorProp:void 0,oneOf:void 0,[REDOCLY_TEAMS_RBAC]:g[REDOCLY_TEAMS_RBAC],"x-enumDescriptions":getValueFromMdParsedExtension(g,"x-enumDescriptions"),get fields(){if(hasType(F,"object")||hasType(F,"array")&&(Array.isArray(g.items)||Array.isArray(g.prefixItems)))return buildFields(e,g,b,r,P,o)}};if((g.nullable||g["x-nullable"])&&(Array.isArray(F.type)&&!F.type.some((e=>null===e||"null"===e))?F.type=[...F.type,"null"]:Array.isArray(F.type)||null===F.type&&"null"===F.type||(F.type=[F.type,"null"])),F.displayType=Array.isArray(F.type)?F.type.map((e=>null===e?"null":e)).join(" or "):F.type,F.isCircular)return F;if(g.if&&g.then||g.if&&g.else){const{oneOf:t,oneOfType:i}=initConditionalOperators({schema:g,parser:e,pointer:b,options:r,deps:o,refsStack:P});return F.oneOf=t,F.oneOfType=i,F}if(!n&&void 0!==getDiscriminator(g)){const{oneOf:t,discriminatorProp:i}=initDiscriminator({schema:g,parser:e,deps:o,mergedSchema:g,options:r,pointer:b,refsStack:P});return F.oneOf=t,F.discriminatorProp=i,F}if(n&&Array.isArray(g.oneOf)&&g.oneOf.find((e=>e.$ref===b))&&delete g.oneOf,void 0!==g.oneOf){const{oneOf:t,displayType:i}=initOneOf({schemaOneOf:g.oneOf,parser:e,deps:o,options:r,pointer:b,refsStack:P,schema:g});return F.oneOfType="One of",t&&(F.oneOf=t),F.displayType=i,void 0!==g.anyOf&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${b}`),F}if(void 0!==g.anyOf){const{oneOf:t,displayType:i}=initOneOf({schemaOneOf:g.anyOf,parser:e,deps:o,options:r,pointer:b,refsStack:P,schema:g});return t&&(F.oneOf=t),F.displayType=i,F.oneOfType="Any of",F}if(hasType(F,"array")&&(g.items&&(F.items=getSchema({parser:e,schemaOrRef:g.items,pointer:b+"/items",options:r,baseRefsStack:P,deps:o,absolutePointer:JsonPointer.join(g.absolutePointer||"",["items"])})),F.displayType=g.prefixItems||Array.isArray(g.items)?"items":pluralizeType((null===(p=F.items)||void 0===p?void 0:p.displayType)||F.displayType),F.displayFormat=(null===(d=F.items)||void 0===d?void 0:d.format)||"",F.typePrefix=(null===(m=F.items)||void 0===m?void 0:m.typePrefix)||"Array of ",F.title=F.title||(null===(c=F.items)||void 0===c?void 0:c.title)||"",F.isPrimitive=void 0!==(null===(f=F.items)||void 0===f?void 0:f.isPrimitive)?null===(y=F.items)||void 0===y?void 0:y.isPrimitive:F.isPrimitive,void 0===F.example&&void 0!==(null===(u=F.items)||void 0===u?void 0:u.example)&&(F.example=[F.items.example]),(null===(O=F.items)||void 0===O?void 0:O.isPrimitive)&&(F.enum=F.items.enum,F["x-enumDescriptions"]=getValueFromMdParsedExtension(F.items,"x-enumDescriptions")),Array.isArray(F.type))){const e=F.type.filter((e=>"array"!==e));e.length&&(F.displayType+=` or ${e.join(" or ")}`)}return r.showExtensions&&(F.extensions=extractExtensions(g,r.showExtensions)),F}function initDiscriminator({schema:e,parser:t,pointer:i,options:r,refsStack:n,deps:s,mergedSchema:o}){const a=getDiscriminator(e),l=null==a?void 0:a.propertyName,p=t.findDerived([...o["x-parentRefs"]||[],i]);if(e.oneOf)for(const t of e.oneOf){if(void 0===t.$ref)continue;const e=JsonPointer.baseName(t.$ref);p[t.$ref]=e}const d=(null==a?void 0:a.mapping)||{};let m=(null==a?void 0:a["x-explicitMappingOnly"])||!1;0===Object.keys(d).length&&(m=!1);const c={};for(const e in d){const t=d[e];Array.isArray(c[t])?c[t].push(e):c[t]=[e]}const f=m?Object.assign({},c):Object.assign(Object.assign({},p),c);let y=[];for(const e of Object.keys(f)){const t=f[e];if(Array.isArray(t))for(const i of t)y.push({$ref:e,name:i});else y.push({$ref:e,name:t})}const u=Object.keys(d);0!==u.length&&(y=y.sort(((e,t)=>{const i=u.indexOf(e.name),r=u.indexOf(t.name);return i<0&&r<0?e.name.localeCompare(t.name):i<0?1:r<0?-1:i-r})));return{oneOf:y.map((({$ref:e,name:i},a)=>{const l=getSchema({parser:t,schemaOrRef:{$ref:e},pointer:e,options:r,isChild:!0,baseRefsStack:n.slice(0,-1),deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&d="+a:"&d="+a.toString()}),absolutePointer:o.absolutePointer});return l.title=i,l})),discriminatorProp:l}}function initOneOf({schemaOneOf:e,parser:t,refsStack:i,pointer:r,schema:n,options:s,deps:o}){const a=e.map(((e,a)=>{const{resolved:l,refsStack:p}=t.deref(e,i,!0),d=t.mergeAllOf(l,r+"/oneOf/"+a,p),m=isNamedDefinition(e.$ref)&&!d.title?JsonPointer.baseName(e.$ref):`${d.title||""}${d.const&&JSON.stringify(d.const)||""}`;return getSchema({parser:t,schemaOrRef:Object.assign(Object.assign({},d),{title:m,allOf:[Object.assign(Object.assign({},n),{oneOf:void 0,anyOf:void 0})],discriminator:l.allOf?void 0:d.discriminator}),pointer:e.$ref||r+"/oneOf/"+a,options:s,baseRefsStack:p,deps:Object.assign(Object.assign({},o),{parentFieldFullPath:o.parentFieldFullPath?o.parentFieldFullPath+"&oneOf="+a:"&oneOf="+a.toString()})})})),l=a.map((e=>{let t=e.typePrefix+(e.title?`${e.title} (${e.displayType})`:e.displayType);return t.indexOf(" or ")>-1&&(t=`(${t})`),t})).join(" or ");return{oneOf:a,displayType:l}}function initConditionalOperators({schema:e,parser:t,pointer:i,options:r,refsStack:n,deps:s}){const{if:o,else:a={},then:l={}}=e,p=__rest(e,["if","else","then"]);return{oneOf:[{allOf:[p,l,o],title:o&&o["x-displayName"]||(null==o?void 0:o.title)||"case 1"},{allOf:[p,a],title:a&&a["x-displayName"]||(null==a?void 0:a.title)||"case 2"}].map(((e,o)=>getSchema({parser:t,schemaOrRef:Object.assign({},e),pointer:i+"/oneOf/"+o,options:r,baseRefsStack:n,deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&oneOf="+o:"&oneOf="+o.toString()})}))),oneOfType:"One of"}}function normalizeField(e,t,i){return e||(console.warn(`Field "${t}" is invalid, skipping.\n Field must be an object but got ${typeof e} at "${i}"`),{})}function buildFields(e,t,i,r,n,s){let o=t.properties||(hasType(t,"array")?t.prefixItems||t.items:void 0)||{};const a=t.patternProperties||{},l=t.additionalProperties||t.unevaluatedProperties,p=t.prefixItems?t.items:t.additionalItems,d=t.default||{};let m=Object.keys(o).map((a=>{var l;const p=normalizeField(o[a],a,i),m=void 0!==t.required&&t.required.indexOf(a)>-1;return getField(e,{name:t.properties?a:`[${a}]`,required:m,schema:Object.assign(Object.assign({},p),{example:(null===(l=t.example)||void 0===l?void 0:l[a])||p.example,default:void 0===p.default&&d?d[a]:p.default})},i+"/properties/"+a,r,s,n,JsonPointer.join(t.absolutePointer||"",["properties",a]))}));return r.sortRequiredPropsFirst&&(m=sortByRequired(m,t.required)),m.push(...Object.keys(a).map((t=>{const o=normalizeField(a[t],t,i);return getField(e,{name:t,required:!1,schema:o,kind:"patternProperties"},`${i}/patternProperties/${t}`,r,s,n)}))),(isObject(l)||!0===l)&&m.push(getField(e,{name:(isObject(l)&&l["x-additionalPropertiesName"]||"property name").concat("*"),required:!1,schema:!0===l?{}:l,kind:"additionalProperties"},i+"/additionalProperties",r,s,n,JsonPointer.join(t.absolutePointer||"",["additionalProperties"]))),m.push(...buildAdditionalItems({parser:e,schema:p,fieldsCount:m.length,$ref:i,options:r,refsStack:n,deps:s})),sortByDeprecated(m)}function buildAdditionalItems({parser:e,schema:t=!1,fieldsCount:i,$ref:r,options:n,refsStack:s,deps:o}){return"boolean"==typeof t?t?[getField(e,{name:`[${i}...]`,schema:{},kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]:Array.isArray(t)?[...t.map(((t,a)=>getField(e,{name:`[${i+a}]`,schema:t,kind:"additionalItems"},`${r}/additionalItems/${a}`,n,o,s)))]:isObject(t)?[getField(e,{name:`[${i}...]`,schema:t,kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]}function getDiscriminator(e){return e.discriminator||e["x-discriminator"]}function hasType(e,t){return e.type===t||Array.isArray(e.type)&&e.type.includes(t)}
1
+ var __rest=this&&this.__rest||function(e,i){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&i.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)i.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(t[r[n]]=e[r[n]])}return t};import{isObject}from"@redocly/theme";import{REDOCLY_TEAMS_RBAC}from"@redocly/config";import{pushRef}from"../services/OpenAPIParser";import{detectType,extractExtensions,getValueFromMdParsedExtension,humanizeConstraints,isNamedDefinition,isPrimitiveType,JsonPointer,pluralizeType,sortByDeprecated,sortByRequired}from"../utils";import{getField}from"./field";export function getSchema({parser:e,schemaOrRef:i,pointer:t,options:r,isChild:n=!1,baseRefsStack:s=[],deps:o,absolutePointer:a}){var l,p,d,m,c,f,y,u,O;const{resolved:h,refsStack:v}=e.deref(i,s,!0),b=i.$ref||t||a||"",P=pushRef(v,b),g=e.mergeAllOf(h,b,P,i.$ref||a),x=g.type||detectType(g),F={operationPointer:(null===(l=o.operation)||void 0===l?void 0:l.pointer)||a||"",schemaOrRef:i,isChild:n,typePrefix:"",pointer:b,absolutePointer:a,refsStack:P,rawSchema:h,type:x,isCircular:!!g["x-circular-ref"],isComplex:!!g["x-complex"],title:g.title||isNamedDefinition(b)&&JsonPointer.baseName(b)||"",description:getValueFromMdParsedExtension(g,"description")||"",format:g.format,enum:g.enum||[],example:g.example,deprecated:!!g.deprecated,pattern:g.pattern,externalDocs:g.externalDocs,displayFormat:g.format,isPrimitive:isPrimitiveType(g,x),constraints:humanizeConstraints(g),default:g.default,readOnly:!!g.readOnly,writeOnly:!!g.writeOnly,const:g.const||"",contentEncoding:g.contentEncoding,contentMediaType:g.contentMediaType,minItems:g.minItems,maxItems:g.maxItems,nullable:g.nullable||g["x-nullable"],schema:g,displayType:"",items:void 0,extensions:void 0,oneOfType:"",discriminatorProp:void 0,oneOf:void 0,[REDOCLY_TEAMS_RBAC]:g[REDOCLY_TEAMS_RBAC],"x-enumDescriptions":getValueFromMdParsedExtension(g,"x-enumDescriptions"),get fields(){if(!F.isCircular&&!F.isComplex&&(hasType(F,"object")||hasType(F,"array")&&(Array.isArray(g.items)||Array.isArray(g.prefixItems))))return buildFields(e,g,b,r,P,o)}};if((g.nullable||g["x-nullable"])&&(Array.isArray(F.type)&&!F.type.some((e=>null===e||"null"===e))?F.type=[...F.type,"null"]:Array.isArray(F.type)||null===F.type&&"null"===F.type||(F.type=[F.type,"null"])),F.displayType=Array.isArray(F.type)?F.type.map((e=>null===e?"null":e)).join(" or "):F.type,F.isCircular)return F;if(g.if&&g.then||g.if&&g.else){const{oneOf:i,oneOfType:t}=initConditionalOperators({schema:g,parser:e,pointer:b,options:r,deps:o,refsStack:P});return F.oneOf=i,F.oneOfType=t,F}if(!n&&void 0!==getDiscriminator(g)){const{oneOf:i,discriminatorProp:t}=initDiscriminator({schema:g,parser:e,deps:o,mergedSchema:g,options:r,pointer:b,refsStack:P});return F.oneOf=i,F.discriminatorProp=t,F}if(n&&Array.isArray(g.oneOf)&&g.oneOf.find((e=>e.$ref===b))&&delete g.oneOf,void 0!==g.oneOf){const{oneOf:i,displayType:t}=initOneOf({schemaOneOf:g.oneOf,parser:e,deps:o,options:r,pointer:b,refsStack:P,schema:g});return F.oneOfType="One of",i&&(F.oneOf=i),F.displayType=t,void 0!==g.anyOf&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${b}`),F}if(void 0!==g.anyOf){const{oneOf:i,displayType:t}=initOneOf({schemaOneOf:g.anyOf,parser:e,deps:o,options:r,pointer:b,refsStack:P,schema:g});return i&&(F.oneOf=i),F.displayType=t,F.oneOfType="Any of",F}if(hasType(F,"array")&&(g.items&&(F.items=getSchema({parser:e,schemaOrRef:g.items,pointer:b+"/items",options:r,baseRefsStack:P,deps:o,absolutePointer:JsonPointer.join(g.absolutePointer||"",["items"])})),F.displayType=g.prefixItems||Array.isArray(g.items)?"items":pluralizeType((null===(p=F.items)||void 0===p?void 0:p.displayType)||F.displayType),F.displayFormat=(null===(d=F.items)||void 0===d?void 0:d.format)||"",F.typePrefix=(null===(m=F.items)||void 0===m?void 0:m.typePrefix)||"Array of ",F.title=F.title||(null===(c=F.items)||void 0===c?void 0:c.title)||"",F.isPrimitive=void 0!==(null===(f=F.items)||void 0===f?void 0:f.isPrimitive)?null===(y=F.items)||void 0===y?void 0:y.isPrimitive:F.isPrimitive,void 0===F.example&&void 0!==(null===(u=F.items)||void 0===u?void 0:u.example)&&(F.example=[F.items.example]),(null===(O=F.items)||void 0===O?void 0:O.isPrimitive)&&(F.enum=F.items.enum,F["x-enumDescriptions"]=getValueFromMdParsedExtension(F.items,"x-enumDescriptions")),Array.isArray(F.type))){const e=F.type.filter((e=>"array"!==e));e.length&&(F.displayType+=` or ${e.join(" or ")}`)}return r.showExtensions&&(F.extensions=extractExtensions(g,r.showExtensions)),F}function initDiscriminator({schema:e,parser:i,pointer:t,options:r,refsStack:n,deps:s,mergedSchema:o}){const a=getDiscriminator(e),l=null==a?void 0:a.propertyName,p=i.findDerived([...o["x-parentRefs"]||[],t]);if(e.oneOf)for(const i of e.oneOf){if(void 0===i.$ref)continue;const e=JsonPointer.baseName(i.$ref);p[i.$ref]=e}const d=(null==a?void 0:a.mapping)||{};let m=(null==a?void 0:a["x-explicitMappingOnly"])||!1;0===Object.keys(d).length&&(m=!1);const c={};for(const e in d){const i=d[e];Array.isArray(c[i])?c[i].push(e):c[i]=[e]}const f=m?Object.assign({},c):Object.assign(Object.assign({},p),c);let y=[];for(const e of Object.keys(f)){const i=f[e];if(Array.isArray(i))for(const t of i)y.push({$ref:e,name:t});else y.push({$ref:e,name:i})}const u=Object.keys(d);0!==u.length&&(y=y.sort(((e,i)=>{const t=u.indexOf(e.name),r=u.indexOf(i.name);return t<0&&r<0?e.name.localeCompare(i.name):t<0?1:r<0?-1:t-r})));return{oneOf:y.map((({$ref:e,name:t},a)=>{const l=getSchema({parser:i,schemaOrRef:{$ref:e},pointer:e,options:r,isChild:!0,baseRefsStack:n.slice(0,-1),deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&d="+a:"&d="+a.toString()}),absolutePointer:o.absolutePointer});return l.title=t,l})),discriminatorProp:l}}function initOneOf({schemaOneOf:e,parser:i,refsStack:t,pointer:r,schema:n,options:s,deps:o}){const a=e.map(((e,a)=>{const{resolved:l,refsStack:p}=i.deref(e,t,!0),d=i.mergeAllOf(l,r+"/oneOf/"+a,p),m=isNamedDefinition(e.$ref)&&!d.title?JsonPointer.baseName(e.$ref):`${d.title||""}${d.const&&JSON.stringify(d.const)||""}`;return getSchema({parser:i,schemaOrRef:Object.assign(Object.assign({},d),{title:m,allOf:[Object.assign(Object.assign({},n),{oneOf:void 0,anyOf:void 0})],discriminator:l.allOf?void 0:d.discriminator}),pointer:e.$ref||r+"/oneOf/"+a,options:s,baseRefsStack:p,deps:Object.assign(Object.assign({},o),{parentFieldFullPath:o.parentFieldFullPath?o.parentFieldFullPath+"&oneOf="+a:"&oneOf="+a.toString()})})})),l=a.map((e=>{let i=e.typePrefix+(e.title?`${e.title} (${e.displayType})`:e.displayType);return i.indexOf(" or ")>-1&&(i=`(${i})`),i})).join(" or ");return{oneOf:a,displayType:l}}function initConditionalOperators({schema:e,parser:i,pointer:t,options:r,refsStack:n,deps:s}){const{if:o,else:a={},then:l={}}=e,p=__rest(e,["if","else","then"]);return{oneOf:[{allOf:[p,l,o],title:o&&o["x-displayName"]||(null==o?void 0:o.title)||"case 1"},{allOf:[p,a],title:a&&a["x-displayName"]||(null==a?void 0:a.title)||"case 2"}].map(((e,o)=>getSchema({parser:i,schemaOrRef:Object.assign({},e),pointer:t+"/oneOf/"+o,options:r,baseRefsStack:n,deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"&oneOf="+o:"&oneOf="+o.toString()})}))),oneOfType:"One of"}}function normalizeField(e,i,t){return e||(console.warn(`Field "${i}" is invalid, skipping.\n Field must be an object but got ${typeof e} at "${t}"`),{})}function buildFields(e,i,t,r,n,s){let o=i.properties||(hasType(i,"array")?i.prefixItems||i.items:void 0)||{};const a=i.patternProperties||{},l=i.additionalProperties||i.unevaluatedProperties,p=i.prefixItems?i.items:i.additionalItems,d=i.default||{};let m=Object.keys(o).map((a=>{var l;const p=normalizeField(o[a],a,t),m=void 0!==i.required&&i.required.indexOf(a)>-1;return getField(e,{name:i.properties?a:`[${a}]`,required:m,schema:Object.assign(Object.assign({},p),{example:(null===(l=i.example)||void 0===l?void 0:l[a])||p.example,default:void 0===p.default&&d?d[a]:p.default})},t+"/properties/"+a,r,s,n,JsonPointer.join(i.absolutePointer||"",["properties",a]))}));return r.sortRequiredPropsFirst&&(m=sortByRequired(m,i.required)),m.push(...Object.keys(a).map((i=>{const o=normalizeField(a[i],i,t);return getField(e,{name:i,required:!1,schema:o,kind:"patternProperties"},`${t}/patternProperties/${i}`,r,s,n)}))),(isObject(l)||!0===l)&&m.push(getField(e,{name:(isObject(l)&&l["x-additionalPropertiesName"]||"property name").concat("*"),required:!1,schema:!0===l?{}:l,kind:"additionalProperties"},t+"/additionalProperties",r,s,n,JsonPointer.join(i.absolutePointer||"",["additionalProperties"]))),m.push(...buildAdditionalItems({parser:e,schema:p,fieldsCount:m.length,$ref:t,options:r,refsStack:n,deps:s})),sortByDeprecated(m)}function buildAdditionalItems({parser:e,schema:i=!1,fieldsCount:t,$ref:r,options:n,refsStack:s,deps:o}){return"boolean"==typeof i?i?[getField(e,{name:`[${t}...]`,schema:{},kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]:Array.isArray(i)?[...i.map(((i,a)=>getField(e,{name:`[${t+a}]`,schema:i,kind:"additionalItems"},`${r}/additionalItems/${a}`,n,o,s)))]:isObject(i)?[getField(e,{name:`[${t}...]`,schema:i,kind:"additionalItems"},`${r}/additionalItems`,n,o,s)]:[]}function getDiscriminator(e){return e.discriminator||e["x-discriminator"]}function hasType(e,i){return e.type===i||Array.isArray(e.type)&&e.type.includes(i)}
2
2
  //# sourceMappingURL=schema.js.map
@@ -197,6 +197,7 @@ export type SchemaModel = {
197
197
  externalDocs?: OpenAPIExternalDocumentation;
198
198
  isPrimitive: boolean;
199
199
  isCircular: boolean;
200
+ isComplex: boolean;
200
201
  format?: string;
201
202
  displayFormat?: string;
202
203
  nullable: boolean;
@@ -1,2 +1,2 @@
1
- var __rest=this&&this.__rest||function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(i[r[n]]=e[r[n]])}return i};import{IS_BROWSER,isObject,isString,isUndefined}from"@redocly/theme";import{tryDecodeURIComponent,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,i=normalizeOptions({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:i}),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=tryDecodeURIComponent(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 r=IS_BROWSER?window.location.href:"";isString(t)&&(this.definitionUrl=new URL(t,r).href)}validate(e){if(isUndefined(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=[],i=!1){const r=null==e?void 0:e["x-refsStack"];if(t=concatRefStacks(t,r),this.isRef(e)){const r=getDefinitionName(e.$ref);if(r&&this.options.ignoreNamedSchemas.has(r))return{resolved:{type:"object",title:r},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){n=this.deref(n,t,i).resolved}return this.allowMergeRefs&&(n=this.mergeRefs(e,n,i)),{resolved:n,refsStack:pushRef(t,e.$ref)}}return{resolved:e,refsStack:concatRefStacks(t,r)}}mergeRefs(e,t,i){const{$ref:r}=e,n=__rest(e,["$ref"]),s=Object.keys(n);if(0===s.length)return t;if(i&&s.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly"].includes(e)))){const e=n,{description:i,title:r,readOnly:s,writeOnly:o}=e;return{allOf:[{description:i,title:r,readOnly:s,writeOnly:o},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,i,r=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:r},e);let s=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer.join(r,["allOf"]),allOf:void 0,title:e.title||getDefinitionName(t)});!isUndefined(s.properties)&&isObject(s.properties)&&(s.properties=Object.assign({},s.properties)),!isUndefined(s.items)&&isObject(s.items)&&(s.items=Object.assign({},s.items));const o=e.allOf.map(((e,t)=>{var n;const{resolved:o,refsStack:f}=this.deref(e,i,!0),l=e.$ref,a=l||JsonPointer.join(r,[String(t)]),c=this.mergeAllOf(o,l,f,a);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(f,l),schema:c,absolutePointer:a}})).filter(Boolean);for(const[e,{schema:i,refsStack:r,absolutePointer:f}]of o.entries()){const{type:o,enum:l,properties:a,items:c,required:d,title:p,description:O,readOnly:u,writeOnly:y,oneOf:m,anyOf:b,"x-circular-ref":h}=i,g=__rest(i,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref"]);if(s.type===o||isUndefined(s.type)||isUndefined(o)){if(isUndefined(o)||(Array.isArray(o)&&Array.isArray(s.type)?s.type=[...o,...s.type]:s.type=o),isUndefined(l)||(Array.isArray(l)&&Array.isArray(s.enum)?s.enum=Array.from(new Set([...l,...s.enum])):s.enum=l),!isUndefined(a)&&isObject(a)){s.properties=s.properties||{};for(const i in a){const o=concatRefStacks(r,null===(n=a[i])||void 0===n?void 0:n["x-refsStack"]);if(s.properties[i]){if(!h){const r=this.mergeAllOf({allOf:[s.properties[i],a[i]],"x-refsStack":o},t+"/properties/"+i,o,JsonPointer.join(f,["allOf",String(e),"properties",i]));s.properties[i]=r}}else s.properties[i]=Object.assign(Object.assign({},a[i]),{absolutePointer:JsonPointer.join(f,["properties",i]),"x-refsStack":o})}}if(!isUndefined(c)&&!h){const e="boolean"==typeof s.items?{}:Object.assign({},s.items),n="boolean"==typeof i.items?{}:Object.assign({},i.items);s.items=this.mergeAllOf({allOf:[e,n]},t+"/items",r)}isUndefined(m)||(s.oneOf=m),isUndefined(b)||(s.anyOf=b),Array.isArray(d)&&(s.required=[...s.required||[],...d]),s=Object.assign(Object.assign(Object.assign({},s),{title:s.title||p,description:s.description||O,readOnly:isUndefined(s.readOnly)?u:s.readOnly,writeOnly:isUndefined(s.writeOnly)?y:s.writeOnly,"x-circular-ref":s["x-circular-ref"]||h}),g)}}return s}findDerived(e){const t={},i=this.definition.components&&this.definition.components.schemas||{};for(const r in i){const{resolved:n}=this.deref(i[r]);!isUndefined(n.allOf)&&n.allOf.find((t=>!isUndefined(t.$ref)&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+r]=[n["x-discriminator-value"]||r])}return t}hoistOneOfs(e){if(isUndefined(e.allOf))return e;const{allOf:t}=e,i=__rest(e,["allOf"]);for(let e=0;e<t.length;e++){const r=t[e],{oneOf:n}=r,s=__rest(r,["oneOf"]);if(n&&Array.isArray(n)){const r=t.slice(0,e),o=t.slice(e+1),f=Object.keys(s).length>0?[s]:[];return Object.assign(Object.assign({},i),{oneOf:n.map((e=>({allOf:[...r,...f,e,...o]})))})}}return e}}
1
+ var __rest=this&&this.__rest||function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(i[r[n]]=e[r[n]])}return i};import{IS_BROWSER,isObject,isString,isUndefined}from"@redocly/theme";import{tryDecodeURIComponent,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,i=normalizeOptions({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:i}),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=tryDecodeURIComponent(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 r=IS_BROWSER?window.location.href:"";isString(t)&&(this.definitionUrl=new URL(t,r).href)}validate(e){if(isUndefined(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=[],i=!1){const r=null==e?void 0:e["x-refsStack"];if((t=concatRefStacks(t,r)).length>100)return{resolved:Object.assign({},e,{"x-complex":!0}),refsStack:t};if(this.isRef(e)){const r=getDefinitionName(e.$ref);if(r&&this.options.ignoreNamedSchemas.has(r))return{resolved:{type:"object",title:r},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){n=this.deref(n,t,i).resolved}return this.allowMergeRefs&&(n=this.mergeRefs(e,n,i)),{resolved:n,refsStack:pushRef(t,e.$ref)}}return{resolved:e,refsStack:concatRefStacks(t,r)}}mergeRefs(e,t,i){const{$ref:r}=e,n=__rest(e,["$ref"]),s=Object.keys(n);if(0===s.length)return t;if(i&&s.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly","x-complex"].includes(e)))){const e=n,{description:i,title:r,readOnly:s,writeOnly:o}=e;return{allOf:[{description:i,title:r,readOnly:s,writeOnly:o},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,i,r=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:r},e);let s=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer.join(r,["allOf"]),allOf:void 0,title:e.title||getDefinitionName(t)});!isUndefined(s.properties)&&isObject(s.properties)&&(s.properties=Object.assign({},s.properties)),!isUndefined(s.items)&&isObject(s.items)&&(s.items=Object.assign({},s.items));const o=e.allOf.map(((e,t)=>{var n;const{resolved:o,refsStack:f}=this.deref(e,i,!0),l=e.$ref,a=l||JsonPointer.join(r,[String(t)]);if(o["x-complex"])return{$ref:l,refsStack:pushRef(f,l),schema:{"x-complex":!0},absolutePointer:a};const c=this.mergeAllOf(o,l,f,a);return c["x-circular-ref"]&&c.allOf?void 0:(l&&(null===(n=s["x-parentRefs"])||void 0===n||n.push(...c["x-parentRefs"]||[],l)),{$ref:l,refsStack:pushRef(f,l),schema:c,absolutePointer:a})})).filter(Boolean);for(const[e,{schema:i,refsStack:r,absolutePointer:f}]of o.entries()){const o=i||{},{type:l,enum:a,properties:c,items:d,required:p,title:O,description:u,readOnly:m,writeOnly:y,oneOf:b,anyOf:h,"x-circular-ref":g,"x-complex":x}=o,j=__rest(o,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref","x-complex"]);if(s.type===l||isUndefined(s.type)||isUndefined(l)){if(isUndefined(l)||(Array.isArray(l)&&Array.isArray(s.type)?s.type=[...l,...s.type]:s.type=l),isUndefined(a)||(Array.isArray(a)&&Array.isArray(s.enum)?s.enum=Array.from(new Set([...a,...s.enum])):s.enum=a),!isUndefined(c)&&isObject(c)){s.properties=s.properties||{};for(const i in c){const o=concatRefStacks(r,null===(n=c[i])||void 0===n?void 0:n["x-refsStack"]);if(s.properties[i]){if(!g){const r=this.mergeAllOf({allOf:[s.properties[i],c[i]],"x-refsStack":o},t+"/properties/"+i,o,JsonPointer.join(f,["allOf",String(e),"properties",i]));s.properties[i]=r}}else s.properties[i]=Object.assign(Object.assign({},c[i]),{absolutePointer:JsonPointer.join(f,["properties",i]),"x-refsStack":o})}}if(!isUndefined(d)&&!g&&!x){const e="boolean"==typeof s.items?{}:Object.assign({},s.items),n="boolean"==typeof i.items?{}:Object.assign({},i.items);s.items=this.mergeAllOf({allOf:[e,n]},t+"/items",r)}isUndefined(b)||(s.oneOf=b),isUndefined(h)||(s.anyOf=h),Array.isArray(p)&&(s.required=[...s.required||[],...p]),s=Object.assign(Object.assign(Object.assign({},s),{title:s.title||O,description:s.description||u,readOnly:isUndefined(s.readOnly)?m:s.readOnly,writeOnly:isUndefined(s.writeOnly)?y:s.writeOnly,"x-circular-ref":s["x-circular-ref"]||g,"x-complex":s["x-complex"]||x}),j)}}return s}findDerived(e){const t={},i=this.definition.components&&this.definition.components.schemas||{};for(const r in i){const{resolved:n}=this.deref(i[r]);!isUndefined(n.allOf)&&n.allOf.find((t=>!isUndefined(t.$ref)&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+r]=[n["x-discriminator-value"]||r])}return t}hoistOneOfs(e){if(isUndefined(e.allOf))return e;const{allOf:t}=e,i=__rest(e,["allOf"]);for(let e=0;e<t.length;e++){const r=t[e],{oneOf:n}=r,s=__rest(r,["oneOf"]);if(n&&Array.isArray(n)){const r=t.slice(0,e),o=t.slice(e+1),f=Object.keys(s).length>0?[s]:[];return Object.assign(Object.assign({},i),{oneOf:n.map((e=>({allOf:[...r,...f,e,...o]})))})}}return e}}
2
2
  //# sourceMappingURL=OpenAPIParser.js.map
@@ -61,6 +61,7 @@ export type MergedOpenAPISchema = OpenAPISchema & {
61
61
  'x-refsStack'?: string[];
62
62
  'x-parentRefs'?: string[];
63
63
  'x-circular-ref'?: boolean;
64
+ 'x-complex'?: boolean;
64
65
  absolutePointer?: string;
65
66
  };
66
67
  export interface MarkdownHeading {
@@ -1,2 +1,2 @@
1
- import{format,parse}from"url";import{IS_BROWSER,isObject,isString}from"@redocly/theme";import{isNamedDefinition}from"./openapi";import{JsonPointer}from"./JsonPointer";export function mapWithLast(t,e){const r=[];for(let n=0;n<t.length-1;n++)r.push(e(t[n],!1));return 0!==t.length&&r.push(e(t[t.length-1],!0)),r}export function mapValues(t,e){const r={};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=e(t[n],n,t));return r}export function flattenByProp(t,e){const r=[],n=t=>{for(const o of t)r.push(o),o[e]&&n(o[e])};return n(t),r}export function stripTrailingSlash(t){return t.endsWith("/")?t.substring(0,t.length-1):t}export function isNumeric(t){return!isNaN(parseFloat(t))&&isFinite(t)}export function appendToMdHeading(t,e,r){const n=new RegExp(`(^|\\n)#\\s?${e}\\s*\\n`,"i"),o=new RegExp(`((\\n|^)#\\s*${e}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(t))return t.replace(o,`$1\n\n${r}\n$4`);{const n=""===t||t.endsWith("\n\n")?"":t.endsWith("\n")?"\n":"\n\n";return`${t}${n}# ${e}\n\n${r}`}}export const isArrayOfObjects=t=>Array.isArray(t)&&t.some((t=>isObject(t)));export const deleteEmptyArrayItem=t=>t.filter((t=>!!t));export const isMergeableObject=t=>isObject(t)&&!Array.isArray(t);export function isAbsoluteUrl(t){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(t)}export function resolveUrl(t,e){let r;if(e.startsWith("//")){const{protocol:n}=parse(t);r=`${n||"https:"}${e}`}else if(isAbsoluteUrl(e))r=e;else if(e.startsWith("/")){const n=parse(t);r=format(Object.assign(Object.assign({},n),{pathname:e}))}else r=stripTrailingSlash(t)+"/"+e;return stripTrailingSlash(r)}export function titleize(t){return t.charAt(0).toUpperCase()+t.slice(1)}export function removeQueryStringAndHash(t){try{const e=parseURL(t);return e.search="",e.hash="",e.toString()}catch(e){return t}}function parseURL(t){return"undefined"==typeof URL?new(require("url").URL)(t):new URL(t)}export function escapeHTMLAttrChars(t){return t.replace(/["\\]/g,"\\$&")}export function unescapeHTMLChars(t){return t.replace(/&#(\d+);/g,((t,e)=>String.fromCharCode(parseInt(e,10)))).replace(/&amp;/g,"&").replace(/&quot;/g,'"')}export function sanitizeItemId(t){return t&&t.replace(/#/g,"_").toLowerCase()}export function useSchemaTitle(t,e){return e||isNamedDefinition(t)&&JsonPointer.baseName(t)||""}export function get(t={},e,r){return"string"==typeof e&&(e=e.split(".")),e.reduce(((t,e)=>t&&t[e]?t[e]:r),t)}export function joinStringFactory(t){return(...e)=>e.filter(Boolean).join(t)}export const dottedString=joinStringFactory(".");export function getWindowReferenceOptions(t){var e;return IS_BROWSER?null===(e=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===e?void 0:e[t]:null}export function getJsUrl(){var t;if(!IS_BROWSER)return"";const e=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${e}"><\/script>`),(null===(t=document.getElementById("dummy"+e))||void 0===t?void 0:t.previousSibling).src}catch(t){return""}}export const normalizeText=t=>isString(t)?t:null==t?void 0:t.raw;export const getValueFromMdParsedExtension=(t,e)=>{const r=t[`x-parsed-md-${e}`]||t[e];if("x-enumDescriptions"!==e)return r;let n={};for(const t in r)t.startsWith("x-parsed-md")||(n[t]=r[`x-parsed-md-${t}`]||r[t]);return Object.keys(n).length?n:r};export function isLastInArray(t,e){return e===t.length-1}export function isLastProperty(t,e){const r=Object.keys(t);return r.indexOf(e)===r.length-1}
1
+ import{format,parse}from"url";import{IS_BROWSER,isObject,isString}from"@redocly/theme";import{isNamedDefinition}from"./openapi";import{JsonPointer}from"./JsonPointer";export function mapWithLast(t,e){const r=[];for(let n=0;n<t.length-1;n++)r.push(e(t[n],!1));return 0!==t.length&&r.push(e(t[t.length-1],!0)),r}export function mapValues(t,e){const r={};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=e(t[n],n,t));return r}export function flattenByProp(t,e){const r=[],n=t=>{for(const o of t)r.push(o),o[e]&&n(o[e])};return n(t),r}export function stripTrailingSlash(t){return t.endsWith("/")?t.substring(0,t.length-1):t}export function isNumeric(t){return!isNaN(parseFloat(t))&&isFinite(t)}export function appendToMdHeading(t,e,r){const n=new RegExp(`(^|\\n)#\\s?${e}\\s*\\n`,"i"),o=new RegExp(`((\\n|^)#\\s*${e}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(t))return t.replace(o,`$1\n\n${r}\n$4`);{const n=""===t||t.endsWith("\n\n")?"":t.endsWith("\n")?"\n":"\n\n";return`${t}${n}# ${e}\n\n${r}`}}export const isArrayOfObjects=t=>Array.isArray(t)&&t.some((t=>isObject(t)));export const deleteEmptyArrayItem=t=>t.filter((t=>!!t));export const isMergeableObject=t=>isObject(t)&&!Array.isArray(t);export function isAbsoluteUrl(t){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(t)}export function resolveUrl(t,e){let r;if(e.startsWith("//")){const{protocol:n}=parse(t);r=`${n||"https:"}${e}`}else if(isAbsoluteUrl(e))r=e;else if(e.startsWith("/")){const n=parse(t);r=format(Object.assign(Object.assign({},n),{pathname:e}))}else r=stripTrailingSlash(t)+"/"+e;return stripTrailingSlash(r)}export function titleize(t){return t.charAt(0).toUpperCase()+t.slice(1)}export function removeQueryStringAndHash(t){try{const e=parseURL(t);return e.search="",e.hash="",e.toString()}catch(e){return t}}function parseURL(t){return"undefined"==typeof URL?new(require("url").URL)(t):new URL(t)}export function escapeHTMLAttrChars(t){return t.replace(/["\\]/g,"\\$&")}export function unescapeHTMLChars(t){return t.replace(/&#(\d+);/g,((t,e)=>String.fromCharCode(parseInt(e,10)))).replace(/&amp;/g,"&").replace(/&quot;/g,'"')}export function sanitizeItemId(t){return t&&t.replace(/#/g,"_").toLowerCase()}export function useSchemaTitle(t,e){return e||isNamedDefinition(t)&&JsonPointer.baseName(t)||""}export function get(t={},e,r){return"string"==typeof e&&(e=e.split(".")),e.reduce(((t,e)=>t&&t[e]?t[e]:r),t)}export function joinStringFactory(t){return(...e)=>e.filter(Boolean).join(t)}export const dottedString=joinStringFactory(".");export function getWindowReferenceOptions(t){var e;return IS_BROWSER?null===(e=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===e?void 0:e[t]:null}export function getJsUrl(){var t;if(!IS_BROWSER)return"";const e=+new Date+Math.random();try{return document.currentScript&&(document.currentScript.async||document.currentScript.defer)||document.write(`<script id="dummy${e}"><\/script>`),(null===(t=document.getElementById("dummy"+e))||void 0===t?void 0:t.previousSibling).src}catch(t){return""}}export const normalizeText=t=>isString(t)?t:null==t?void 0:t.raw;export const getValueFromMdParsedExtension=(t,e)=>{const r=(null==t?void 0:t[`x-parsed-md-${e}`])||(null==t?void 0:t[e]);if("x-enumDescriptions"!==e)return r;let n={};for(const t in r)t.startsWith("x-parsed-md")||(n[t]=(null==r?void 0:r[`x-parsed-md-${t}`])||(null==r?void 0:r[t]));return Object.keys(n).length?n:r};export function isLastInArray(t,e){return e===t.length-1}export function isLastProperty(t,e){const r=Object.keys(t);return r.indexOf(e)===r.length-1}
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1,2 +1,2 @@
1
- import{dirname}from"path";import UrlTemplate from"url-template";import{IS_BROWSER}from"@redocly/theme";import{deleteEmptyArrayItem,isArrayOfObjects,isNumeric,removeQueryStringAndHash,resolveUrl,sanitizeItemId,normalizeText,getValueFromMdParsedExtension}from"./helpers";import{DEFAULT_TAG_SLUG,MediaTypes}from"../constants";import{JsonPointer}from"./JsonPointer";import{joinWithSeparator}from"../services";import{tryDecodeURIComponent}from"./string";function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}export function isStatusCode(e){return"default"===e||isNumeric(e)||isWildcardStatusCode(e)}export function getStatusCodeType(e,r=!1){if("default"===e)return r?"error":"success";let t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");let i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};export function isOperationName(e){return e in operationNames}export function getOperationName(e){const{operationId:r,pathName:t}=e,i=normalizeText(getValueFromMdParsedExtension(e,"description"));return normalizeText(getValueFromMdParsedExtension(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}export function getOperationId(e,r){var t;return(null==r?void 0:r.id)?joinWithSeparator(r.id,sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer))).toLowerCase():(null===(t=e.tags)||void 0===t?void 0:t.length)?sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer)):sanitizeItemId(e.operationId?joinWithSeparator(DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}const schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};export function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;const r=Object.keys(schemaKeywordTypes);for(const t of r){const r=schemaKeywordTypes[t];if(void 0!==e[t])return r}return"any"}export function isPrimitiveType(e,r=e.type){if(e["x-circular-ref"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;let t=!0;const i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}export function isJsonLike(e){return-1!==e.search(/json/i)}export function isXmlLike(e){return-1!==(null==e?void 0:e.search(/xml/i))}export function isFormUrlEncoded(e){return e===MediaTypes.URL_ENCODED}export function isMultipartFormData(e){return e===MediaTypes.MULTIPART}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((e=>e.toString())).join(t):"object"==typeof e?Object.keys(e).map((r=>`${r}${t}${e[r]}`)).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((t=>e[t]?`${r}[${t}]=${e[t]}`:void 0)).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){const i="__redoc_param_name__",n=r?"*":"";return UrlTemplate.parse(`{?${i}${n}}`).expand({[i]:t}).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){const t=e?"*":"",i="__redoc_param_name__",n=UrlTemplate.parse(`{${i}${t}}`);return tryDecodeURIComponent(n.expand({[i]:r}))}export function urlFormEncodePayload(e,r={}){if(Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((t=>{const i=e[t],{style:n="form",explode:o=!0}=r[t]||{};switch(n){case"form":return serializeFormValue(t,o,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+n),""}})).join("&")}function serializePathParameter(e,r,t,i){const n=t?"*":"";let o="";"label"===r?o=".":"matrix"===r&&(o=";");const a="__redoc_param_name__";return UrlTemplate.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}export function serializeQueryParameter(e,r,t,i){const n=n=>{switch(r){case"form":return serializeFormValue(e,t,n);case"spaceDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"%20"):(console.warn("The style spaceDelimited is applicable to arrays or objects"),"");case"pipeDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"|"):(console.warn("The style pipeDelimited is applicable to arrays or objects"),"");case"deepObject":return!t||Array.isArray(n)||"object"!=typeof n?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(n,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return isArrayOfObjects(i)&&(i=deleteEmptyArrayItem(i).map((e=>n(e)))),n(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}export function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}export function serializeParameterValue(e,r){const{name:t,style:i,explode:n=!1,serializationMime:o}=e;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return`${t}=${serializeParameterValueWithMime(r,o)}`;default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn(`Missing style attribute or content for parameter ${t}`),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}export function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;export function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}export function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0===e)return;const r=e.toString(10);return/^0\.0*1$/.test(r)?`decimal places <= ${r.split(".")[1].length}`:`multiple of ${r}`}function humanizeRangeConstraint(e,r,t){let i;return void 0!==r&&void 0!==t?i=r===t?`= ${r} ${e}`:`[ ${r} .. ${t} ] ${e}`:void 0!==t?i=`<= ${t} ${e}`:void 0!==r&&(i=1===r?"non-empty":`>= ${r} ${e}`),i}export function humanizeNumberRange(e){var r,t;const i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,n="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,o="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,a="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==n?`${o?"( ":"[ "}${i} .. ${n}${a?" )":" ]"}`:void 0!==n?`${a?"< ":"<= "}${n}`:void 0!==i?`${o?"> ":">= "}${i}`:void 0}export function humanizeConstraints(e){const r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);const i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);const n=humanizeRangeConstraint(1===e.minProperties&&1===e.maxProperties?"property":"properties",e.minProperties,e.maxProperties);void 0!==n&&r.push(n);const o=humanizeMultipleOfConstraint(e.multipleOf);void 0!==o&&r.push(o);const a=humanizeNumberRange(e);return void 0!==a&&r.push(a),e.uniqueItems&&r.push("unique"),r}export function sortByRequired(e,r=[]){const t=[],i=[],n=[];return e.forEach((e=>{e.required?r.includes(e.name)?i.push(e):n.push(e):t.push(e)})),i.sort(((e,t)=>r.indexOf(e.name)-r.indexOf(t.name))),[...i,...n,...t]}export function sortByDeprecated(e){return e.sort(((e,r)=>Number(e.deprecated)-Number(r.deprecated)))}export function mergeParams(e,r=[],t=[],{pathPointer:i,operationPointer:n}){const o={};t.forEach((r=>{({resolved:r}=e.deref(r)),o[r.name+"_"+r.in]=!0}));return[...r.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer.join(i,["parameters",String(r)])}))).filter((({paramOrRef:r})=>(({resolved:r}=e.deref(r)),!o[r.name+"_"+r.in]))),...t.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer.join(n,["parameters",String(r)])})))]}export function normalizeServers(e,r){const t=void 0===e?removeQueryStringAndHash((()=>{if(!IS_BROWSER)return globalThis.SSR_HOSTNAME||"";const e=window.location.href;return e.endsWith(".html")?dirname(e):e})()):dirname(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,resolveUrl(t,r)),description:e.description||""});var r}))}export const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);export function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideReplay":!0,"x-tokenEndpointAuthMethod":!0,"x-feedback":!0,"x-badges":!0,"x-assertionType":!0,"x-rbac":!0}||e.startsWith("x-parsed-md-")}export function extractExtensions(e,r){return Object.keys(e).filter((e=>!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1)).reduce(((r,t)=>(r[t]=e[t],r)),{})}export function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}export function getContentWithLegacyExamples(e){let r=e.content;const t=e["x-examples"],i=e["x-example"];if(t){r=Object.assign({},r);for(const e of Object.keys(t)){const i=t[e];r[e]=Object.assign(Object.assign({},r[e]),{examples:i})}}else if(i){r=Object.assign({},r);for(const e of Object.keys(i)){const t=i[e];r[e]=Object.assign(Object.assign({},r[e]),{example:t})}}return r}
1
+ import{dirname}from"path";import UrlTemplate from"url-template";import{IS_BROWSER}from"@redocly/theme";import{deleteEmptyArrayItem,isArrayOfObjects,isNumeric,removeQueryStringAndHash,resolveUrl,sanitizeItemId,normalizeText,getValueFromMdParsedExtension}from"./helpers";import{DEFAULT_TAG_SLUG,MediaTypes}from"../constants";import{JsonPointer}from"./JsonPointer";import{joinWithSeparator}from"../services";import{tryDecodeURIComponent}from"./string";function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}export function isStatusCode(e){return"default"===e||isNumeric(e)||isWildcardStatusCode(e)}export function getStatusCodeType(e,r=!1){if("default"===e)return r?"error":"success";let t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");let i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}const operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};export function isOperationName(e){return e in operationNames}export function getOperationName(e){const{operationId:r,pathName:t}=e,i=normalizeText(getValueFromMdParsedExtension(e,"description"));return normalizeText(getValueFromMdParsedExtension(e,"summary"))||r||i&&i.substring(0,50)||t||"<no summary>"}export function getOperationId(e,r){var t;return(null==r?void 0:r.id)?joinWithSeparator(r.id,sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer))).toLowerCase():(null===(t=e.tags)||void 0===t?void 0:t.length)?sanitizeItemId(e.operationId?e.operationId:pointerToId(e.pointer)):sanitizeItemId(e.operationId?joinWithSeparator(DEFAULT_TAG_SLUG,e.operationId):pointerToId(e.pointer))}function pointerToId(e){return(null==e?void 0:e.startsWith("/"))?e.slice(1,e.length):e}const schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};export function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;const r=Object.keys(schemaKeywordTypes);for(const t of r){const r=schemaKeywordTypes[t];if(void 0!==e[t])return r}return"any"}export function isPrimitiveType(e,r=e.type){if(e["x-circular-ref"])return!0;if(e["x-complex"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;let t=!0;const i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}export function isJsonLike(e){return-1!==e.search(/json/i)}export function isXmlLike(e){return-1!==(null==e?void 0:e.search(/xml/i))}export function isFormUrlEncoded(e){return e===MediaTypes.URL_ENCODED}export function isMultipartFormData(e){return e===MediaTypes.MULTIPART}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((e=>e.toString())).join(t):"object"==typeof e?Object.keys(e).map((r=>`${r}${t}${e[r]}`)).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((t=>e[t]?`${r}[${t}]=${e[t]}`:void 0)).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){const i="__redoc_param_name__",n=r?"*":"";return UrlTemplate.parse(`{?${i}${n}}`).expand({[i]:t}).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){const t=e?"*":"",i="__redoc_param_name__",n=UrlTemplate.parse(`{${i}${t}}`);return tryDecodeURIComponent(n.expand({[i]:r}))}export function urlFormEncodePayload(e,r={}){if(Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((t=>{const i=e[t],{style:n="form",explode:o=!0}=r[t]||{};switch(n){case"form":return serializeFormValue(t,o,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+n),""}})).join("&")}function serializePathParameter(e,r,t,i){const n=t?"*":"";let o="";"label"===r?o=".":"matrix"===r&&(o=";");const a="__redoc_param_name__";return UrlTemplate.parse(`{${o}${a}${n}}`).expand({[a]:i}).replace(/__redoc_param_name__/g,e)}export function serializeQueryParameter(e,r,t,i){const n=n=>{switch(r){case"form":return serializeFormValue(e,t,n);case"spaceDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"%20"):(console.warn("The style spaceDelimited is applicable to arrays or objects"),"");case"pipeDelimited":return Array.isArray(n)||"object"==typeof n?t?serializeFormValue(e,t,n):delimitedEncodeField(i,e,"|"):(console.warn("The style pipeDelimited is applicable to arrays or objects"),"");case"deepObject":return!t||Array.isArray(n)||"object"!=typeof n?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(n,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return isArrayOfObjects(i)&&(i=deleteEmptyArrayItem(i).map((e=>n(e)))),n(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}export function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn(`Parameter serialization as ${r} is not supported`),"")}export function serializeParameterValue(e,r){const{name:t,style:i,explode:n=!1,serializationMime:o}=e;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return`${t}=${serializeParameterValueWithMime(r,o)}`;default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn(`Missing style attribute or content for parameter ${t}`),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}export function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}const DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;export function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}export function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0===e)return;const r=e.toString(10);return/^0\.0*1$/.test(r)?`decimal places <= ${r.split(".")[1].length}`:`multiple of ${r}`}function humanizeRangeConstraint(e,r,t){let i;return void 0!==r&&void 0!==t?i=r===t?`= ${r} ${e}`:`[ ${r} .. ${t} ] ${e}`:void 0!==t?i=`<= ${t} ${e}`:void 0!==r&&(i=1===r?"non-empty":`>= ${r} ${e}`),i}export function humanizeNumberRange(e){var r,t;const i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,n="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,o="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,a="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==n?`${o?"( ":"[ "}${i} .. ${n}${a?" )":" ]"}`:void 0!==n?`${a?"< ":"<= "}${n}`:void 0!==i?`${o?"> ":">= "}${i}`:void 0}export function humanizeConstraints(e){const r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);const i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);const n=humanizeRangeConstraint(1===e.minProperties&&1===e.maxProperties?"property":"properties",e.minProperties,e.maxProperties);void 0!==n&&r.push(n);const o=humanizeMultipleOfConstraint(e.multipleOf);void 0!==o&&r.push(o);const a=humanizeNumberRange(e);return void 0!==a&&r.push(a),e.uniqueItems&&r.push("unique"),r}export function sortByRequired(e,r=[]){const t=[],i=[],n=[];return e.forEach((e=>{e.required?r.includes(e.name)?i.push(e):n.push(e):t.push(e)})),i.sort(((e,t)=>r.indexOf(e.name)-r.indexOf(t.name))),[...i,...n,...t]}export function sortByDeprecated(e){return e.sort(((e,r)=>Number(e.deprecated)-Number(r.deprecated)))}export function mergeParams(e,r=[],t=[],{pathPointer:i,operationPointer:n}){const o={};t.forEach((r=>{({resolved:r}=e.deref(r)),o[r.name+"_"+r.in]=!0}));return[...r.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer.join(i,["parameters",String(r)])}))).filter((({paramOrRef:r})=>(({resolved:r}=e.deref(r)),!o[r.name+"_"+r.in]))),...t.map(((e,r)=>({paramOrRef:e,pointer:JsonPointer.join(n,["parameters",String(r)])})))]}export function normalizeServers(e,r){const t=void 0===e?removeQueryStringAndHash((()=>{if(!IS_BROWSER)return globalThis.SSR_HOSTNAME||"";const e=window.location.href;return e.endsWith(".html")?dirname(e):e})()):dirname(e);return 0===r.length&&(r=[{url:"/"}]),r.map((e=>{return Object.assign(Object.assign({},e),{url:(r=e.url,resolveUrl(t,r)),description:e.description||""});var r}))}export const shortenHTTPVerb=e=>({delete:"del",options:"opts"}[e]||e);export function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-complex":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideReplay":!0,"x-tokenEndpointAuthMethod":!0,"x-feedback":!0,"x-badges":!0,"x-assertionType":!0,"x-rbac":!0}||e.startsWith("x-parsed-md-")}export function extractExtensions(e,r){return Object.keys(e).filter((e=>!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1)).reduce(((r,t)=>(r[t]=e[t],r)),{})}export function pluralizeType(e){return e.split(" or ").map((e=>e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2"))).join(" or ")}export function getContentWithLegacyExamples(e){let r=e.content;const t=e["x-examples"],i=e["x-example"];if(t){r=Object.assign({},r);for(const e of Object.keys(t)){const i=t[e];r[e]=Object.assign(Object.assign({},r[e]),{examples:i})}}else if(i){r=Object.assign({},r);for(const e of Object.keys(i)){const t=i[e];r[e]=Object.assign(Object.assign({},r[e]),{example:t})}}return r}
2
2
  //# sourceMappingURL=openapi.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.5.2",
3
+ "version": "3.5.3",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -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/config": "0.17.0",
48
- "@redocly/replay": "0.8.1"
47
+ "@redocly/config": "0.17.1",
48
+ "@redocly/replay": "0.8.2"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@testing-library/jest-dom": "6.1.5",
@@ -93,7 +93,7 @@
93
93
  "webpack": "5.94.0",
94
94
  "webpack-cli": "5.1.4",
95
95
  "webpack-dev-server": "5.1.0",
96
- "@redocly/theme": "0.45.8"
96
+ "@redocly/theme": "0.45.9"
97
97
  },
98
98
  "scripts": {
99
99
  "start": "webpack serve --mode=development --hot",