@redocly/openapi-docs 3.10.0-next.4 → 3.10.0-next.6

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.
Files changed (38) hide show
  1. package/dist/redocly-openapi-docs.min.js +1607 -1584
  2. package/lib/components/ContentItems/useScrollOnRender.d.ts +1 -1
  3. package/lib/components/Download/DownloadSpecification.js +1 -1
  4. package/lib/components/RedoclyOpenAPIDocs/utils.js +1 -1
  5. package/lib/components/RequestSamples/useCodeSamples.d.ts +1 -1
  6. package/lib/components/RequestSamples/useCodeSamples.js +1 -1
  7. package/lib/components/Samples/ExampleSwitch.d.ts +2 -1
  8. package/lib/components/Samples/ExampleSwitch.js +1 -1
  9. package/lib/components/common/Fields/fields.d.ts +1 -1
  10. package/lib/icons/CurlIcon/CurlIcon.d.ts +5 -3
  11. package/lib/icons/CurlIcon/CurlIcon.js +14 -1
  12. package/lib/models/operation.js +1 -1
  13. package/lib/models/schema.js +1 -1
  14. package/lib/models/types.d.ts +29 -7
  15. package/lib/services/code-samples/generator.js +1 -1
  16. package/lib/utils/configure-helpers.d.ts +11 -0
  17. package/lib/utils/configure-helpers.js +2 -0
  18. package/lib/utils/index.d.ts +1 -0
  19. package/lib/utils/index.js +1 -1
  20. package/lib-esm/components/ContentItems/useScrollOnRender.d.ts +1 -1
  21. package/lib-esm/components/Download/DownloadSpecification.js +1 -1
  22. package/lib-esm/components/RedoclyOpenAPIDocs/utils.js +1 -1
  23. package/lib-esm/components/RequestSamples/useCodeSamples.d.ts +1 -1
  24. package/lib-esm/components/RequestSamples/useCodeSamples.js +1 -1
  25. package/lib-esm/components/Samples/ExampleSwitch.d.ts +2 -1
  26. package/lib-esm/components/Samples/ExampleSwitch.js +1 -1
  27. package/lib-esm/components/common/Fields/fields.d.ts +1 -1
  28. package/lib-esm/icons/CurlIcon/CurlIcon.d.ts +5 -3
  29. package/lib-esm/icons/CurlIcon/CurlIcon.js +14 -1
  30. package/lib-esm/models/operation.js +1 -1
  31. package/lib-esm/models/schema.js +1 -1
  32. package/lib-esm/models/types.d.ts +29 -7
  33. package/lib-esm/services/code-samples/generator.js +1 -1
  34. package/lib-esm/utils/configure-helpers.d.ts +11 -0
  35. package/lib-esm/utils/configure-helpers.js +2 -0
  36. package/lib-esm/utils/index.d.ts +1 -0
  37. package/lib-esm/utils/index.js +1 -1
  38. package/package.json +13 -13
