@redocly/openapi-docs 3.23.0-next.7 → 3.24.0-next.0
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/lib/models/schema.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{REDOCLY_TEAMS_RBAC as S}from"@redocly/config";import{isObject as I}from"@redocly/theme/core/openapi";import{pushRef as w}from"../services/OpenAPIParser.js";import{detectType as q,extractExtensions as C,getValueFromMdParsedExtension as M,humanizeConstraints as E,isNamedDefinition as h,isPrimitiveType as B,JsonPointer as A,pluralizeType as z,sortByDeprecated as L,sortByRequired as J}from"../utils/index.js";import{getField as b}from"./field.js";function F({parser:i,schemaOrRef:n,pointer:u,options:l,isChild:P=!1,isDefaultMapping:f=!1,baseRefsStack:m=[],deps:a,absolutePointer:y}){const{resolved:p,refsStack:c}=i.deref(n,m,!0),s=n.$ref||u||y||"",r=w(c,s),
|
|
2
|
-
Field must be an object but got ${typeof i} at "${u}"`),{})}function K(i,n,u,l,P,f){let m=n.properties||($(n,"array")?n.prefixItems||n.items:void 0)||{};const a=n.patternProperties||{},y=n.additionalProperties||n.unevaluatedProperties,p=n.prefixItems?n.items:n.additionalItems,c=n.default||{};let s=Object.keys(m).map(r=>{const
|
|
1
|
+
import{REDOCLY_TEAMS_RBAC as S}from"@redocly/config";import{isObject as I}from"@redocly/theme/core/openapi";import{pushRef as w}from"../services/OpenAPIParser.js";import{detectType as q,extractExtensions as C,getValueFromMdParsedExtension as M,humanizeConstraints as E,isNamedDefinition as h,isPrimitiveType as B,JsonPointer as A,pluralizeType as z,sortByDeprecated as L,sortByRequired as J}from"../utils/index.js";import{getField as b}from"./field.js";function F({parser:i,schemaOrRef:n,pointer:u,options:l,isChild:P=!1,isDefaultMapping:f=!1,baseRefsStack:m=[],deps:a,absolutePointer:y}){const{resolved:p,refsStack:c}=i.deref(n,m,!0),s=n.$ref||u||y||"",r=w(c,s),t=i.mergeAllOf(p,s,r,n.$ref||y),O=t.type||q(t),e={operationPointer:a.operation?.pointer||y||"",schemaOrRef:n,isChild:P,isDefaultMapping:f,typePrefix:"",pointer:s,absolutePointer:y,refsStack:r,rawSchema:p,type:O,isCircular:!!t["x-circular-ref"],isComplex:!!t["x-complex"],title:t.title||h(s)&&A.baseName(s)||"",description:M(t,"description")||"",format:t.format,enum:t.enum||[],example:t.example,deprecated:!!t.deprecated,pattern:t.pattern,externalDocs:t.externalDocs,displayFormat:t.format,isPrimitive:B(t,O),constraints:E(t),default:t.default,readOnly:!!t.readOnly,writeOnly:!!t.writeOnly,const:t.const||"",contentEncoding:t.contentEncoding,contentMediaType:t.contentMediaType,minItems:t.minItems,maxItems:t.maxItems,nullable:t.nullable||t["x-nullable"],schema:t,displayType:"",items:void 0,extensions:void 0,oneOfType:"",discriminatorProp:void 0,oneOf:void 0,[S]:t[S],"x-enumDescriptions":M(t,"x-enumDescriptions"),get fields(){if(!e.isCircular&&!e.isComplex&&($(e,"object")||$(e,"array")&&v(t)))return K(i,t,s,l,r,a)}};if((t.nullable||t["x-nullable"])&&(Array.isArray(e.type)&&!e.type.some(d=>d===null||d==="null")?e.type=[...e.type,"null"]:!Array.isArray(e.type)&&(e.type!==null||e.type!=="null")&&(e.type=[e.type,"null"])),e.displayType=Array.isArray(e.type)?e.type.map(d=>d===null?"null":d).join(" or "):e.type,e.isCircular)return e;if(t.if&&t.then||t.if&&t.else){const{oneOf:d,oneOfType:o}=_({schema:t,parser:i,pointer:s,options:l,deps:a,refsStack:r});return e.oneOf=d,e.oneOfType=o,e}if(!P&&j(t)!==void 0){const{oneOf:d,discriminatorProp:o}=V({schema:t,parser:i,deps:a,mergedSchema:t,options:l,pointer:s,refsStack:r});return e.oneOf=d,e.discriminatorProp=o,e}else P&&Array.isArray(t.oneOf)&&t.oneOf.find(d=>d.$ref===s)&&delete t.oneOf;if(t.oneOf!==void 0){const{oneOf:d,displayType:o}=k({schemaOneOf:t.oneOf,parser:i,deps:a,options:l,pointer:s,refsStack:r,schema:t});return e.oneOfType="One of",d&&(e.oneOf=d),e.displayType=o,t.anyOf!==void 0&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${s}`),e}if(t.anyOf!==void 0){const{oneOf:d,displayType:o}=k({schemaOneOf:t.anyOf,parser:i,deps:a,options:l,pointer:s,refsStack:r,schema:t});return d&&(e.oneOf=d),e.displayType=o,e.oneOfType="Any of",e}if($(e,"array")&&(t.items&&!v(t)&&(e.items=F({parser:i,schemaOrRef:t.items,pointer:s+"/items",options:l,baseRefsStack:r,deps:a,absolutePointer:A.join(t.absolutePointer||"",["items"])}),e.items.isPrimitive&&(e.description=e.items.description||e.description,e.pattern=e.items.pattern||e.pattern,e.format=e.items.format||e.format,e.constraints=[...e.constraints,...e.items.constraints])),e.displayType=t.prefixItems||Array.isArray(t.items)?"items":z(e.items?.displayType||e.displayType),e.displayFormat=e.items?.format||"",e.typePrefix=e.items?.typePrefix||"Array of ",e.title=e.title||e.items?.title||"",e.isPrimitive=e.items?.isPrimitive!==void 0?e.items?.isPrimitive:e.isPrimitive,e.example===void 0&&e.items?.example!==void 0&&(e.example=[e.items.example]),e.items?.isPrimitive&&(e.enum=e.items.enum,e["x-enumDescriptions"]=M(e.items,"x-enumDescriptions")),Array.isArray(e.type))){const d=e.type.filter(o=>o!=="array");d.length&&(e.displayType+=` or ${d.join(" or ")}`)}return l.showExtensions&&(e.extensions=C(t,l.showExtensions)),e}function V({schema:i,parser:n,pointer:u,options:l,refsStack:P,deps:f,mergedSchema:m}){const a=j(i),y=a?.propertyName,p=n.findDerived([...m["x-parentRefs"]||[],u]);if(i.oneOf)for(const o of i.oneOf){if(o.$ref===void 0)continue;const x=A.baseName(o.$ref);p[o.$ref]=x}const c=a?.mapping||{},s=a?.["x-explicitMappingOnly"]??Object.keys(c).length>0,r={};for(const o in c){const x=c[o];Array.isArray(r[x])?r[x].push(o):r[x]=[o]}const t=s?{...r}:{...p,...r};let O=[];for(const o of Object.keys(t)){const x=t[o];if(Array.isArray(x))for(const g of x)O.push({$ref:o,name:g});else O.push({$ref:o,name:x})}if(a?.defaultMapping){const o=O.findIndex(g=>g.name===A.baseName(a.defaultMapping)),x="Default mapping";~o?O[o]={$ref:a.defaultMapping,name:x,isDefaultMapping:!0}:O.push({$ref:a.defaultMapping,name:x,isDefaultMapping:!0})}const e=Object.keys(c);return e.length!==0&&(O=O.sort((o,x)=>{if(o.isDefaultMapping&&!x.isDefaultMapping)return 1;if(!o.isDefaultMapping&&x.isDefaultMapping)return-1;const g=e.indexOf(o.name),T=e.indexOf(x.name);return g<0&&T<0?o.name.localeCompare(x.name):g<0?1:T<0?-1:g-T})),{oneOf:O.map(({$ref:o,name:x,isDefaultMapping:g},T)=>{const D=F({parser:n,schemaOrRef:{$ref:o},pointer:o,options:l,isChild:!0,isDefaultMapping:g,baseRefsStack:P.slice(0,-1),deps:{...f,parentFieldFullPath:f.parentFieldFullPath?f.parentFieldFullPath+"&d="+T:"&d="+T.toString()},absolutePointer:m.absolutePointer});return D.title=x,D}),discriminatorProp:y}}function k({schemaOneOf:i,parser:n,refsStack:u,pointer:l,schema:P,options:f,deps:m}){const a=i.map((p,c)=>{const{resolved:s,refsStack:r}=n.deref(p,u,!0),t=n.mergeAllOf(s,l+"/oneOf/"+c,r),O=h(p.$ref)&&!t.title?A.baseName(p.$ref):`${t.title||""}${t.const&&JSON.stringify(t.const)||""}`;return F({parser:n,schemaOrRef:{...t,title:O,allOf:[{...P,oneOf:void 0,anyOf:void 0}],discriminator:s.allOf?void 0:t.discriminator},pointer:p.$ref||l+"/oneOf/"+c,options:f,baseRefsStack:r,deps:{...m,parentFieldFullPath:m.parentFieldFullPath?m.parentFieldFullPath+"&oneOf="+c:"&oneOf="+c.toString()}})}),y=[...new Set(a.map(p=>{let c=p.typePrefix+(p.title&&!f.hideSchemaTitles?`${p.title} (${p.displayType})`:p.displayType);return c.indexOf(" or ")>-1&&(c=`(${c})`),c}))].join(" or ");return{oneOf:a,displayType:y}}function _({schema:i,parser:n,pointer:u,options:l,refsStack:P,deps:f}){const{if:m,else:a={},then:y={},...p}=i;return{oneOf:[{allOf:[p,y,m],title:m&&m["x-displayName"]||m?.title||"case 1"},{allOf:[p,a],title:a&&a["x-displayName"]||a?.title||"case 2"}].map((t,O)=>F({parser:n,schemaOrRef:{...t},pointer:u+"/oneOf/"+O,options:l,baseRefsStack:P,deps:{...f,parentFieldFullPath:f.parentFieldFullPath?f.parentFieldFullPath+"&oneOf="+O:"&oneOf="+O.toString()}})),oneOfType:"One of"}}function R(i,n,u){return i||(console.warn(`Field "${n}" is invalid, skipping.
|
|
2
|
+
Field must be an object but got ${typeof i} at "${u}"`),{})}function K(i,n,u,l,P,f){let m=n.properties||($(n,"array")?n.prefixItems||n.items:void 0)||{};const a=n.patternProperties||{},y=n.additionalProperties||n.unevaluatedProperties,p=n.prefixItems?n.items:n.additionalItems,c=n.default||{};let s=Object.keys(m).map(r=>{const t=R(m[r],r,u),O=n.required===void 0?!1:n.required.indexOf(r)>-1;return b(i,{name:n.properties?r:`[${r}]`,required:O,schema:{...t,example:n.example?.[r]||t.example,default:t.default===void 0&&c?c[r]:t.default}},u+"/properties/"+r,l,f,P,A.join(n.absolutePointer||"",["properties",r]))});return l.sortRequiredPropsFirst&&(s=J(s,n.required)),s.push(...Object.keys(a).map(r=>{const t=R(a[r],r,u);return b(i,{name:r,required:!1,schema:t,kind:"patternProperties"},`${u}/patternProperties/${r}`,l,f,P)})),(I(y)||y===!0)&&s.push(b(i,{name:(I(y)&&y["x-additionalPropertiesName"]||"property name").concat("*"),required:!1,schema:y===!0?{}:y,kind:"additionalProperties"},u+"/additionalProperties",l,f,P,A.join(n.absolutePointer||"",["additionalProperties"]))),s.push(...Y({parser:i,schema:p,fieldsCount:s.length,$ref:u,options:l,refsStack:P,deps:f})),L(s)}function Y({parser:i,schema:n=!1,fieldsCount:u,$ref:l,options:P,refsStack:f,deps:m}){return typeof n=="boolean"?n?[b(i,{name:`[${u}...]`,schema:{},kind:"additionalItems"},`${l}/additionalItems`,P,m,f)]:[]:Array.isArray(n)?[...n.map((a,y)=>b(i,{name:`[${u+y}]`,schema:a,kind:"additionalItems"},`${l}/additionalItems/${y}`,P,m,f))]:I(n)?[b(i,{name:`[${u}...]`,schema:n,kind:"additionalItems"},`${l}/additionalItems`,P,m,f)]:[]}function j(i){return i.discriminator||i["x-discriminator"]}function $(i,n){return i.type===n||Array.isArray(i.type)&&i.type.includes(n)}function v(i){return!!(Array.isArray(i.items)||Array.isArray(i.prefixItems))}export{F as getSchema};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{LayoutVariant as d}from"@redocly/config";import{isUndefined as m,addTrailingSlash as r}from"@redocly/theme/core/openapi";import{WindowReferenceOptions as n}from"../../constants.js";import{argValueToBoolean as o,argValueToExpandLevel as i,argValueToInt as p,argValueToNumber as c,getWindowReferenceOptions as a,normalizePath as h}from"../../utils/index.js";import{normalizeShowExtensions as
|
|
1
|
+
import{LayoutVariant as d}from"@redocly/config";import{isUndefined as m,addTrailingSlash as r}from"@redocly/theme/core/openapi";import{WindowReferenceOptions as n}from"../../constants.js";import{argValueToBoolean as o,argValueToExpandLevel as i,argValueToInt as p,argValueToNumber as c,getWindowReferenceOptions as a,normalizePath as h}from"../../utils/index.js";import{normalizeShowExtensions as f,normalizeScrollYOffset as u,normalizeCodeSamples as S}from"./helpers.js";function y(e,s){e={...s,...e,markdocOptions:{...e?.markdocOptions,components:{...s?.markdocOptions?.components,...e?.markdocOptions?.components},tags:{...s?.markdocOptions?.tags,...e?.markdocOptions?.tags},nodes:{...s?.markdocOptions?.nodes,...e?.markdocOptions?.nodes,heading:s?.markdocOptions?.nodes?.heading||e?.markdocOptions?.nodes.heading}}};const t=Array.isArray(e.ignoreNamedSchemas)?e.ignoreNamedSchemas:e.ignoreNamedSchemas?.split(",").map(l=>l.trim());return{downloadUrls:e.downloadUrls,schemaDefinitionsTagName:e.schemaDefinitionsTagName,corsProxyUrl:e.corsProxyUrl&&r(e.corsProxyUrl),hideSidebar:o(e.hideSidebar,!1),jsonSamplesExpandLevel:i(e.jsonSamplesExpandLevel,2),generatedSamplesMaxDepth:p(e.generatedSamplesMaxDepth,8),hideDownloadButtons:o(e.hideDownloadButtons,!1),hideInfoMetadata:o(e.hideInfoMetadata,!1),hideLoading:o(e.hideLoading,!1),hideSchemaTitles:o(e.hideSchemaTitles,!1),maxDisplayedEnumValues:c(e.maxDisplayedEnumValues),mockServer:e.mockServer?.url?{url:e.mockServer.url,position:e.mockServer.position||"first",description:e.mockServer.description||"Mock server"}:void 0,hideReplay:o(e.hideReplay,!1),oAuth2RedirectURI:e.oAuth2RedirectURI,onlyRequiredInSamples:o(e.onlyRequiredInSamples,!1),onDeepLinkClick:e.onDeepLinkClick||a(n.ON_DEEP_LINK_CLICK),routingBasePath:m(e.disableRouter)?"":e.routingBasePath&&h(e.routingBasePath)||"",schemasExpansionLevel:i(e.schemasExpansionLevel),feedback:e.feedback||{hide:!1},sortRequiredPropsFirst:o(e.sortRequiredPropsFirst,!1),scrollYOffset:u(e.scrollYOffset),showExtensions:f(e.showExtensions),sanitize:o(e.sanitize,!1),skipBundle:o(e.skipBundle,!1),ignoreNamedSchemas:new Set(t),markdocOptions:e?.markdocOptions,codeSamples:S(e.codeSamples),layout:e.layout||d.THREE_PANEL,events:e.events||{},unstable_hooks:e.unstable_hooks||a(n.HOOKS)||{},unstable_skipSamples:o(e.unstable_skipSamples,!1),unstable_externalCodeSamples:e.unstable_externalCodeSamples||[],hidePropertiesPrefix:o(e?.hidePropertiesPrefix,!1)}}export{y as normalizeOptions};
|
|
@@ -12,7 +12,7 @@ export interface Options {
|
|
|
12
12
|
feedback: Record<string, any>;
|
|
13
13
|
unstable_hooks: HooksConfig;
|
|
14
14
|
hideReplay: boolean;
|
|
15
|
-
oAuth2RedirectURI
|
|
15
|
+
oAuth2RedirectURI?: string;
|
|
16
16
|
corsProxyUrl?: string;
|
|
17
17
|
sortRequiredPropsFirst: boolean;
|
|
18
18
|
sanitize: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/openapi-docs",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.24.0-next.0",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"npm": ">=10.0.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@redocly/theme": ">=0.
|
|
17
|
+
"@redocly/theme": ">=0.68.0-next.0",
|
|
18
18
|
"react": "^19.2.4",
|
|
19
19
|
"react-dom": "^19.2.4",
|
|
20
20
|
"styled-components": "^4.1.1 || ^5.3.11 || ^6.0.0"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@babel/core": "7.29.7",
|
|
24
24
|
"@markdoc/markdoc": "0.5.2",
|
|
25
|
-
"@redocly/openapi-core": "2.
|
|
25
|
+
"@redocly/openapi-core": "2.39.0",
|
|
26
26
|
"deepmerge": "^4.2.2",
|
|
27
27
|
"dompurify": "3.4.11",
|
|
28
28
|
"fast-deep-equal": "^3.1.3",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"url-template": "^2.0.8",
|
|
40
40
|
"util": "~0.12.5",
|
|
41
41
|
"web-vitals": "3.3.1",
|
|
42
|
-
"@redocly/config": "0.
|
|
42
|
+
"@redocly/config": "0.52.0",
|
|
43
43
|
"@redocly/redoc-opentelemetry": "0.2.2",
|
|
44
|
-
"@redocly/replay": "0.
|
|
44
|
+
"@redocly/replay": "0.27.0-next.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@shikijs/transformers": "3.21.0",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"url": "~0.11.0",
|
|
72
72
|
"vite": "7.3.6",
|
|
73
73
|
"vitest": "4.1.8",
|
|
74
|
-
"@redocly/theme": "0.
|
|
74
|
+
"@redocly/theme": "0.68.0-next.0"
|
|
75
75
|
},
|
|
76
76
|
"scripts": {
|
|
77
77
|
"start": "pnpm run copy-highlight-hook && vite",
|