@redocly/openapi-docs 3.0.0-alpha.22 → 3.0.0-alpha.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/console.redocly-openapi-docs.min.js +3 -3
- package/dist/oauth2-redirect.js +1 -1
- package/dist/redocly-openapi-docs.min.js +965 -957
- package/lib/components/ApiInfo/ApiInfo.js +1 -1
- package/lib/models/example.js +1 -1
- package/lib/models/field.js +1 -1
- package/lib/models/group.js +1 -1
- package/lib/models/operation.js +1 -1
- package/lib/models/request.js +1 -1
- package/lib/models/response.js +1 -1
- package/lib/models/schema.js +1 -1
- package/lib/models/security.js +1 -1
- package/lib/services/OpenAPIParser.js +1 -1
- package/lib/services/menu/builder.js +1 -1
- package/lib/services/menu/tags.js +1 -1
- package/lib/types/open-api.d.ts +35 -29
- package/lib/utils/helpers.d.ts +2 -1
- package/lib/utils/helpers.js +1 -1
- package/lib/utils/openapi.d.ts +2 -4
- package/lib/utils/openapi.js +1 -1
- package/lib-esm/components/ApiInfo/ApiInfo.js +1 -1
- package/lib-esm/models/example.js +1 -1
- package/lib-esm/models/field.js +1 -1
- package/lib-esm/models/group.js +1 -1
- package/lib-esm/models/operation.js +1 -1
- package/lib-esm/models/request.js +1 -1
- package/lib-esm/models/response.js +1 -1
- package/lib-esm/models/schema.js +1 -1
- package/lib-esm/models/security.js +1 -1
- package/lib-esm/services/OpenAPIParser.js +1 -1
- package/lib-esm/services/menu/builder.js +1 -1
- package/lib-esm/services/menu/tags.js +1 -1
- package/lib-esm/types/open-api.d.ts +35 -29
- package/lib-esm/utils/helpers.d.ts +2 -1
- package/lib-esm/utils/helpers.js +1 -1
- package/lib-esm/utils/openapi.d.ts +2 -4
- package/lib-esm/utils/openapi.js +1 -1
- package/package.json +4 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{extractExtensions,getOperationId,getOperationName,getStatusCodeType,isStatusCode,JsonPointer,mergeParams,normalizeServers,sortByField,sortByRequired}from"../utils";import{getInitialServerWithVariables}from"../components/rightPanel/utils";import{getCallback}from"./callback";import{getField}from"./field";import{getRequestBody}from"./request";import{getSecurityRequirement}from"./security";import{getCodeSample}from"../services";import{getResponse}from"./response";export function isPayloadSample(e){return"payload"===e.lang&&"requestBodyContent"in e}let isCodeSamplesWarningPrinted=!1;export function getOperation(e,t,r,a,o,
|
|
1
|
+
import{extractExtensions,getOperationId,getOperationName,getStatusCodeType,getValueFromMdParsedExtension,isStatusCode,JsonPointer,mergeParams,normalizeServers,sortByField,sortByRequired}from"../utils";import{getInitialServerWithVariables}from"../components/rightPanel/utils";import{getCallback}from"./callback";import{getField}from"./field";import{getRequestBody}from"./request";import{getSecurityRequirement}from"./security";import{getCodeSample}from"../services";import{getResponse}from"./response";export function isPayloadSample(e){return"payload"===e.lang&&"requestBodyContent"in e}let isCodeSamplesWarningPrinted=!1;export function getOperation(e,t,r,a,o,s){var i,n,l,p;const d=t.isWebhook,m={operationDefinition:t,parent:r,pointer:t.pointer,description:getValueFromMdParsedExtension(t,"description"),externalDocs:t.externalDocs,deprecated:!!t.deprecated,httpVerb:t.httpVerb,operationId:t.operationId,path:t.pathName,isWebhook:d,isCallback:Boolean(null==s?void 0:s.isCallback),isEvent:(null==s?void 0:s.isCallback)||d,name:getOperationName(t),defaultExampleName:t.defaultSampleName,type:"operation",callbackId:null==s?void 0:s.id,href:o,get callbacks(){return Object.keys(t.callbacks||[]).map((s=>{var i;return getCallback(e,s,null===(i=t.callbacks)||void 0===i?void 0:i[s],m.pointer,a,o,r)}))},get responses(){let r=!1;return Object.keys(t.responses||[]).filter((e=>"default"===e||("success"===getStatusCodeType(e)&&(r=!0),isStatusCode(e)))).map((o=>getResponse({parser:e,code:o,defaultAsError:r,infoOrRef:t.responses[o],options:a,isEvent:m.isEvent,operation:m})))},get parameters(){let r=mergeParams(e,t.pathParameters,t.parameters,{pathPointer:JsonPointer.dirName(m.pointer),operationPointer:m.pointer}).map((({paramOrRef:t,pointer:r})=>getField(e,t,r,a,{operation:m,type:"request"})));return a.sortPropsAlphabetically&&(r=sortByField(r,"name")),a.requiredPropsFirst&&(r=sortByRequired(r)),r}};(null==s?void 0:s.isCallback)?(m.security=(t.security||[]).map((t=>getSecurityRequirement({requirement:t,parser:e}))),m.servers=normalizeServers("",t.servers||t.pathServers||[])):(m.id=getOperationId(t,r),m.security=(t.security||e.definition.security||[]).map((t=>getSecurityRequirement({requirement:t,parser:e}))),m.servers=normalizeServers(e.definitionUrl,mergeInMockServer(t.servers||t.pathServers||e.definition.servers||[],a.mockServer))),a.showExtensions&&(m.extensions=extractExtensions(t,a.showExtensions)),m.activeServer=getInitialServerWithVariables(m.servers),m.requestBody=t.requestBody&&getRequestBody({parser:e,infoOrRef:t.requestBody,options:a,operation:m,isEvent:m.isEvent});const c=null===(n=null===(i=m.requestBody)||void 0===i?void 0:i.content)||void 0===n?void 0:n.mediaTypes,[u]=c||[],[g]=Object.keys((null==u?void 0:u.examples)||[]);m.activeExampleName=!1===t.defaultSampleName?void 0:t.defaultSampleName||g;const v=null===(l=m.requestBody)||void 0===l?void 0:l.content;m.payload=(null==v?void 0:v.hasSample)?{lang:"payload",label:"Payload",source:"",requestBodyContent:v}:void 0,m.definitionSamples=t["x-codeSamples"]||t["x-code-samples"]||[],t["x-code-samples"]&&!isCodeSamplesWarningPrinted&&(isCodeSamplesWarningPrinted=!0,console.warn('"x-code-samples" is deprecated. Use "x-codeSamples" instead')),m.hasSamples=(null==v?void 0:v.hasSample)||m.definitionSamples.length>0;const{payloadSampleIdx:S,hideRequestPayloadSample:y}=a;let f=[];if(!d){const t=a.generateCodeSamples||{},r=new Set(m.definitionSamples.map((({lang:e})=>e.toLowerCase())));f=generateCodeSamples((null===(p=t.languages)||void 0===p?void 0:p.filter((({lang:e})=>!r.has(e.toLowerCase()))))||[],t,e.definition,a.generatedPayloadSamplesMaxDepth)}const h=m.definitionSamples.concat(f),b=Math.min(h.length,S);return m.payload&&!y&&h.splice(b,0,m.payload),m.allCodeSamples=h,m.hideTryItPanel=!0===t["x-hideTryItPanel"],m}function generateCodeSamples(e,{skipOptionalParameters:t,withOAuth2Call:r},a,o){return e.map((({lang:e,label:s,options:i})=>({lang:e,label:s,get:s=>getCodeSample(Object.assign(Object.assign({},s),{lang:e,options:Object.assign(Object.assign({},i),{skipOptionalParameters:t,withOAuth2Call:r,spec:a,generatedPayloadSamplesMaxDepth:o})}))})))}function mergeInMockServer(e,t){if(!t)return e;const r={url:t.url,description:t.description};switch(t.position){case"first":return[r,...e];case"last":return[...e,r];case"replace":return[r];default:return e}}
|
|
2
2
|
//# sourceMappingURL=operation.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getContentWithLegacyExamples,JsonPointer}from"../utils";import{getMediaContent}from"./mediaContent";export function getRequestBody({parser:e,infoOrRef:t,options:o,isEvent:n,operation:
|
|
1
|
+
import{getContentWithLegacyExamples,getValueFromMdParsedExtension,JsonPointer}from"../utils";import{getMediaContent}from"./mediaContent";export function getRequestBody({parser:e,infoOrRef:t,options:o,isEvent:n,operation:r}){const{resolved:i}=e.deref(t),s=getValueFromMdParsedExtension(i,"description")||"",a=!!i.required;let d;const p=!n,u=getContentWithLegacyExamples(i);return void 0!==u&&(d=getMediaContent({parser:e,info:u,isRequestType:p,options:o,data:{operation:r,type:"request",absolutePointer:t.$ref||JsonPointer.join(r.pointer,["requestBody"])}})),{description:s,required:a,content:d}}
|
|
2
2
|
//# sourceMappingURL=request.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getStatusCodeType,getContentWithLegacyExamples,JsonPointer}from"../utils";import{getField}from"./field";import{getMediaContent}from"./mediaContent";export function getResponse({parser:e,code:o,defaultAsError:t,infoOrRef:n,options:s,isEvent:r,operation:i}){var
|
|
1
|
+
import{getStatusCodeType,getContentWithLegacyExamples,JsonPointer,getValueFromMdParsedExtension}from"../utils";import{getField}from"./field";import{getMediaContent}from"./mediaContent";export function getResponse({parser:e,code:o,defaultAsError:t,infoOrRef:n,options:s,isEvent:r,operation:i}){var a;const d=!!r,p="all"===s.expandResponses||(null===(a=s.expandResponses)||void 0===a?void 0:a[o])||!1,{resolved:m}=e.deref(n),l={code:o,expanded:p};void 0!==m["x-summary"]?(l.summary=getValueFromMdParsedExtension(m,"x-summary"),l.description=getValueFromMdParsedExtension(m,"description")||""):(l.summary=getValueFromMdParsedExtension(m,"description")||"",l.description=""),l.type=getStatusCodeType(o,t);const u=m.headers,c=n.$ref||JsonPointer.join((null==i?void 0:i.pointer)||"",["responses",o]);void 0!==u&&(l.headers=Object.keys(u).map((o=>{const t=u[o];return getField(e,Object.assign(Object.assign({},t),{name:o}),JsonPointer.join(c,["headers",o]),s,{operation:i,type:"response",response:l})})));const g=getContentWithLegacyExamples(m);return void 0!==g&&(l.content=getMediaContent({parser:e,info:g,isRequestType:d,options:s,data:{operation:i,type:"response",response:l,absolutePointer:c}})),l}
|
|
2
2
|
//# sourceMappingURL=response.js.map
|
package/lib-esm/models/schema.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __rest=this&&this.__rest||function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(i[n[r]]=e[n[r]])}return i};import{pushRef}from"../services/OpenAPIParser";import{detectType,extractExtensions,humanizeConstraints,isNamedDefinition,isObject,isPrimitiveType,JsonPointer,pluralizeType,sortByField,sortByRequired}from"../utils";import{l}from"../services";import{getField}from"./field";export function getSchema({parser:e,schemaOrRef:t,pointer:i,options:n,isChild:r=!1,baseRefsStack:s=[],deps:o,absolutePointer:a}){var p,d,c,f,
|
|
1
|
+
var __rest=this&&this.__rest||function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(i[n[r]]=e[n[r]])}return i};import{pushRef}from"../services/OpenAPIParser";import{detectType,extractExtensions,getValueFromMdParsedExtension,humanizeConstraints,isNamedDefinition,isObject,isPrimitiveType,JsonPointer,pluralizeType,sortByField,sortByRequired}from"../utils";import{l}from"../services";import{getField}from"./field";export function getSchema({parser:e,schemaOrRef:t,pointer:i,options:n,isChild:r=!1,baseRefsStack:s=[],deps:o,absolutePointer:a}){var p,d,m,c,f,u,y,O;const{resolved:h,refsStack:b}=e.deref(t,s,!0),v=t.$ref||i||"",P=pushRef(b,v),g=e.mergeAllOf(h,v,P,t.$ref||a),x=g.type||detectType(g),F={parser:e,options:n,deps:o,schemaOrRef:t,isChild:r,typePrefix:"",pointer:v,absolutePointer:a,refsStack:P,rawSchema:h,type:x,isCircular:!!g["x-circular-ref"],title:g.title||isNamedDefinition(v)&&JsonPointer.baseName(v)||"",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,"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,v,n,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:v,options:n,deps:o,refsStack:P});return F.oneOf=t,F.oneOfType=i,F}if(!r&&void 0!==getDiscriminator(g)){const{oneOf:t,discriminatorProp:i}=initDiscriminator({schema:g,parser:e,deps:o,mergedSchema:g,options:n,pointer:v,refsStack:P});return F.oneOf=t,F.discriminatorProp=i,F}if(r&&Array.isArray(g.oneOf)&&g.oneOf.find((e=>e.$ref===v))&&delete g.oneOf,void 0!==g.oneOf){const{oneOf:t,displayType:i}=initOneOf({schemaOneOf:g.oneOf,parser:e,deps:o,options:n,pointer:v,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 ${v}`),F}if(void 0!==g.anyOf){const{oneOf:t,displayType:i}=initOneOf({schemaOneOf:g.anyOf,parser:e,deps:o,options:n,pointer:v,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:v+"/items",options:n,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)||""+l("arrayOf"),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===(u=F.items)||void 0===u?void 0:u.isPrimitive:F.isPrimitive,void 0===F.example&&void 0!==(null===(y=F.items)||void 0===y?void 0:y.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 F.enum.length&&n.sortEnumValuesAlphabetically&&F.enum.sort(),n.showExtensions&&(F.extensions=extractExtensions(g,n.showExtensions)),F}function initDiscriminator({schema:e,parser:t,pointer:i,options:n,refsStack:r,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 u=[];for(const e of Object.keys(f)){const t=f[e];if(Array.isArray(t))for(const i of t)u.push({$ref:e,name:i});else u.push({$ref:e,name:t})}const y=Object.keys(d);0!==y.length&&(u=u.sort(((e,t)=>{const i=y.indexOf(e.name),n=y.indexOf(t.name);return i<0&&n<0?e.name.localeCompare(t.name):i<0?1:n<0?-1:i-n})));return{oneOf:u.map((({$ref:e,name:i},a)=>{const l=getSchema({parser:t,schemaOrRef:{$ref:e},pointer:e,options:n,isChild:!0,baseRefsStack:r.slice(0,-1),deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"/"+a:a.toString()}),absolutePointer:o.absolutePointer});return l.title=i,l})),discriminatorProp:l}}function initOneOf({schemaOneOf:e,parser:t,refsStack:i,pointer:n,schema:r,options:s,deps:o}){const a=e.map(((e,a)=>{const{resolved:l,refsStack:p}=t.deref(e,i,!0),d=t.mergeAllOf(l,n+"/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({},r),{oneOf:void 0,anyOf:void 0})],discriminator:l.allOf?void 0:d.discriminator}),pointer:e.$ref||n+"/oneOf/"+a,options:s,baseRefsStack:p,deps:Object.assign(Object.assign({},o),{parentFieldFullPath:o.parentFieldFullPath?o.parentFieldFullPath+"/"+a:a.toString()})})}));let l;if(s.simpleOneOfTypeLabel){l=collectUniqueOneOfTypesDeep(r).join(" or ")}else 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:n,refsStack:r,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:n,baseRefsStack:r,deps:Object.assign(Object.assign({},s),{parentFieldFullPath:s.parentFieldFullPath?s.parentFieldFullPath+"/"+o: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,n,r,s){const o=t.properties||t.prefixItems||t.items||{},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,n,s,r,JsonPointer.join(t.absolutePointer||"",["properties",a]))}));return n.sortPropsAlphabetically&&(m=sortByField(m,"name")),n.requiredPropsFirst&&(m=sortByRequired(m,n.sortPropsAlphabetically?void 0: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}`,n,s,r)}))),(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",n,s,r,JsonPointer.join(t.absolutePointer||"",["additionalProperties"]))),m.push(...buildAdditionalItems({parser:e,schema:p,fieldsCount:m.length,$ref:i,options:n,refsStack:r,deps:s})),m}function buildAdditionalItems({parser:e,schema:t=!1,fieldsCount:i,$ref:n,options:r,refsStack:s,deps:o}){return"boolean"==typeof t?t?[getField(e,{name:`[${i}...]`,schema:{},kind:"additionalItems"},`${n}/additionalItems`,r,o,s)]:[]:Array.isArray(t)?[...t.map(((t,a)=>getField(e,{name:`[${i+a}]`,schema:t,kind:"additionalItems"},`${n}/additionalItems/${a}`,r,o,s)))]:isObject(t)?[getField(e,{name:`[${i}...]`,schema:t,kind:"additionalItems"},`${n}/additionalItems`,r,o,s)]:[]}function getDiscriminator(e){return e.discriminator||e["x-discriminator"]}function collectUniqueOneOfTypesDeep(e){const t=new Set;return function e(i){for(const n of i.oneOf||[])n.oneOf?e(n):n.type&&t.add(n.type)}(e),Array.from(t.values())}function hasType(e,t){return e.type===t||Array.isArray(e.type)&&e.type.includes(t)}
|
|
2
2
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function getSecurityRequirement({requirement:e,parser:t}){const n=t.definition.components&&t.definition.components.securitySchemes||{};return{schemes:Object.keys(e||{}).map((r=>{const i=t.deref(n[r]).resolved,o=e[r]||[];if(i)return Object.assign(Object.assign({},i),{id:r,sectionId:r,scopes:o});console.warn(`Non existing security scheme referenced: ${r}. Skipping`)})).filter(Boolean)}}export function getSecurityScheme(e,t,n){if(!(null==e?void 0:e.deref))return{};const{resolved:r}=e.deref(n),i=t,o=r.type,
|
|
1
|
+
import{getValueFromMdParsedExtension}from"../utils";export function getSecurityRequirement({requirement:e,parser:t}){const n=t.definition.components&&t.definition.components.securitySchemes||{};return{schemes:Object.keys(e||{}).map((r=>{const i=t.deref(n[r]).resolved,o=e[r]||[];if(i)return Object.assign(Object.assign({},i),{id:r,sectionId:r,scopes:o});console.warn(`Non existing security scheme referenced: ${r}. Skipping`)})).filter(Boolean)}}export function getSecurityScheme(e,t,n){if(!(null==e?void 0:e.deref))return{};const{resolved:r}=e.deref(n),i=t,o=r.type,s=getValueFromMdParsedExtension(r,"description")||"";let c,a,d,p={};switch(r.type){case"apiKey":c={name:r.name,in:r.in};break;case"http":a={scheme:r.scheme,bearerFormat:r.bearerFormat};break;case"openIdConnect":d={connectUrl:r.openIdConnectUrl};break;case"oauth2":p=r.flows}return{id:t,sectionId:i,type:o,description:s,apiKey:c,http:a,flows:p,openId:d}}export function getSecuritySchemes({parser:e}){var t,n;if(!e)return[];const r=(null===(n=null===(t=e.definition)||void 0===t?void 0:t.components)||void 0===n?void 0:n.securitySchemes)||{};return Object.keys(r).map((t=>getSecurityScheme(e,t,r[t])))}
|
|
2
2
|
//# sourceMappingURL=security.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __rest=this&&this.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]])}return r};import{IS_BROWSER,getDefinitionName}from"../utils";import{JsonPointer}from"../utils/JsonPointer";import{normalizeOptions}from"./Options/normalizeOptions";export function pushRef(e,t){return t&&e[e.length-1]!==t?[...e,t]:e}export function concatRefStacks(e,t){return t?e.concat(t):e}export class OpenAPIParser{constructor(e,t,r=normalizeOptions({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"definitionUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allowMergeRefs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"byRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{let t;if(this.definition){"#"!==e.charAt(0)&&(e="#"+e),e=decodeURIComponent(e);try{t=JsonPointer.get(this.definition,e)}catch(e){}return t||{}}}}),this.validate(e),this.preprocess(e),this.definition=e,this.allowMergeRefs=e.openapi.startsWith("3.1");const i=IS_BROWSER?window.location.href:"";"string"==typeof t&&(this.definitionUrl=new URL(t,i).href)}validate(e){if(void 0===e.openapi)throw new Error("Document must be valid OpenAPI 3.0.0 definition")}preprocess(e){e.info&&this.options.hideInfoDescription
|
|
1
|
+
var __rest=this&&this.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]])}return r};import{IS_BROWSER,getDefinitionName}from"../utils";import{JsonPointer}from"../utils/JsonPointer";import{normalizeOptions}from"./Options/normalizeOptions";export function pushRef(e,t){return t&&e[e.length-1]!==t?[...e,t]:e}export function concatRefStacks(e,t){return t?e.concat(t):e}export class OpenAPIParser{constructor(e,t,r=normalizeOptions({})){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"definitionUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"definition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allowMergeRefs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"byRef",{enumerable:!0,configurable:!0,writable:!0,value:e=>{let t;if(this.definition){"#"!==e.charAt(0)&&(e="#"+e),e=decodeURIComponent(e);try{t=JsonPointer.get(this.definition,e)}catch(e){}return t||{}}}}),this.validate(e),this.preprocess(e),this.definition=e,this.allowMergeRefs=e.openapi.startsWith("3.1");const i=IS_BROWSER?window.location.href:"";"string"==typeof t&&(this.definitionUrl=new URL(t,i).href)}validate(e){if(void 0===e.openapi)throw new Error("Document must be valid OpenAPI 3.0.0 definition")}preprocess(e){if(e.info&&this.options.hideInfoDescription)return e.info.description="",void(e.info["x-parsed-md-description"]=void 0)}isRef(e){return!!e&&(void 0!==e.$ref&&null!==e.$ref)}deref(e,t=[],r=!1){const i=null==e?void 0:e["x-refsStack"];if(t=concatRefStacks(t,i),this.isRef(e)){const i=getDefinitionName(e.$ref);if(i&&this.options.ignoreNamedSchemas.has(i))return{resolved:{type:"object",title:i},refsStack:t};let n=this.byRef(e.$ref);if(!n)throw new Error(`Failed to resolve $ref "${e.$ref}"`);let o=t;if(t.includes(e.$ref))n=Object.assign({},n,{"x-circular-ref":!0});else if(this.isRef(n)){const e=this.deref(n,t,r);o=e.refsStack,n=e.resolved}return o=pushRef(t,e.$ref),n=this.allowMergeRefs?this.mergeRefs(e,n,r):n,{resolved:n,refsStack:o}}return{resolved:e,refsStack:concatRefStacks(t,i)}}mergeRefs(e,t,r){const{$ref:i}=e,n=__rest(e,["$ref"]),o=Object.keys(n);if(0===o.length)return t;if(r&&o.some((e=>!["description","title","externalDocs","x-refsStack","x-parentRefs","readOnly","writeOnly"].includes(e)))){const e=n,{description:r,title:i,readOnly:o,writeOnly:s}=e;return{allOf:[{description:r,title:i,readOnly:o,writeOnly:s},t,__rest(e,["description","title","readOnly","writeOnly"])]}}return Object.assign(Object.assign({},t),n)}mergeAllOf(e,t,r,i=""){var n;if(e["x-circular-ref"])return e;if(void 0===(e=this.hoistOneOfs(e)).allOf)return Object.assign({absolutePointer:i},e);let o=Object.assign(Object.assign({},e),{"x-parentRefs":[],absolutePointer:JsonPointer.join(i,["allOf"]),allOf:void 0,title:e.title||getDefinitionName(t)});void 0!==o.properties&&"object"==typeof o.properties&&(o.properties=Object.assign({},o.properties)),void 0!==o.items&&"object"==typeof o.items&&(o.items=Object.assign({},o.items));const s=e.allOf.map(((e,t)=>{var n;const{resolved:s,refsStack:f}=this.deref(e,r,!0),l=e.$ref,a=l||JsonPointer.join(i,[String(t)]),c=this.mergeAllOf(s,l,f,a);if(!c["x-circular-ref"]||!c.allOf)return l&&(null===(n=o["x-parentRefs"])||void 0===n||n.push(...c["x-parentRefs"]||[],l)),{$ref:l,refsStack:pushRef(f,l),schema:c,absolutePointer:a}})).filter((e=>void 0!==e));for(const[e,{schema:r,refsStack:i,absolutePointer:f}]of s.entries()){const{type:s,enum:l,properties:a,items:c,required:p,title:d,description:O,readOnly:u,writeOnly:y,oneOf:m,anyOf:b,"x-circular-ref":h}=r,v=__rest(r,["type","enum","properties","items","required","title","description","readOnly","writeOnly","oneOf","anyOf","x-circular-ref"]);if(o.type!==s&&void 0!==o.type&&void 0!==s&&console.warn(`Incompatible types in allOf at "${t}": "${o.type}" and "${s}"`),void 0!==s&&(Array.isArray(s)&&Array.isArray(o.type)?o.type=[...s,...o.type]:o.type=s),void 0!==l&&(Array.isArray(l)&&Array.isArray(o.enum)?o.enum=Array.from(new Set([...l,...o.enum])):o.enum=l),void 0!==a&&"object"==typeof a){o.properties=o.properties||{};for(const r in a){const s=concatRefStacks(i,null===(n=a[r])||void 0===n?void 0:n["x-refsStack"]);if(o.properties[r]){if(!h){const i=this.mergeAllOf({allOf:[o.properties[r],a[r]],"x-refsStack":s},t+"/properties/"+r,s,JsonPointer.join(f,["allOf",String(e),"properties",r]));o.properties[r]=i}}else o.properties[r]=Object.assign(Object.assign({},a[r]),{absolutePointer:JsonPointer.join(f,["properties",r]),"x-refsStack":s})}}if(void 0!==c&&!h){const e="boolean"==typeof o.items?{}:Object.assign({},o.items),n="boolean"==typeof r.items?{}:Object.assign({},r.items);o.items=this.mergeAllOf({allOf:[e,n]},t+"/items",i)}void 0!==m&&(o.oneOf=m),void 0!==b&&(o.anyOf=b),void 0!==p&&(o.required=[...o.required||[],...p]),o=Object.assign(Object.assign(Object.assign({},o),{title:o.title||d,description:o.description||O,readOnly:void 0!==o.readOnly?o.readOnly:u,writeOnly:void 0!==o.writeOnly?o.writeOnly:y,"x-circular-ref":o["x-circular-ref"]||h}),v)}return o}findDerived(e){const t={},r=this.definition.components&&this.definition.components.schemas||{};for(const i in r){const{resolved:n}=this.deref(r[i]);void 0!==n.allOf&&n.allOf.find((t=>void 0!==t.$ref&&e.indexOf(t.$ref)>-1))&&(t["#/components/schemas/"+i]=[n["x-discriminator-value"]||i])}return t}hoistOneOfs(e){if(void 0===e.allOf)return e;const t=e.allOf;for(let e=0;e<t.length;e++){const r=t[e];if(Array.isArray(r.oneOf)){const i=t.slice(0,e),n=t.slice(e+1);return{oneOf:r.oneOf.map((e=>({allOf:[...i,e,...n]})))}}}return e}}
|
|
2
2
|
//# sourceMappingURL=OpenAPIParser.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getTagGroupsItems,getTagsItems,getTagsWithOperations}from"./tags";import{addMarkdownItems}from"./markdown";import{flattenByProp}from"../../utils";export function buildMenuStructure(t,e){const{definition:n}=t,o=[],
|
|
1
|
+
import{getTagGroupsItems,getTagsItems,getTagsWithOperations}from"./tags";import{addMarkdownItems}from"./markdown";import{flattenByProp,getValueFromMdParsedExtension}from"../../utils";export function buildMenuStructure(t,e){const{definition:n}=t,o=[],s=[...n.tags||[]]||[];!s.find((t=>(null==t?void 0:t.name)===e.schemaDefinitionsTagName))&&e.schemaDefinitionsTagName&&s.push({name:e.schemaDefinitionsTagName});const i=getTagsWithOperations(t,s),a=n["x-tagGroups"];return o.push(...addMarkdownItems(getValueFromMdParsedExtension(n.info,"description")||"",void 0,1,e.markdownHeadingsAnchorLevel,e.pagination)),a&&a.length>0?o.push(...getTagGroupsItems(t,void 0,a,i,e)):o.push(...getTagsItems(t,i,void 0,void 0,e)),o}export function buildContentItems(t,e){const n=buildMenuStructure(t,e);return{contentItems:n,flatItems:flattenByProp(n||[],"items")}}
|
|
2
2
|
//# sourceMappingURL=builder.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getGroup}from"../../models";import{GROUP_DEPTH}from"../../constants";import{alphabeticallyByProp,isOperationName,JsonPointer}from"../../utils";import{getOperationsItems}from"./operation";import{addMarkdownItems}from"./markdown";export function getTagsItems(e,t,n,o,a){let s;if(s=void 0===o?Object.keys(t):o.tags,!Array.isArray(s))return console.warn("Unexpected values of tags. Check tags or x-tagGroups in your definition."),[];const i=s.map((e=>t[e]?(t[e].used=!0,t[e]):(console.warn(`Non-existing tag "${e}" is added to the group "${null==o?void 0:o.name}"`),null))),r=[];for(const t of i){if(!t)continue;const o=getGroup("tag",t,{pagination:a.pagination,markdownHeadingsAnchorLevel:a.markdownHeadingsAnchorLevel},n);if(o.depth=GROUP_DEPTH+1,""===t.name){const e=[...addMarkdownItems(t
|
|
1
|
+
import{getGroup}from"../../models";import{GROUP_DEPTH}from"../../constants";import{alphabeticallyByProp,getValueFromMdParsedExtension,isOperationName,JsonPointer}from"../../utils";import{getOperationsItems}from"./operation";import{addMarkdownItems}from"./markdown";export function getTagsItems(e,t,n,o,a){let s;if(s=void 0===o?Object.keys(t):o.tags,!Array.isArray(s))return console.warn("Unexpected values of tags. Check tags or x-tagGroups in your definition."),[];const i=s.map((e=>t[e]?(t[e].used=!0,t[e]):(console.warn(`Non-existing tag "${e}" is added to the group "${null==o?void 0:o.name}"`),null))),r=[];for(const t of i){if(!t)continue;const o=getGroup("tag",t,{pagination:a.pagination,markdownHeadingsAnchorLevel:a.markdownHeadingsAnchorLevel},n);if(o.depth=GROUP_DEPTH+1,""===t.name){const e=[...addMarkdownItems(getValueFromMdParsedExtension(t,"description")||"",o,o.depth+1,a.markdownHeadingsAnchorLevel,a.pagination),...getOperationsItems(void 0,t,o.depth+1,a)];r.push(...e);continue}const s=getTagRelatedSchema({definition:e.definition,tag:t,parent:o,schemaDefinitionsTagName:a.schemaDefinitionsTagName,options:{pagination:a.pagination,markdownHeadingsAnchorLevel:a.markdownHeadingsAnchorLevel}});o.items=[...s,...addMarkdownItems(getValueFromMdParsedExtension(t,"description")||"",o,o.depth+1,a.markdownHeadingsAnchorLevel,a.pagination),...getOperationsItems(o,t,o.depth+1,a)],r.push(o)}return a.sortTagsAlphabetically&&r.sort(alphabeticallyByProp("name")),r}export function getTagGroupsItems(e,t,n,o,a){const s=[];for(const i of n){const n=getGroup("group",i,{pagination:a.pagination,markdownHeadingsAnchorLevel:a.markdownHeadingsAnchorLevel},t);n.depth=GROUP_DEPTH,n.items=getTagsItems(e,o,n,i,a),s.push(n)}return s}function getTagRelatedSchema({definition:e,tag:t,parent:n,schemaDefinitionsTagName:o,options:a}){var s;const i=o?[o]:[];return Object.entries((null===(s=e.components)||void 0===s?void 0:s.schemas)||{}).map((([e,o])=>{if(!(o["x-tags"]||i).includes(t.name))return null;const s=getGroup("schema",{name:e,"x-displayName":`${o.title||e}`,description:`{% schemaDefinition showWriteOnly="true" schemaRef="#/components/schemas/${e}" /%}`,isSchema:!0,level:2},a,n);return s.depth=n.depth+1,s})).filter(Boolean)}export function getTagsWithOperations(e,t){const{definition:n}=e,o={},a=n["x-webhooks"]||n.webhooks;for(const e of t||[])o[e.name]=Object.assign(Object.assign({},e),{operations:[]});return n.paths&&getTags(e,n.paths,o),a&&getTags(e,a,o,!0),o}function getTags(e,t,n,o){for(const a of Object.keys(t||{})){const s=t[a],i=Object.keys(s).filter(isOperationName);for(const t of i){const i=s[t];if(s.$ref){const{resolved:t}=e.deref(s);getTags(e,{[a]:t},n,o);continue}let r=null==i?void 0:i.tags;r&&r.length||(r=[""]);for(const e of r){let r=n[e];void 0===r&&(r={name:e,operations:[]},n[e]=r),r["x-traitTag"]||r.operations.push(Object.assign(Object.assign({},i),{pathName:a,pointer:JsonPointer.compile(["paths",a,t]),httpVerb:t,pathParameters:s.parameters||[],pathServers:s.servers,isWebhook:!!o}))}}}}
|
|
2
2
|
//# sourceMappingURL=tags.js.map
|
|
@@ -15,10 +15,10 @@ export interface OpenAPIDefinition {
|
|
|
15
15
|
tags: Array<string>;
|
|
16
16
|
}>;
|
|
17
17
|
}
|
|
18
|
-
export interface OpenAPIInfo {
|
|
18
|
+
export interface OpenAPIInfo extends ParsedDescriptionWithSummary {
|
|
19
19
|
title: string;
|
|
20
20
|
version: string;
|
|
21
|
-
description?: string
|
|
21
|
+
description?: string;
|
|
22
22
|
summary?: string;
|
|
23
23
|
termsOfService?: string;
|
|
24
24
|
contact?: OpenAPIContact;
|
|
@@ -31,31 +31,31 @@ export interface XLogo {
|
|
|
31
31
|
altText?: string;
|
|
32
32
|
href?: string;
|
|
33
33
|
}
|
|
34
|
-
export interface OpenAPIServer {
|
|
34
|
+
export interface OpenAPIServer extends ParsedDescription {
|
|
35
35
|
url: string;
|
|
36
|
-
description?: string
|
|
36
|
+
description?: string;
|
|
37
37
|
variables?: {
|
|
38
38
|
[name: string]: OpenAPIServerVariable;
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
export interface OpenAPIServerVariable {
|
|
41
|
+
export interface OpenAPIServerVariable extends ParsedDescription {
|
|
42
42
|
enum?: string[];
|
|
43
43
|
default: string;
|
|
44
|
-
description?: string
|
|
44
|
+
description?: string;
|
|
45
45
|
}
|
|
46
46
|
export interface OpenAPIPaths {
|
|
47
47
|
[path: string]: OpenAPIPath;
|
|
48
48
|
}
|
|
49
|
-
export interface OpenAPIRef {
|
|
49
|
+
export interface OpenAPIRef extends ParsedDescriptionWithSummary {
|
|
50
50
|
$ref: string;
|
|
51
51
|
'x-refsStack'?: string[];
|
|
52
52
|
summary?: string;
|
|
53
|
-
description?: string
|
|
53
|
+
description?: string;
|
|
54
54
|
}
|
|
55
55
|
export type Referenced<T> = T | OpenAPIRef;
|
|
56
|
-
export interface OpenAPIPath extends Partial<OpenAPIRef
|
|
56
|
+
export interface OpenAPIPath extends Partial<OpenAPIRef>, ParsedDescriptionWithSummary {
|
|
57
57
|
summary?: string;
|
|
58
|
-
description?: string
|
|
58
|
+
description?: string;
|
|
59
59
|
get?: OpenAPIOperation;
|
|
60
60
|
put?: OpenAPIOperation;
|
|
61
61
|
post?: OpenAPIOperation;
|
|
@@ -70,10 +70,10 @@ export interface OpenAPIPath extends Partial<OpenAPIRef> {
|
|
|
70
70
|
export interface OpenAPIXCodeSample extends Sample {
|
|
71
71
|
source: string;
|
|
72
72
|
}
|
|
73
|
-
export interface OpenAPIOperation {
|
|
73
|
+
export interface OpenAPIOperation extends ParsedDescriptionWithSummary {
|
|
74
74
|
tags?: string[];
|
|
75
|
-
summary?: string
|
|
76
|
-
description?: string
|
|
75
|
+
summary?: string;
|
|
76
|
+
description?: string;
|
|
77
77
|
externalDocs?: OpenAPIExternalDocumentation;
|
|
78
78
|
operationId?: string;
|
|
79
79
|
parameters?: Array<Referenced<OpenAPIParameter>>;
|
|
@@ -88,10 +88,10 @@ export interface OpenAPIOperation {
|
|
|
88
88
|
'x-codeSamples'?: OpenAPIXCodeSample[];
|
|
89
89
|
'x-code-samples'?: OpenAPIXCodeSample[];
|
|
90
90
|
}
|
|
91
|
-
export interface OpenAPIParameter {
|
|
91
|
+
export interface OpenAPIParameter extends ParsedDescription {
|
|
92
92
|
name: string;
|
|
93
93
|
in?: OpenAPIParameterLocation;
|
|
94
|
-
description?: string
|
|
94
|
+
description?: string;
|
|
95
95
|
required?: boolean;
|
|
96
96
|
deprecated?: boolean;
|
|
97
97
|
allowEmptyValue?: boolean;
|
|
@@ -109,13 +109,13 @@ export interface OpenAPIParameter {
|
|
|
109
109
|
encoding?: Record<string, OpenAPIEncoding>;
|
|
110
110
|
const?: any;
|
|
111
111
|
}
|
|
112
|
-
export interface OpenAPIExample {
|
|
112
|
+
export interface OpenAPIExample extends ParsedDescriptionWithSummary {
|
|
113
113
|
value: any;
|
|
114
114
|
summary?: string;
|
|
115
|
-
description?: string
|
|
115
|
+
description?: string;
|
|
116
116
|
externalValue?: string;
|
|
117
117
|
}
|
|
118
|
-
export interface OpenAPISchema {
|
|
118
|
+
export interface OpenAPISchema extends ParsedDescription {
|
|
119
119
|
$ref?: string;
|
|
120
120
|
type?: string | string[];
|
|
121
121
|
properties?: {
|
|
@@ -126,7 +126,7 @@ export interface OpenAPISchema {
|
|
|
126
126
|
};
|
|
127
127
|
additionalProperties?: boolean | OpenAPISchema;
|
|
128
128
|
unevaluatedProperties?: boolean | OpenAPISchema;
|
|
129
|
-
description?: string
|
|
129
|
+
description?: string;
|
|
130
130
|
default?: any;
|
|
131
131
|
items?: OpenAPISchema | OpenAPISchema[] | boolean;
|
|
132
132
|
required?: string[];
|
|
@@ -195,8 +195,8 @@ export interface OpenAPIEncoding {
|
|
|
195
195
|
}
|
|
196
196
|
export type OpenAPIParameterLocation = 'query' | 'header' | 'path' | 'cookie';
|
|
197
197
|
export type OpenAPIParameterStyle = 'matrix' | 'label' | 'form' | 'simple' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject';
|
|
198
|
-
export interface OpenAPIRequestBody {
|
|
199
|
-
description?: string
|
|
198
|
+
export interface OpenAPIRequestBody extends ParsedDescription {
|
|
199
|
+
description?: string;
|
|
200
200
|
required?: boolean;
|
|
201
201
|
content: {
|
|
202
202
|
[mime: string]: OpenAPIMediaType;
|
|
@@ -213,8 +213,8 @@ export interface OpenAPIRequestBody {
|
|
|
213
213
|
export interface OpenAPIResponses {
|
|
214
214
|
[code: string]: OpenAPIResponse;
|
|
215
215
|
}
|
|
216
|
-
export interface OpenAPIResponse {
|
|
217
|
-
description?: string
|
|
216
|
+
export interface OpenAPIResponse extends ParsedDescription {
|
|
217
|
+
description?: string;
|
|
218
218
|
headers?: {
|
|
219
219
|
[name: string]: Referenced<OpenAPIHeader>;
|
|
220
220
|
};
|
|
@@ -272,9 +272,9 @@ export interface OpenAPIComponents {
|
|
|
272
272
|
export interface OpenAPISecurityRequirement {
|
|
273
273
|
[name: string]: string[];
|
|
274
274
|
}
|
|
275
|
-
export interface OpenAPISecurityScheme {
|
|
275
|
+
export interface OpenAPISecurityScheme extends ParsedDescription {
|
|
276
276
|
type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
|
|
277
|
-
description?: string
|
|
277
|
+
description?: string;
|
|
278
278
|
name?: string;
|
|
279
279
|
in?: 'query' | 'header' | 'cookie';
|
|
280
280
|
scheme?: string;
|
|
@@ -312,14 +312,14 @@ export interface OpenAPISecurityScheme {
|
|
|
312
312
|
};
|
|
313
313
|
openIdConnectUrl?: string;
|
|
314
314
|
}
|
|
315
|
-
export interface OpenAPITag {
|
|
315
|
+
export interface OpenAPITag extends ParsedDescription {
|
|
316
316
|
name: string;
|
|
317
|
-
description?: string
|
|
317
|
+
description?: string;
|
|
318
318
|
externalDocs?: OpenAPIExternalDocumentation;
|
|
319
319
|
'x-displayName'?: string;
|
|
320
320
|
}
|
|
321
|
-
export interface OpenAPIExternalDocumentation {
|
|
322
|
-
description?: string
|
|
321
|
+
export interface OpenAPIExternalDocumentation extends ParsedDescription {
|
|
322
|
+
description?: string;
|
|
323
323
|
url: string;
|
|
324
324
|
}
|
|
325
325
|
export interface OpenAPIContact {
|
|
@@ -335,3 +335,9 @@ export interface OpenAPILicense {
|
|
|
335
335
|
export interface ParsedDocument extends OpenAPIDefinition {
|
|
336
336
|
swagger: unknown;
|
|
337
337
|
}
|
|
338
|
+
export interface ParsedDescription {
|
|
339
|
+
'x-parsed-md-description'?: GenericObject;
|
|
340
|
+
}
|
|
341
|
+
export interface ParsedDescriptionWithSummary extends ParsedDescription {
|
|
342
|
+
'x-parsed-md-summary'?: GenericObject;
|
|
343
|
+
}
|
|
@@ -49,4 +49,5 @@ export declare function joinStringFactory(separator: string): (...args: (string
|
|
|
49
49
|
export declare const dottedString: (...args: (string | undefined)[]) => string;
|
|
50
50
|
export declare function getWindowReferenceOptions<T>(option: string): T | null;
|
|
51
51
|
export declare function getJsUrl(): string;
|
|
52
|
-
export declare const normalizeText: (
|
|
52
|
+
export declare const normalizeText: (text?: string | GenericObject) => string;
|
|
53
|
+
export declare const getValueFromMdParsedExtension: (item: GenericObject, key: 'description' | 'summary' | 'x-summary' | 'x-enumDescriptions') => any;
|
package/lib-esm/utils/helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import slugify from"slugify";import{format,parse}from"url";import{ZERO_BREAKPOINT}from"./media-css";import{isNamedDefinition}from"./openapi";import{JsonPointer}from"./JsonPointer";import{IS_BROWSER}from"./dom";import{isString}from"./typeGuards";export 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}export 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}export function flattenByProp(e,t){const r=[],n=e=>{for(const o of e)r.push(o),o[t]&&n(o[t])};return n(e),r}export function stripTrailingSlash(e){return e.endsWith("/")?e.substring(0,e.length-1):e}export function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}export function appendToMdHeading(e,t,r){const n=new RegExp(`(^|\\n)#\\s?${t}\\s*\\n`,"i"),o=new RegExp(`((\\n|^)#\\s*${t}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(e))return e.replace(o,`$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}`}}export const mergeObjects=(e,...t)=>{if(!t.length)return e;const r=t.shift();return void 0===r?e:(isMergeableObject(e)&&isMergeableObject(r)&&Object.keys(r).forEach((t=>{isMergeableObject(r[t])?(e[t]||(e[t]={}),["string","number"].includes(typeof e[t])&&(r[t][ZERO_BREAKPOINT]||0===r[t][ZERO_BREAKPOINT]||console.warn(`Theme resolver: using default value of "${e[t]}" for "${t}". This is not recommended. Prefer adding default value by providing "${ZERO_BREAKPOINT}" property to ${JSON.stringify(r[t])}.`),e[t]={[ZERO_BREAKPOINT]:e[t]}),mergeObjects(e[t],r[t])):e[t]=r[t]})),mergeObjects(e,...t))};export const isObject=e=>null!==e&&"object"==typeof e;export const isArrayOfObjects=e=>Array.isArray(e)&&e.some((e=>isObject(e)));export const deleteEmptyArrayItem=e=>e.filter((e=>!!e));export const isMergeableObject=e=>isObject(e)&&!Array.isArray(e);export function safeSlugify(e){return slugify(e)||e.toString().toLowerCase().replace(/\s+/g,"-").replace(/&/g,"-and-").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}export function isAbsoluteUrl(e){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}export function resolveUrl(e,t){let r;if(t.startsWith("//")){const{protocol:n}=parse(e);r=`${n||"https:"}${t}`}else if(isAbsoluteUrl(t))r=t;else if(t.startsWith("/")){const n=parse(e);r=format(Object.assign(Object.assign({},n),{pathname:t}))}else r=stripTrailingSlash(e)+"/"+t;return stripTrailingSlash(r)}export function getBasePath(e){try{return parseURL(e).pathname}catch(t){return e}}export function titleize(e){return e.charAt(0).toUpperCase()+e.slice(1)}export 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)}export function escapeHTMLAttrChars(e){return e.replace(/["\\]/g,"\\$&")}export function unescapeHTMLChars(e){return e.replace(/&#(\d+);/g,((e,t)=>String.fromCharCode(parseInt(t,10)))).replace(/&/g,"&").replace(/"/g,'"')}export function sanitizeItemId(e){return e&&e.replace(/#/g,"_")}export function useSchemaTitle(e,t){return t||isNamedDefinition(e)&&JsonPointer.baseName(e)||""}export function get(e={},t,r){return"string"==typeof t&&(t=t.split(".")),t.reduce(((e,t)=>e&&e[t]?e[t]:r),e)}export function joinStringFactory(e){return(...t)=>t.filter(Boolean).join(e)}export const dottedString=joinStringFactory(".");export function getWindowReferenceOptions(e){var t;return IS_BROWSER?null===(t=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===t?void 0:t[e]:null}export function getJsUrl(){var e;if(!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""}}export const normalizeText=e=>isString(e)?e:null==e?void 0:e.raw;
|
|
1
|
+
import slugify from"slugify";import{format,parse}from"url";import{ZERO_BREAKPOINT}from"./media-css";import{isNamedDefinition}from"./openapi";import{JsonPointer}from"./JsonPointer";import{IS_BROWSER}from"./dom";import{isString}from"./typeGuards";export 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}export 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}export function flattenByProp(e,t){const r=[],n=e=>{for(const o of e)r.push(o),o[t]&&n(o[t])};return n(e),r}export function stripTrailingSlash(e){return e.endsWith("/")?e.substring(0,e.length-1):e}export function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}export function appendToMdHeading(e,t,r){const n=new RegExp(`(^|\\n)#\\s?${t}\\s*\\n`,"i"),o=new RegExp(`((\\n|^)#\\s*${t}\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)`,"i");if(n.test(e))return e.replace(o,`$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}`}}export const mergeObjects=(e,...t)=>{if(!t.length)return e;const r=t.shift();return void 0===r?e:(isMergeableObject(e)&&isMergeableObject(r)&&Object.keys(r).forEach((t=>{isMergeableObject(r[t])?(e[t]||(e[t]={}),["string","number"].includes(typeof e[t])&&(r[t][ZERO_BREAKPOINT]||0===r[t][ZERO_BREAKPOINT]||console.warn(`Theme resolver: using default value of "${e[t]}" for "${t}". This is not recommended. Prefer adding default value by providing "${ZERO_BREAKPOINT}" property to ${JSON.stringify(r[t])}.`),e[t]={[ZERO_BREAKPOINT]:e[t]}),mergeObjects(e[t],r[t])):e[t]=r[t]})),mergeObjects(e,...t))};export const isObject=e=>null!==e&&"object"==typeof e;export const isArrayOfObjects=e=>Array.isArray(e)&&e.some((e=>isObject(e)));export const deleteEmptyArrayItem=e=>e.filter((e=>!!e));export const isMergeableObject=e=>isObject(e)&&!Array.isArray(e);export function safeSlugify(e){return slugify(e)||e.toString().toLowerCase().replace(/\s+/g,"-").replace(/&/g,"-and-").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}export function isAbsoluteUrl(e){return/(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}export function resolveUrl(e,t){let r;if(t.startsWith("//")){const{protocol:n}=parse(e);r=`${n||"https:"}${t}`}else if(isAbsoluteUrl(t))r=t;else if(t.startsWith("/")){const n=parse(e);r=format(Object.assign(Object.assign({},n),{pathname:t}))}else r=stripTrailingSlash(e)+"/"+t;return stripTrailingSlash(r)}export function getBasePath(e){try{return parseURL(e).pathname}catch(t){return e}}export function titleize(e){return e.charAt(0).toUpperCase()+e.slice(1)}export 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)}export function escapeHTMLAttrChars(e){return e.replace(/["\\]/g,"\\$&")}export function unescapeHTMLChars(e){return e.replace(/&#(\d+);/g,((e,t)=>String.fromCharCode(parseInt(t,10)))).replace(/&/g,"&").replace(/"/g,'"')}export function sanitizeItemId(e){return e&&e.replace(/#/g,"_")}export function useSchemaTitle(e,t){return t||isNamedDefinition(e)&&JsonPointer.baseName(e)||""}export function get(e={},t,r){return"string"==typeof t&&(t=t.split(".")),t.reduce(((e,t)=>e&&e[t]?e[t]:r),e)}export function joinStringFactory(e){return(...t)=>t.filter(Boolean).join(e)}export const dottedString=joinStringFactory(".");export function getWindowReferenceOptions(e){var t;return IS_BROWSER?null===(t=null===window||void 0===window?void 0:window.REFERENCE_DOCS_OPTIONS)||void 0===t?void 0:t[e]:null}export function getJsUrl(){var e;if(!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""}}export const normalizeText=e=>isString(e)?e:null==e?void 0:e.raw;export const getValueFromMdParsedExtension=(e,t)=>e[`x-parsed-md-${t}`]||e[t];
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -5,7 +5,7 @@ import { OpenAPIParameter } from '../types';
|
|
|
5
5
|
export declare function isStatusCode(statusCode: string): boolean;
|
|
6
6
|
export declare function getStatusCodeType(statusCode: string | number, defaultAsError?: boolean): string;
|
|
7
7
|
export declare function isOperationName(key: string): boolean;
|
|
8
|
-
export declare function getOperationName(
|
|
8
|
+
export declare function getOperationName(operation: ExtendedOpenAPIOperation): string;
|
|
9
9
|
export declare function getOperationId(operation: ExtendedOpenAPIOperation, parent?: GroupModel): string;
|
|
10
10
|
export declare function detectType(schema: OpenAPISchema): string;
|
|
11
11
|
export declare function isPrimitiveType(schema: OpenAPISchema, type?: string | string[] | undefined): boolean;
|
|
@@ -16,9 +16,7 @@ export declare function urlFormEncodePayload(payload: GenericObject, encoding?:
|
|
|
16
16
|
}): string;
|
|
17
17
|
export declare function serializeQueryParameter(name: string, style: OpenAPIParameterStyle | undefined, explode: boolean, value: unknown): string;
|
|
18
18
|
export declare function serializeParameterValueWithMime(value: unknown, mime: string): string;
|
|
19
|
-
export declare function serializeParameterValue(parameter:
|
|
20
|
-
serializationMime?: string;
|
|
21
|
-
}, value: unknown): string;
|
|
19
|
+
export declare function serializeParameterValue(parameter: FieldModel, value: unknown): string;
|
|
22
20
|
export declare function langFromMime(contentType: string): string;
|
|
23
21
|
export declare function isNamedDefinition(pointer?: string): boolean;
|
|
24
22
|
export declare function getDefinitionName(pointer?: string): string | undefined;
|
package/lib-esm/utils/openapi.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{dirname}from"path";import UrlTemplate from"url-template";import{IS_BROWSER}from"./dom";import{deleteEmptyArrayItem,isArrayOfObjects,isNumeric,removeQueryStringAndHash,resolveUrl,sanitizeItemId,normalizeText}from"./helpers";import{MediaTypes}from"../constants";import{JsonPointer}from"./JsonPointer";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({operationId:e,description:r,summary:t,pathName:i}){const n=normalizeText(r);return normalizeText(t)||e||n&&n.substring(0,50)||i||"<no summary>"}export function getOperationId(e,r){return sanitizeItemId(void 0!==e.operationId?"operation/"+e.operationId:void 0!==r?r.id+e.pointer:e.pointer)}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 isFormUrlEncoded(e){return e===MediaTypes.URL_ENCODED}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 decodeURIComponent(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)?t?serializeFormValue(e,t,n):`${e}=${n.join("%20")}`:(console.warn("The style spaceDelimited is only applicable to arrays"),"");case"pipeDelimited":return Array.isArray(n)?t?serializeFormValue(e,t,n):`${e}=${n.join("|")}`:(console.warn("The style pipeDelimited is only applicable to arrays"),"");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("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 sortByField(e,r){return[...e].sort(((e,t)=>e[r].localeCompare(t[r])))}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 mergeSimilarMediaTypes(e){const r={};return Object.keys(e).forEach((t=>{const i=e[t],n=t.split(";")[0].trim();r[n]?r[n]=Object.assign(Object.assign({},r[n]),i):r[n]=i})),r}export function expandDefaultServerVariables(e,r={}){return e.replace(/(?:{)([\w-.]+)(?:})/g,((e,t)=>r[t]&&r[t].default||e))}export function normalizeServers(e,r){const t=void 0===e?removeQueryStringAndHash((()=>{if(!IS_BROWSER)return"";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-code-samples":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-ignoredHeaderParameters":!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-hideTryItPanel":!0,"x-tokenEndpointAuthMethod":!0}}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"./dom";import{deleteEmptyArrayItem,isArrayOfObjects,isNumeric,removeQueryStringAndHash,resolveUrl,sanitizeItemId,normalizeText,getValueFromMdParsedExtension}from"./helpers";import{MediaTypes}from"../constants";import{JsonPointer}from"./JsonPointer";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){return sanitizeItemId(void 0!==e.operationId?"operation/"+e.operationId:void 0!==r?r.id+e.pointer:e.pointer)}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 isFormUrlEncoded(e){return e===MediaTypes.URL_ENCODED}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 decodeURIComponent(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)?t?serializeFormValue(e,t,n):`${e}=${n.join("%20")}`:(console.warn("The style spaceDelimited is only applicable to arrays"),"");case"pipeDelimited":return Array.isArray(n)?t?serializeFormValue(e,t,n):`${e}=${n.join("|")}`:(console.warn("The style pipeDelimited is only applicable to arrays"),"");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("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 sortByField(e,r){return[...e].sort(((e,t)=>e[r].localeCompare(t[r])))}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 mergeSimilarMediaTypes(e){const r={};return Object.keys(e).forEach((t=>{const i=e[t],n=t.split(";")[0].trim();r[n]?r[n]=Object.assign(Object.assign({},r[n]),i):r[n]=i})),r}export function expandDefaultServerVariables(e,r={}){return e.replace(/(?:{)([\w-.]+)(?:})/g,((e,t)=>r[t]&&r[t].default||e))}export function normalizeServers(e,r){const t=void 0===e?removeQueryStringAndHash((()=>{if(!IS_BROWSER)return"";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-code-samples":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-ignoredHeaderParameters":!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-hideTryItPanel":!0,"x-tokenEndpointAuthMethod":!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.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.24",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@markdoc/markdoc": "0.1.13",
|
|
19
|
-
"@redocly/openapi-core": "1.0.0-beta.
|
|
19
|
+
"@redocly/openapi-core": "^1.0.0-beta.123",
|
|
20
20
|
"@redocly/vscode-json-languageservice": "3.4.9",
|
|
21
21
|
"@wojtekmaj/enzyme-adapter-react-17": "^0.6.2",
|
|
22
22
|
"codemirror": "^5.65.0",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"cdn-serve": "http-server playground/cdn-test/server-dist"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
|
-
"@redocly/theme": "^0.9.
|
|
86
|
+
"@redocly/theme": "^0.9.4",
|
|
87
87
|
"core-js": "^3.1.4",
|
|
88
88
|
"react": "^16.8.4 || ^17.0.0",
|
|
89
89
|
"react-dom": "^16.8.4 || ^17.0.0",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"@percy/cli": "^1.10.3",
|
|
94
94
|
"@percy/cypress": "^3.1.1",
|
|
95
|
-
"@redocly/theme": "^0.9.
|
|
95
|
+
"@redocly/theme": "^0.9.6",
|
|
96
96
|
"@testing-library/jest-dom": "^5.15.1",
|
|
97
97
|
"@testing-library/react": "^12.1.4",
|
|
98
98
|
"@testing-library/react-hooks": "^8.0.1",
|