@@ -1,2 +1,2 @@
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)}
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),A={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"],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(!A.isCircular&&!A.isComplex&&(hasType(A,"object")||hasType(A,"array")&&hasArrayItems(g)))return buildFields(e,g,b,r,P,o)}};if((g.nullable||g["x-nullable"])&&(Array.isArray(A.type)&&!A.type.some((e=>null===e||"null"===e))?A.type=[...A.type,"null"]:Array.isArray(A.type)||null===A.type&&"null"===A.type||(A.type=[A.type,"null"])),A.displayType=Array.isArray(A.type)?A.type.map((e=>null===e?"null":e)).join(" or "):A.type,A.isCircular)return A;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 A.oneOf=t,A.oneOfType=i,A}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 A.oneOf=t,A.discriminatorProp=i,A}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 A.oneOfType="One of",t&&(A.oneOf=t),A.displayType=i,void 0!==g.anyOf&&console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${b}`),A}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&&(A.oneOf=t),A.displayType=i,A.oneOfType="Any of",A}if(hasType(A,"array")&&(g.items&&!hasArrayItems(g)&&(A.items=getSchema({parser:e,schemaOrRef:g.items,pointer:b+"/items",options:r,baseRefsStack:P,deps:o,absolutePointer:JsonPointer.join(g.absolutePointer||"",["items"])})),A.displayType=g.prefixItems||Array.isArray(g.items)?"items":pluralizeType((null===(p=A.items)||void 0===p?void 0:p.displayType)||A.displayType),A.displayFormat=(null===(d=A.items)||void 0===d?void 0:d.format)||"",A.typePrefix=(null===(m=A.items)||void 0===m?void 0:m.typePrefix)||"Array of ",A.title=A.title||(null===(c=A.items)||void 0===c?void 0:c.title)||"",A.isPrimitive=void 0!==(null===(f=A.items)||void 0===f?void 0:f.isPrimitive)?null===(y=A.items)||void 0===y?void 0:y.isPrimitive:A.isPrimitive,void 0===A.example&&void 0!==(null===(u=A.items)||void 0===u?void 0:u.example)&&(A.example=[A.items.example]),(null===(O=A.items)||void 0===O?void 0:O.isPrimitive)&&(A.enum=A.items.enum,A["x-enumDescriptions"]=getValueFromMdParsedExtension(A.items,"x-enumDescriptions")),Array.isArray(A.type))){const e=A.type.filter((e=>"array"!==e));e.length&&(A.displayType+=` or ${e.join(" or ")}`)}return r.showExtensions&&(A.extensions=extractExtensions(g,r.showExtensions)),A}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)}function hasArrayItems(e){return Boolean(Array.isArray(e.items)||Array.isArray(e.prefixItems))}
2
2
  //# sourceMappingURL=schema.js.map
@@ -5,17 +5,22 @@ import type { OpenAPIParser } from '../services/OpenAPIParser';
5
5
  import type { Options } from '../services/config-options';
6
6
  import type { ExtendedOpenAPIOperation, MenuItemGroupType, MenuItemType, MergedOpenAPISchema, Unstable_ExternalCodeSample } from '../services/types';
7
7
  export type ContentItemModel = GroupModel | OperationMenuItem;
8
- export interface ExtendedOpenAPISecurityScheme extends OpenAPISecurityScheme {
9
- id: string;
10
- sectionId: string;
11
- scopes: string[];
8
+ export interface SecurityCredentials {
12
9
  'x-defaultClientId'?: string;
13
10
  'x-defaultClientSecret'?: string;
14
11
  'x-defaultUsername'?: string;
15
12
  'x-defaultPassword'?: string;
16
- 'x-defaultToken'?: {
17
- access_token: string;
18
- token_type?: string;
13
+ 'x-defaultAccessToken'?: string;
14
+ 'x-defaultTokenType'?: string;
15
+ scopes?: string[];
16
+ }
17
+ export interface ExtendedOpenAPISecurityScheme extends OpenAPISecurityScheme, SecurityCredentials {
18
+ id: string;
19
+ sectionId: string;
20
+ scopes: string[];
21
+ serverUrl?: string;
22
+ serverValues?: {
23
+ [serverUrl: string]: SecurityCredentials;
19
24
  };
20
25
  }
21
26
  export interface SecurityRequirement {
@@ -53,6 +58,12 @@ export type ExampleModel = {
53
58
  encoding?: {
54
59
  [field: string]: OpenAPIEncoding;
55
60
  };
61
+ serverValues?: {
62
+ [serverUrl: string]: {
63
+ value: any;
64
+ rawValue: any;
65
+ };
66
+ };
56
67
  };
57
68
  export type MediaTypeModel = {
58
69
  examples?: {
@@ -111,6 +122,11 @@ export type FieldModel = {
111
122
  fieldFullPath?: string;
112
123
  deps: Deps;
113
124
  absolutePointer?: string;
125
+ serverValues?: {
126
+ [serverUrl: string]: {
127
+ example?: string;
128
+ };
129
+ };
114
130
  [REDOCLY_TEAMS_RBAC]?: Record<string, string>;
115
131
  };
116
132
  export type CallbackModel = {
@@ -155,6 +171,12 @@ export type OperationModel = {
155
171
  parameters: FieldModel[];
156
172
  responses: ResponseModel[];
157
173
  callbacks: CallbackModel[];
174
+ envVariables?: {
175
+ values?: Record<string, string>;
176
+ serverValues?: {
177
+ [serverUrl: string]: Record<string, string>;
178
+ };
179
+ };
158
180
  };
159
181
  export type GroupModel = {
160
182
  id: string;
@@ -1,2 +1,2 @@
1
- import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={},activeMimeName:l=""},{environment:c,requestValues:u,activeSecuritySchemeIds:p}){var d,m,y;const h=c.server,f=e.servers.find((e=>e.url===h))||e.servers[0],g=getSelectedSecurityScheme(e.security,p),{securityHeaders:O,securityCookies:v,securityQueries:S,securityOAuth2ExtraCalls:T,basicAuth:_}=getSecurityData(g||(null===(d=e.security)||void 0===d?void 0:d[0]),r,c),C=(null===(m=null==e?void 0:e.requestBody)||void 0===m?void 0:m.content)&&getActiveMediaType(e.requestBody.content,l),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},k=u;let j=!1;const E=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=k.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||e.example||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=C.name),e))).concat(O);!j&&(null==C?void 0:C.name)&&E.unshift({name:"Content-Type",value:null==C?void 0:C.name});const A=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=k.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),P=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=k.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=k.query)||void 0===r?void 0:r[i]))||String((null===(s=k.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(S),w=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,x=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=k.path)||void 0===a?void 0:a[s])||t.example||n[s]||getParameterValue(r,s),e}),{}),M=null===(y=null==C?void 0:C.examples)||void 0===y?void 0:y[t],R=(null==C?void 0:C.examples)||{},[D]=Object.values(R),q=null==C?void 0:C.name.toLowerCase(),N=(null==k?void 0:k.body)||(null==M?void 0:M.value)||(null==D?void 0:D.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,Object.assign(Object.assign({},b),{format:q===MediaTypes.XML?"xml":"json"}),s);let H="",U=[];switch(normalizeMimeType(q)){case MediaTypes.JSON:H=JSON.stringify(getDataRequest(N,o));break;case MediaTypes.XML:H=N;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:H=queryString.stringify(getDataRequest(N,o)),U=objectToHarParams(getDataRequest(N,o));break;default:H=String(N||"")}const $=H?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:H,params:U}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:w,httpVersion:"HTTP/1.1",cookies:A,headers:E,queryString:P,postData:$,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:T,basicAuth:_,pathParameters:x,serverVariables:c,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n,translate:o}){try{const{skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,store:d,activeMimeName:m}=i,y=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,activeMimeName:m},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(y);return langToSnippetConfig[e]?h.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),i)):o("openapi.unsupportedLanguage","Language is not supported.")}catch(e){return console.error(e),o("openapi.failedToGenerateCodeSample","Failed to generate code sample.")}}function getSecurityData(e,t,a){var r,s,i,n,o;const l={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const c of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(c.id,a),u={access_token:c["x-defaultAccessToken"],token_type:c["x-defaultTokenType"],client_id:c["x-defaultClientId"],client_secret:c["x-defaultClientSecret"]},p=c["x-defaultUsername"],d=c["x-defaultPassword"];switch(c.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${u.token_type||e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";c.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(c.flows.clientCredentials,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))):c.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(c.flows.password,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=u.access_token||e.raw||"YOUR_API_KEY_HERE";"header"===c.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:c.name,value:t})),"cookie"===c.in&&l.securityCookies.push({name:c.name,value:t}),"query"===c.in&&l.securityQueries.push({name:c.name,value:t});break}case"http":if("basic"===c.scheme)l.basicAuth={username:p||e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:d||e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null==u?void 0:u.access_token)||(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${c.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(c.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];for(const[r,s]of Object.entries(e)){const i=t?`${t}[${r}]`:r;if("object"==typeof s&&null!==s)a.push(...objectToHarParams(s,i));else{const r=Array.isArray(e)&&"string"==typeof s&&t?t:i;a.push({name:r,value:String(s)})}}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
1
+ import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:i,generatedPayloadSamplesMaxDepth:s=8,pathParams:n={},properties:l={},activeMimeName:o=""},{environment:u,requestValues:c,activeSecuritySchemeIds:p}){var d,m,v,f,y,h,g,O;const S=u.server,T=e.servers.find((e=>e.url===S))||e.servers[0],b=getSelectedSecurityScheme(e.security,p),{securityHeaders:_,securityCookies:C,securityQueries:j,securityOAuth2ExtraCalls:k,basicAuth:x}=getSecurityData(b||(null===(d=e.security)||void 0===d?void 0:d[0]),r,u),A=(null===(m=null==e?void 0:e.requestBody)||void 0===m?void 0:m.content)&&getActiveMediaType(e.requestBody.content,o),E={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:s,quiet:!0},w=c;let P=!1;const M=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t,a,r;return{name:e.name,value:(null===(t=w.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||(null===(r=null===(a=e.serverValues)||void 0===a?void 0:a[S])||void 0===r?void 0:r.example)||e.example||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,E,i))}})).map((e=>((null==A?void 0:A.name)&&"content-type"===e.name.toLowerCase()&&(P=!0,e.value=A.name),e))).concat(_);!P&&(null==A?void 0:A.name)&&M.unshift({name:"Content-Type",value:null==A?void 0:A.name});const R=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t,a;return queryString.parse(serializeParameterValue(e,(null===(a=null===(t=e.serverValues)||void 0===t?void 0:t[S])||void 0===a?void 0:a.example)||e.example||Sampler.sample(e.schema.rawSchema,E,i)))})).reduce(((e,t)=>{var a;for(const[r,i]of Object.entries(t))e.push({name:r,value:String((null===(a=w.cookie)||void 0===a?void 0:a[r])||i)});return e}),[]).concat(C),D=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t,a;return queryString.parse(serializeParameterValue(e,(null===(a=null===(t=e.serverValues)||void 0===t?void 0:t[S])||void 0===a?void 0:a.example)||e.example||Sampler.sample(e.schema.rawSchema,E,i)))})).reduce(((e,t)=>{var a,r,i;for(const[s,n]of Object.entries(t))e.push({name:s,value:isArrayOfObjects(null===(a=w.query)||void 0===a?void 0:a[s])&&JSON.stringify(deleteEmptyArrayItem(null===(r=w.query)||void 0===r?void 0:r[s]))||String((null===(i=w.query)||void 0===i?void 0:i[s])||n)});return e}),[]).concat(j),N=`${null==T?void 0:T.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,q=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a,r,i;const{in:s,name:l}=t;return e[l]=(null===(a=w.path)||void 0===a?void 0:a[l])||(null===(i=null===(r=t.serverValues)||void 0===r?void 0:r[S])||void 0===i?void 0:i.example)||t.example||n[l]||getParameterValue(s,l),e}),{}),H=null==A?void 0:A.name.toLowerCase(),U=H===MediaTypes.MULTIPART||H===MediaTypes.URL_ENCODED,V=U?null===(v=null==A?void 0:A.formExamples)||void 0===v?void 0:v[t]:null===(f=null==A?void 0:A.examples)||void 0===f?void 0:f[t],I=U?(null==A?void 0:A.formExamples)||{}:(null==A?void 0:A.examples)||{},[L]=Object.values(I),$=(null===(h=null===(y=null==V?void 0:V.serverValues)||void 0===y?void 0:y[S])||void 0===h?void 0:h.value)||(null===(O=null===(g=null==L?void 0:L.serverValues)||void 0===g?void 0:g[S])||void 0===O?void 0:O.value),z=e=>{var t;return e&&"object"==typeof e&&(null===(t=null==A?void 0:A.schema)||void 0===t?void 0:t.rawSchema)?Sampler.sample(populateXmlSchemaFields(A.schema.rawSchema,e),Object.assign(Object.assign({},E),{format:"xml"}),i):null},J=(()=>{if(null==w?void 0:w.body)return w.body;if(H!==MediaTypes.XML)return $||(null==V?void 0:V.value)||(null==L?void 0:L.value)||(null==A?void 0:A.schema)&&Sampler.sample(A.schema.rawSchema,Object.assign(Object.assign({},E),{format:"json"}),i);{const e=z($)||z(null==V?void 0:V.value)||z(null==L?void 0:L.value);if(e)return e;if(null==A?void 0:A.schema)return Sampler.sample(A.schema.rawSchema,Object.assign(Object.assign({},E),{format:"xml"}),i)}return""})();let Y="",B=[];switch(normalizeMimeType(H)){case MediaTypes.JSON:Y=JSON.stringify(getDataRequest(J,l));break;case MediaTypes.XML:Y=J;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:Y=queryString.stringify(getDataRequest(J,l)),B=objectToHarParams(getDataRequest(J,l));break;default:Y=String(J||"")}const F=Y?{mimeType:(null==A?void 0:A.name)||MediaTypes.OCTET_STREAM,text:Y,params:B}:void 0,K=e.responses.map((e=>e.code));return{method:e.httpVerb,url:N,httpVersion:"HTTP/1.1",cookies:R,headers:M,queryString:D,postData:F,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:k,basicAuth:x,pathParameters:q,serverVariables:u,allResponseCodes:K}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:i,options:s={},environment:n,translate:l}){try{const{skipOptionalParameters:o,withOAuth2Call:u,spec:c,generatedPayloadSamplesMaxDepth:p,store:d,activeMimeName:m}=s,v=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:i,skipOptionalParameters:o,withOAuth2Call:u,spec:c,generatedPayloadSamplesMaxDepth:p,activeMimeName:m},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),f=new HTTPSnippet(v);return langToSnippetConfig[e]?f.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),s)):l("openapi.unsupportedLanguage","Language is not supported.")}catch(e){return console.error(e),l("openapi.failedToGenerateCodeSample","Failed to generate code sample.")}}function getSecurityData(e,t,a){var r,i,s,n,l;const o={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0},u=null==a?void 0:a.server;for(const c of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(c.id,a),p=u&&c.serverValues&&c.serverValues[u],d={access_token:(null==p?void 0:p["x-defaultAccessToken"])||c["x-defaultAccessToken"],token_type:(null==p?void 0:p["x-defaultTokenType"])||c["x-defaultTokenType"],client_id:(null==p?void 0:p["x-defaultClientId"])||c["x-defaultClientId"],client_secret:(null==p?void 0:p["x-defaultClientSecret"])||c["x-defaultClientSecret"]},m=(null==p?void 0:p["x-defaultUsername"])||c["x-defaultUsername"],v=(null==p?void 0:p["x-defaultPassword"])||c["x-defaultPassword"],f=p&&"scopes"in p?p.scopes||[]:c.scopes||[];switch(c.type){case"openIdConnect":null===(r=o.securityHeaders)||void 0===r||r.push({name:"Authorization",value:d.access_token?`${d.token_type||"Bearer"} ${d.access_token}`:e.token?`${d.token_type||e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=d.access_token?`${d.token_type||"Bearer"} ${d.access_token}`:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";c.flows.clientCredentials&&t?o.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(c.flows.clientCredentials,f,Object.assign(Object.assign({},e),{client_id:d.client_id||e.client_id,client_secret:d.client_secret||e.client_secret}))):c.flows.password&&t&&o.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(c.flows.password,f,Object.assign(Object.assign({},e),{client_id:d.client_id||e.client_id,client_secret:d.client_secret||e.client_secret}))),null===(i=o.securityHeaders)||void 0===i||i.push({name:"Authorization",value:a});break}case"apiKey":{const t=d.access_token||e.raw||"YOUR_API_KEY_HERE";"header"===c.in&&(null===(s=o.securityHeaders)||void 0===s||s.push({name:c.name,value:t})),"cookie"===c.in&&o.securityCookies.push({name:c.name,value:t}),"query"===c.in&&o.securityQueries.push({name:c.name,value:t});break}case"http":if("basic"===c.scheme)o.basicAuth={username:m||e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:v||e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null==d?void 0:d.access_token)||(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${c.bearerFormat||"TOKEN"}_HERE>`;null===(l=o.securityHeaders)||void 0===l||l.push({name:"Authorization",value:`${capitalizeFirst(c.scheme||"bearer")} ${t}`})}}}return o}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];for(const[r,i]of Object.entries(e)){const s=t?`${t}[${r}]`:r;if("object"==typeof i&&null!==i)a.push(...objectToHarParams(i,s));else{const r=Array.isArray(e)&&"string"==typeof i&&t?t:s;a.push({name:r,value:String(i)})}}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}function populateXmlSchemaFields(e,t){if(!e||"object"!=typeof e||!t||"object"!=typeof t)return e;const a=JSON.parse(JSON.stringify(e));return function e(t,a){if(t&&a&&"object"==typeof t&&"object"==typeof a&&t.properties)for(const r in t.properties)if(void 0!==a[r]){const i=t.properties[r],s=a[r];if("object"!==i.type||"object"!=typeof s||Array.isArray(s))if("array"===i.type&&Array.isArray(s)&&s.length>0){const t=s[0];i.items&&i.items.properties&&e(i.items,t)}else i.example=s;else e(i,s)}}(a,t),a}
2
2
  //# sourceMappingURL=generator.js.map
@@ -0,0 +1,11 @@
1
+ import type { OperationModel, SecurityCredentials, FieldModel } from '../models/types';
2
+ import type { ConfigureRequestValues, ConfigureServerRequestValues, SecurityDetails } from '@redocly/theme';
3
+ export declare function updateOperationWithRequestValues(operation: OperationModel, userDefinedRequestValues: ConfigureRequestValues | ConfigureServerRequestValues): void;
4
+ export declare function updateParametersWithUserValues(param: FieldModel, userDefinedRequestValues?: ConfigureRequestValues | ConfigureServerRequestValues): void;
5
+ export declare function updateRequestBodyWithUserValues(operation: OperationModel, userDefinedRequestValues: ConfigureRequestValues, serverUrl?: string): OperationModel | undefined;
6
+ export declare function updateSecurityWithUserValues(operation: OperationModel, securityValues?: SecurityDetails, serverUrl?: string): void;
7
+ export declare function updateOperationWithServerUserValues(operation: OperationModel, serverRequestValues: ConfigureServerRequestValues): void;
8
+ export declare function updateEnvVariablesWithUserValues(operation: OperationModel, environmentValues?: Record<string, string>, serverUrl?: string): void;
9
+ export declare function isDirectRequestValues(value: any): value is ConfigureRequestValues;
10
+ export declare function updateObjectProperties(original: any, updates: any): any;
11
+ export declare function createSecurityUpdates(scheme: any, securityValues: SecurityDetails): SecurityCredentials;
@@ -0,0 +1,2 @@
1
+ import{isObject}from"@redocly/theme";export function updateOperationWithRequestValues(e,t){if(0!==Object.keys(t).length)if(isDirectRequestValues(t))updateRequestBodyWithUserValues(e,t),updateSecurityWithUserValues(e,t.security),updateEnvVariablesWithUserValues(e,t.envVariables);else{updateOperationWithServerUserValues(e,t)}}export function updateParametersWithUserValues(e,t){var s;if(!t)return;const{in:r,name:a}=e;if(isDirectRequestValues(t)){const i=t,u={header:i.headers,query:i.query,path:i.path,cookie:i.cookie};r&&(null===(s=u[r])||void 0===s?void 0:s[a])&&(e.example=u[r][a])}else Object.entries(t).forEach((([t,s])=>{var i;const u=s;if(!u)return;const n={header:u.headers,query:u.query,path:u.path,cookie:u.cookie};r&&(null===(i=n[r])||void 0===i?void 0:i[a])&&(e.serverValues||(e.serverValues={}),e.serverValues[t]={example:n[r][a]})}))}export function updateRequestBodyWithUserValues(e,t,s){if(!e.requestBody||!(null==t?void 0:t.body))return;const r=e.requestBody.content;if(!(null==r?void 0:r.mediaTypes))return;const a=(e,r)=>{e[r]&&Object.keys(e[r]).forEach((a=>{var i,u;const n=null===(u=null===(i=e[r])||void 0===i?void 0:i[a])||void 0===u?void 0:u.value;let o;if(o=isObject(n)?updateObjectProperties(n,t.body):t.body,o)if(s){const t=e[r][a];t.serverValues||(t.serverValues={}),t.serverValues[s]={value:o,rawValue:o},e[r][a]=Object.assign(Object.assign({},t),{mime:e.name})}else e[r][a]={value:o,rawValue:o,mime:e.name}}))};for(const e of r.mediaTypes)a(e,"examples"),a(e,"formExamples");return e}export function updateSecurityWithUserValues(e,t,s){t&&e.security.length&&e.security.forEach((e=>{s?e.schemes.forEach((e=>{e.serverValues||(e.serverValues={});const r=createSecurityUpdates(e,t);e.serverValues[s]=r})):e.schemes.forEach((e=>{const s=createSecurityUpdates(e,t);Object.assign(e,s)}))}))}export function updateOperationWithServerUserValues(e,t){e.servers.forEach((s=>{if(t[s.url]){const r=t[s.url];r&&(updateRequestBodyWithUserValues(e,r,s.url),updateSecurityWithUserValues(e,r.security,s.url),updateEnvVariablesWithUserValues(e,r.envVariables,s.url))}}))}export function updateEnvVariablesWithUserValues(e,t,s){t&&0!==Object.keys(t).length&&(e.envVariables||(e.envVariables={}),s?(e.envVariables.serverValues||(e.envVariables.serverValues={}),e.envVariables.serverValues[s]=Object.assign(Object.assign({},e.envVariables.serverValues[s]),t)):e.envVariables.values=Object.assign(Object.assign({},e.envVariables.values),t))}export function isDirectRequestValues(e){return!(!e||"object"!=typeof e)&&("headers"in e||"body"in e||"query"in e||"path"in e||"cookie"in e||"security"in e||"envVariables"in e)}export function updateObjectProperties(e,t){if(!e||"object"!=typeof e)return t;if(Array.isArray(e)&&Array.isArray(t)){if(e.length>0&&"object"==typeof e[0]&&null!==e[0]){const s=Object.keys(e[0]),r=t.filter((e=>"object"==typeof e&&null!==e&&(s.some((t=>t in e))&&Object.keys(e).every((e=>s.includes(e))))));return r.length>0?r:e}return t}const s=Array.isArray(e)?[...e]:Object.assign({},e);for(const[r,a]of Object.entries(t))r in e&&(Array.isArray(e[r])||"object"==typeof a&&null!==a&&"object"==typeof e[r]?s[r]=updateObjectProperties(e[r],a):s[r]=a);return s}export function createSecurityUpdates(e,t){var s,r,a;const i={"x-defaultAccessToken":null===(s=t.token)||void 0===s?void 0:s.access_token,"x-defaultTokenType":(null===(r=t.token)||void 0===r?void 0:r.token_type)||"Bearer","x-defaultClientId":t.client_id,"x-defaultClientSecret":t.client_secret,scopes:t.scopes||e.scopes};return"http"===e.type&&"basic"===e.scheme?(i["x-defaultUsername"]=t.username,i["x-defaultPassword"]=t.password,delete i["x-defaultAccessToken"],delete i["x-defaultTokenType"]):"oauth2"!==e.type||(null===(a=t.token)||void 0===a?void 0:a.access_token)||(delete i["x-defaultAccessToken"],delete i["x-defaultTokenType"]),i}
2
+ //# sourceMappingURL=configure-helpers.js.map
@@ -20,3 +20,4 @@ export * from './queryString';
20
20
  export * from './isMobile';
21
21
  export * from './replaceVariables';
22
22
  export * from './areArraysEqual';
23
+ export * from './configure-helpers';
@@ -1,2 +1,2 @@
1
- export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";export*from"./areArraysEqual";
1
+ export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";export*from"./areArraysEqual";export*from"./configure-helpers";
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.10.0-next.4",
3
+ "version": "3.10.0-next.6",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -18,8 +18,8 @@
18
18
  "peerDependencies": {
19
19
  "@redocly/theme": ">=0.54.0-next.0",
20
20
  "core-js": "^3.1.4",
21
- "react": "^18.0.0",
22
- "react-dom": "^18.0.0",
21
+ "react": "^19.1.0",
22
+ "react-dom": "^19.1.0",
23
23
  "styled-components": "^4.1.1 || ^5.3.11"
24
24
  },
25
25
  "dependencies": {
@@ -46,20 +46,20 @@
46
46
  "util": "~0.12.5",
47
47
  "web-vitals": "3.3.1",
48
48
  "@redocly/config": "0.24.1",
49
- "@redocly/replay": "0.13.0-next.3"
49
+ "@redocly/replay": "0.13.0-next.5"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@shikijs/transformers": "1.24.0",
53
- "@testing-library/jest-dom": "6.1.5",
54
- "@testing-library/react": "15.0.6",
55
- "@testing-library/user-event": "14.5.1",
53
+ "@testing-library/jest-dom": "6.6.3",
54
+ "@testing-library/react": "16.3.0",
55
+ "@testing-library/user-event": "14.6.1",
56
56
  "@types/jest": "29.5.11",
57
57
  "@types/jest-when": "3.5.5",
58
58
  "@types/json-pointer": "1.0.34",
59
59
  "@types/json-schema": "^7.0.15",
60
60
  "@types/node": "22.15.3",
61
- "@types/react": "18.3.9",
62
- "@types/react-dom": "18.3.5",
61
+ "@types/react": "^19.1.4",
62
+ "@types/react-dom": "^19.1.4",
63
63
  "@types/styled-components": "5.1.34",
64
64
  "@types/webpack": "5.28.5",
65
65
  "@types/webpack-env": "1.18.5",
@@ -77,9 +77,9 @@
77
77
  "json-schema": "0.4.0",
78
78
  "outdent": "0.8.0",
79
79
  "prettier-2": "npm:prettier@2.8.8",
80
- "react": "18.3.1",
81
- "react-dom": "18.3.1",
82
- "react-is": "18.3.1",
80
+ "react": "^19.1.0",
81
+ "react-dom": "^19.1.0",
82
+ "react-is": "19.1.0",
83
83
  "rimraf": "5.0.7",
84
84
  "shiki": "1.24.4",
85
85
  "string-replace-loader": "3.1.0",
@@ -92,7 +92,7 @@
92
92
  "webpack": "5.94.0",
93
93
  "webpack-cli": "5.1.4",
94
94
  "webpack-dev-server": "5.1.0",
95
- "@redocly/theme": "0.54.0-next.3"
95
+ "@redocly/theme": "0.54.0-next.5"
96
96
  },
97
97
  "scripts": {
98
98
  "start": "npm run copy-highlight-hook && webpack serve --mode=development --hot",