@redocly/mock-server 0.3.16 → 0.4.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/dist/bin.js +1 -1
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -254,7 +254,7 @@ ${JSON.stringify(r,null,2)}`);qe(t.rules,r.rules),qe(t.oas2Rules,r.oas2Rules),Ke
|
|
|
254
254
|
`);let o=r===void 0?await n.resolveDocument(i,t,!0):r;if(o instanceof Error)throw o;return(s=e.collectSpecData)==null||s.call(e,o.parsed),Sb({document:o,...e,externalRefResolver:n,types:Gi(oi(o.parsed))})}var Ob={};var _b=new Map;async function VR({rawConfigDocument:e,configPath:t,externalRefResolver:r,customExtends:n}){var m;let i=e===void 0?ZP:e.parsed;if(n!==void 0&&Y(i)&&(i.extends=n),Y(i)&&((m=i==null?void 0:i.extends)!=null&&m.some(AR)))throw new Error("Configuration format not detected in extends: values must be strings.");let o=e!=null?e:{source:new wi(t!=null?t:"",JSON.stringify(i)),parsed:i},s=await bo({rootDocument:o,rootType:ri.ConfigRoot,externalRefResolver:r!=null?r:new jn(Uu(i==null?void 0:i.resolve))}),a=[],c,l="";vt?c=[...((i==null?void 0:i.plugins)||[]).filter(f=>!lt(f)),mb]:(l=mr.dirname(t!=null?t:""),a=DR(o,s,l),c=[...await zR(a.map(f=>BR(f)?f.absolutePath:f),l),mb]);let u=FR(o,NR(s),c);u.apis&&(u.apis=Object.fromEntries(Object.entries(u.apis).map(([d,f])=>{let h=xf([u,f]);return[d,{...f,...h}]})));let p=a.length?a.map(d=>BR(d)&&d.isModule?d.rawPath:d.absolutePath&&mr.relative(l,d.absolutePath)).filter(hs):void 0;return{resolvedConfig:{...u,plugins:p},resolvedRefMap:s,plugins:c}}function LW(e){for(let t of tE){let r=mr.resolve(e,t);if(Pb.existsSync(r))return t}}function BR(e){return"isModule"in e}var vb=(e,t,r)=>{var i;if(!lt(e))return e;let n=mr.resolve(mr.dirname(t),e);return Pb.existsSync(n)?{absolutePath:n,rawPath:e,isModule:!1}:{absolutePath:UR.default.createRequire((i=Ob.url)!=null?i:__dirname).resolve(e,{paths:[r,Ob.url?mr.dirname(_f.fileURLToPath(Ob.url)):__dirname]}),isModule:!0,rawPath:e}};async function zR(e,t){if(!e)return[];let r=async a=>{var c;if(!lt(a))return a;try{let l=mr.isAbsolute(a)?a:vb(a,mr.join(t,pg),t).absolutePath;if(!_b.has(l)){let u;if(typeof __webpack_require__=="function")u=__non_webpack_require__(l);else{let h=await Promise.resolve().then(()=>Te(require(_f.pathToFileURL(l).pathname)));u=h.default||h}let p={contentDir:t},m=Array.isArray(u)?u:[u];for(let h of m)h!=null&&h.id&&hb(h)&&js.info(`Deprecated plugin format detected: ${h.id}
|
|
255
255
|
`);let d=hb(u)?u:IR(u)?await u(p):await((c=u==null?void 0:u.default)==null?void 0:c.call(u,p)),f=Array.isArray(d)?d:[d];d&&_b.set(l,f.map(h=>({...h,path:a,absolutePath:l})))}return _b.get(l)}catch(l){throw new Error(`Failed to load plugin "${a}": ${l.message}
|
|
256
256
|
|
|
257
|
-
${l.stack}`)}},n=new Map,i=LW(t);i&&e.push(i);let o=new Set;return(await Promise.all(e.map(async a=>{if(lt(a)){if(We(a))throw new Error(He.red("We don't support remote plugins yet."));if(o.has(a))return;o.add(a)}let c=await r(a);if(!c)return;let l=Array.isArray(c)?c:[c];return(await Promise.all(l.map(async u=>{var h;if(!u)return;let p=u.id;if(typeof p!="string")throw new Error(He.red(`Plugin must define \`id\` property in ${He.blue(a.toString())}.`));let m=(h=u.absolutePath)!=null?h:a.toString(),d=n.get(p);if(d){if(m!==d)throw new Error(He.red(`Plugin "id" must be unique. Plugin ${He.blue(m)} uses id "${He.blue(p)}" already seen in ${He.blue(m)}`));return}n.set(p,m);let f={id:p,...u.configs?{configs:u.configs}:{},...u.typeExtension?{typeExtension:u.typeExtension}:{}};if(u.rules){if(!u.rules.oas3&&!u.rules.oas2&&!u.rules.async2&&!u.rules.async3&&!u.rules.arazzo1&&!u.rules.overlay1)throw new Error(`Plugin rules must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo\`, or \`overlay1\` rules "${a}.`);f.rules={},u.rules.oas3&&(f.rules.oas3=mt(u.rules.oas3,p)),u.rules.oas2&&(f.rules.oas2=mt(u.rules.oas2,p)),u.rules.async2&&(f.rules.async2=mt(u.rules.async2,p)),u.rules.async3&&(f.rules.async3=mt(u.rules.async3,p)),u.rules.arazzo1&&(f.rules.arazzo1=mt(u.rules.arazzo1,p)),u.rules.overlay1&&(f.rules.overlay1=mt(u.rules.overlay1,p))}if(u.preprocessors){if(!u.preprocessors.oas3&&!u.preprocessors.oas2&&!u.preprocessors.async2&&!u.preprocessors.async3&&!u.preprocessors.arazzo1&&!u.preprocessors.overlay1)throw new Error(`Plugin \`preprocessors\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` preprocessors "${a}.`);f.preprocessors={},u.preprocessors.oas3&&(f.preprocessors.oas3=mt(u.preprocessors.oas3,p)),u.preprocessors.oas2&&(f.preprocessors.oas2=mt(u.preprocessors.oas2,p)),u.preprocessors.async2&&(f.preprocessors.async2=mt(u.preprocessors.async2,p)),u.preprocessors.async3&&(f.preprocessors.async3=mt(u.preprocessors.async3,p)),u.preprocessors.arazzo1&&(f.preprocessors.arazzo1=mt(u.preprocessors.arazzo1,p)),u.preprocessors.overlay1&&(f.preprocessors.overlay1=mt(u.preprocessors.overlay1,p))}if(u.decorators){if(!u.decorators.oas3&&!u.decorators.oas2&&!u.decorators.async2&&!u.decorators.async3&&!u.decorators.arazzo1&&!u.decorators.overlay1)throw new Error(`Plugin \`decorators\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` decorators "${a}.`);f.decorators={},u.decorators.oas3&&(f.decorators.oas3=mt(u.decorators.oas3,p)),u.decorators.oas2&&(f.decorators.oas2=mt(u.decorators.oas2,p)),u.decorators.async2&&(f.decorators.async2=mt(u.decorators.async2,p)),u.decorators.async3&&(f.decorators.async3=mt(u.decorators.async3,p)),u.decorators.arazzo1&&(f.decorators.arazzo1=mt(u.decorators.arazzo1,p)),u.decorators.overlay1&&(f.decorators.overlay1=mt(u.decorators.overlay1,p))}return u.assertions&&(f.assertions=u.assertions),{...u,...f}}))).filter(hs)}))).filter(hs).flat()}function qR(e,t){var s;let{pluginId:r,configName:n}=TR(e),i=t.find(a=>a.id===r);if(!i)throw new Error(`Invalid config ${He.red(e)}: plugin ${r} is not included.`);let o=(s=i.configs)==null?void 0:s[n];if(!o)throw new Error(r?`Invalid config ${He.red(e)}: plugin ${r} doesn't export config with name ${n}.`:`Invalid config ${He.red(e)}: there is no such built-in config.`);return o}async function Eb(e,{configPath:t,externalRefResolver:r}={}){let i=Mc(typeof e=="string"?e:"",t!=null?t:"");typeof e!="string"&&e&&(i.parsed=e);let{resolvedConfig:o,resolvedRefMap:s,plugins:a}=await VR({rawConfigDocument:DW(i),configPath:t,externalRefResolver:r});return new ic(o,{configPath:t,document:i,resolvedRefMap:s,plugins:a})}function DW(e){if(!e.parsed)return e;let{plugins:t,resolve:r,...n}=e.parsed,i={...structuredClone(n),plugins:t==null?void 0:t.slice(),...r&&{resolve:{...r}}};return{...e,parsed:i}}var p2=Te(u2(),1);var z0e={warn:e=>He.bgYellow(He.black(e)),error:He.bgRed},H0e={warn:He.yellow,error:He.red};var f2,K0e=+((f2=Pl.REDOCLY_CLI_LINT_MAX_SUGGESTIONS)!=null?f2:5);var d2=Te(jm(),1);delete d2.rootRedoclyConfigSchema.properties.theme;async function m2(e){let t={config:await Eb({}),dereference:!0};if(typeof e=="string"&&(t.ref=e),typeof e=="object"){if(e["x-redocly-dereferenced"])return e;t.doc={source:{absoluteRef:"/"},parsed:e}}let{bundle:{parsed:r}}=await wb(t);return Y(r)?(r["x-redocly-dereferenced"]=!0,r):{}}var fk=Te(pk());async function dk(e){return Wte(e)?Xte(e):e}function Wte(e){return e.swagger!==void 0}async function Xte(e){let{openapi:t}=await fk.convertObj(e,{patch:!0,warnOnly:!0,text:"{}",anchors:!0});return t}function mk(e){let{responses:t}=e;if(!t)throw new je("Operation does not specify any response.");return Jte(t)||Qte(t)||Zte(t)}function Jte(e){let t=Object.keys(e).filter(n=>Number(n)>=200&&Number(n)<300).sort()[0];return t?{...e[t],statusCode:Number(t)}:null}function Qte(e){let t=e.default;return t?{...t,statusCode:200}:null}function Zte(e){let t=Object.keys(e)[0];return{...e[t],statusCode:Number(t)}}var hk=e=>{return r=>{let n=["message","error","summary","description","detail","title","problem","failure","fault"];if(typeof r=="object"&&!Array.isArray(r)){for(let i of n)if(t(r,i,1))break}};function t(r,n,i){if(typeof r[n]=="string"||r[n]===null)return r[n]=e.message,!0;for(let o of Object.keys(r)){let s=Array.isArray(r[o])?r[o][0]:r[o];if(typeof s=="object"&&s!==null&&!Array.isArray(s)&&i<3)return t(s,n,i+1)}return!1}};var yk=e=>t=>{if(!t||!e)return;typeof t=="object"&&typeof e=="object"&&r(t,e);function r(n,i){Object.keys(n).forEach(o=>{let s=n[o],a=i[o];if(a==null||!(typeof s==typeof a))return;if(["string","number","boolean"].includes(typeof a)){n[o]=i[o];return}return r(s,a)})}};var ere="Validation Error: The forced X-Redocly-Response-Status header's value should be a number.",tre="Range Error: Status code is out of range in forced X-Redocly-Response-Status header.";function gk(e){let t=Number(e["x-redocly-response-status"]);if(isNaN(t))throw new je(ere);if(t<100||t>999)throw new je(tre);return t}function la(e){return e["x-redocly-response-body-example"]}function yl(e,t=!1){let r={};for(let n=0;n<e.length;n+=2){let i=t?e[n].toLowerCase():e[n],o=e[n+1];r[i]=o}return r}function Pd(e,t){let r={};for(let n of e){let[i,o]=n.split(t);r[i]=o}return r}function bk(e,t,r){if((r==null?void 0:r.type)==="array")return e?e.split(","):[];if((r==null?void 0:r.type)==="object"){let n=e.split(",");return t?Pd(n,"="):yl(n)}return e}function vk(e){return e!=null&&typeof e=="object"}function xk(e,t){return Array.isArray(e)?rre(e):vk(e)?nre(e,t):ire(e)}function rre(e){return e.join(",")}function nre(e,t){let r=t?"=":",";return Object.entries(e).map(n=>n.join(r)).join(",")}function ire(e){return String(e)}function Sk(e,t,r){switch(t){case"simple":return xk(e,r);default:throw new je(`Serialization style ${t} is not supported.`)}}function wk(e,t,r){if(!e)return;let n=r==null?void 0:r.type;return n==="array"?t?ore(e):sre(e):n==="object"?t?are(e):cre(e):Array.isArray(e)?e[e.length-1]:e}function ore(e){return Array.isArray(e)?e:[e]}function sre(e){return(Array.isArray(e)?e.pop():e).split(",")}function are(e){let t=Array.isArray(e)?e.join(""):e;return Pd(t.split("&"),"=")}function cre(e){let t=(Array.isArray(e)?e.pop()||"":e).split(",");return yl(t)}function _k(e,t,r,n){if(r==="simple")return bk(e,n,t);if(r==="form")return wk(e,n,t);throw new je(`Deserialization style ${r} is not supported.`)}var at=class extends Error{constructor(r,n){super(n);this.statusCodes=r;this.message=n}},Ed=class extends at{constructor(r){super([404,400],`Path ${r} not found`);this.path=r}},$d=class extends at{constructor(r,n){super([405,400],`Method "${r}" is not supported by the target path "${n}"`);this.method=r;this.path=n}},Ad=class extends at{constructor(){super([400,422],"Body is required, but it is missing from the request")}},Cd=class extends at{constructor(){super([400],"Body is required, but the Content-Type header is missing from the request")}},Rd=class extends at{constructor(r,n){super([400,422],`Required ${r} parameter "${n}" is missing`);this.paramType=r;this.paramName=n}},Td=class extends at{constructor(r){super([415,400],`Media type "${r}" is not supported`);this.mediaType=r}},Nd=class extends at{constructor(r,n,i){super([422,400],`Error validating ${r} parameter "${n}". ${i}`);this.paramType=r;this.paramName=n;this.validationError=i}},Id=class extends at{constructor(r){super([422,400],`Error validating body. ${r}`);this.validationError=r}},kd=class extends at{constructor(r){super([401,400],`Not authenticated. Supported authentication types: ${r}.`);this.authenticationTypes=r}},je=class extends at{constructor(t){super([500],`Mock server error. ${t}`)}},qd=class extends at{constructor(t){super([400],`Body deserialization error. ${t}`)}},jd=class extends at{constructor(t){super([400],`Parameter deserialization error. ${t}`)}};function N1(e){return JSON.stringify(e)}function Bi(e,t="utf-8"){let r=N1(e);return Buffer.from(r,t)}function I1(e){return String(e)}function Ok(e,t){let r=I1(e);return Buffer.from(r,t)}function Pk(e){return typeof e=="string"?e:JSON.stringify(e)}function Ek(e,t){return Buffer.from(e,t)}function $k(e,t){var r;if(t.type==="application/json"||(r=t.type)!=null&&r.endsWith("+json"))return N1(e);if(t.type==="text/plain")return I1(e);if(t.type==="application/xml")return Pk(e);throw new je(`Media type ${t.type} is not supported.`)}function k1(e,t){var n;let r=t.parameters.charset||"utf-8";if(t.type==="application/json"||(n=t.type)!=null&&n.endsWith("+json")||t.type==="*/*")return Bi(e);if(t.type==="text/plain")return Ok(e,r);if(t.type==="application/xml")return Ek(e,r);throw new je(`Media type ${t.type} is not supported.`)}function Ak(e,t){let r=q1(e.toString(t));return ure(lre(r))}function q1(e){let t={};for(let r of e.split("&")){let[n,...i]=r.split("="),o=i.length>0?i.join("="):void 0;t[n]===void 0&&(t[n]=[]),o&&t[n].push(o)}return t}function lre(e){let t={};for(let[r,n]of Object.entries(e))t[decodeURIComponent(r)]=n.map(decodeURIComponent);return t}function ure(e){let t={};for(let r of Object.keys(e)){let n=r.match(/[^[]*/i);if(!n)continue;let i=r.match(/\[.*?\]/g)||[];i=[n[0]].concat(i).map(function(s){return s.replace(/\[|\]/g,"")});let o=t;for(;i.length;){let s=i.shift();s&&(s in o||(o[s]=i.length?isNaN(+i[0])&&{}||[]:e[r].join("")),o=o[s])}}return t}function Ck(e,t){return JSON.parse(e.toString(t))}function Rk(e,t){return e.toString(t)}function Tk(e,t){return e.toString(t)}function Nk(e,t){let r=t.type,n=t.parameters.charset;if(r==="text/plain")return Rk(e,n);if(r==="application/json"||r!=null&&r.endsWith("+json"))return Ck(e,n);if(r==="application/x-www-form-urlencoded")return Ak(e,n);if(r==="application/xml")return Tk(e,n);throw new je(`Media type ${t.type} deserialization is not supported.`)}var Ik=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,pre=/\\([\u000b\u0020-\u00ff])/g,fre=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function Ui(e){if(!e)throw new Error("argument mediaType is required");let t=e.indexOf(";"),r=t!==-1?e.substring(0,t).trim():e.trim();if(!fre.test(r))throw new Error("invalid media type");let n={};if(t!==-1){let i,o,s;for(Ik.lastIndex=t;o=Ik.exec(e);){if(o.index!==t)throw new Error("invalid parameter format");t+=o[0].length,i=o[1].toLowerCase(),s=o[2],s[0]==='"'&&(s=s.substring(1,s.length-2).replace(pre,"$1")),n[i]=s}if(t!==e.length)throw new Error("invalid parameter format")}return{type:r,parameters:n}}var jk=Te(qk());function gl(e,t){return jk.sample(e,{quiet:!0,format:(t==null?void 0:t.type)==="application/xml"?"xml":"json"})}var dre="The desired example was not found";function Mk(e,t,r){var i;let n=t&&e&&t[e];if(n)return n.value;if(e&&r)throw new je(dre);return t&&((i=Object.values(t)[0])==null?void 0:i.value)}var Lk=["application/json","application/xml","text/plain","application/vnd.api+json","application/problem+json","*/*"];function Dk(e){return e.split(";")[0]}function mre(e,t){return e&&Lk.includes(e)?e:t.length?t.find(r=>Lk.includes(Dk(r))):"application/json"}function Fk(e,t){let r=Object.keys(e),n=mre(t,r);if(!n)throw new je("Could not generate response. No supported media type found in definition.");return{...e[n],mediaType:Dk(n)}}function Bk(e,t,r){let{mediaType:n,schema:i,example:o,examples:s}=Fk(e,t==null?void 0:t.contentType),a=Ui(n),c=t==null?void 0:t.exampleId,l=Mk(c,s,r==null?void 0:r.errorIfForcedExampleNotFound)||o;if(l&&(r!=null&&r.strictExamples))return{mediaType:n,data:k1(l,a)};let u=l||gl(i,a);return t!=null&&t.enhancers&&t.enhancers.forEach(p=>p(u)),{mediaType:n,data:k1(u,a)}}function M1(e,t){var r;return e||t&&((r=Object.values(t)[0])==null?void 0:r.value)}function Uk(e){let{schema:t,content:r}=e;if(t)return hre(t,e);if(r)return yre(r);throw new je("Response header specifies no schema nor content.")}function hre(e,t){let{example:r,examples:n,style:i="simple",explode:o=!0}=t,s=M1(r,n)||gl(e);return Sk(s,i,o)}function yre(e){let[[t,r]]=Object.entries(e),{example:n,examples:i,schema:o}=r,s=Ui(t),a=M1(n,i)||gl(o);return $k(a,s)}function ua(e,t,r){let{statusCode:n,headers:i,content:o}=e,s=o&&Bk(o,t,r),a=gre(i,s==null?void 0:s.mediaType);return{statusCode:n,headers:a,body:s==null?void 0:s.data}}function gre(e,t){let r=e&&bre(e),n={...t&&{"Content-Type":t}};return{...r,...n}}function bre(e){let t=Object.entries(e).map(([r,n])=>[r,Uk(n)]);return Object.fromEntries(t)}function Vk(e,t,r,n){var a;let i=mk(r),o=la(t),s=[];return e.requestBody&&s.push(yk(e.requestBody)),ua(i,{exampleId:o,enhancers:s,contentType:(a=e==null?void 0:e.headers)==null?void 0:a["content-type"]},n)}function bl(e,t){return{statusCode:e,body:Bi({message:t}),headers:{"Content-Type":"application/json"}}}function zk(e,t){let{responses:r}=e;if(!r)return null;let n=t.find(i=>r[i]);return n?{...r[n],statusCode:n}:null}function Hk(e,t,r,n){let i=zk(t,e.statusCodes);return i&&i.content?ua(i,r,n):bl(e.statusCodes[0],e.message)}function Kk(e,t,r,{throwUnexpected:n=!1}={},i){if(e instanceof at){let o=t&&la(t),s=[hk(e)];return vre(e,r,{exampleId:o,enhancers:s},i)}if(n)throw e;return bl(500,"Mock server encountered an internal error while handling your request: "+e.message)}function vre(e,t,r,n){return t?Hk(e,t,r,n):bl(e.statusCodes[0],e.message)}function Yk(e,t){let{responses:r}=t;if(!r)return null;let n=r[e];return n?{...n,statusCode:e}:null}var xre=[100,101,102,103,200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,425,426,428,429,431,451,500,501,502,503,504,505,506,507,508,510,511],L1="The X-Redocly-Response-Status header was detected. Forced response with status code",Gk=xre.reduce((e,t)=>(e[t]={statusCode:t,body:Bi({message:`${L1} ${t}.`}),headers:{"Content-Type":"application/json"}},e),{});function Wk(e){let t=Gk[e];return t||{statusCode:e,body:Bi({message:`${L1} ${e}`}),headers:{"Content-Type":"application/json"}}}function Xk(e,t,r){let n=gk(e),i=la(e),o=t&&Yk(n,t);return o?ua(o,{exampleId:i},r):Wk(n)}function Qk(e=[],t=[]){return Object.values({...Jk(e),...Jk(t)})}function Jk(e){return Object.fromEntries(e.map(t=>[t.name,t]))}function pa(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var D1=/{(.+)}/,F1=/\\\{[^\\]+\\\}/g;function Zk(e,t){let r=e==null?void 0:e[t];if(r)return{...r,pathTemplate:t};let n=vl(t);for(let i of Object.keys(e)){let o=vl(i);if(Sre(o,n))return{...e[i],pathTemplate:i}}return null}function Sre(e,t){let r=e.length;if(r!==t.length)return!1;for(let n=0;n<r;n++)if(!wre(e[n],t[n]))return!1;return!0}function wre(e,t){if(!D1.test(e))return t===e;let n=pa(e).replace(F1,"(.*)");return new RegExp(n).test(t)}function vl(e){return e.slice(1).split("/").map(t=>{if(!t)return t;try{return decodeURIComponent(t)}catch{return t}})}function Md(e,t){let{path:r,method:n}=t,{paths:i}=e,o=i&&Zk(i,r);if(!o)throw new Ed(r);let s=o[n.toLocaleLowerCase()];if(!s)throw new $d(n,r);return{...s,parameters:Qk(o.parameters,s.parameters),pathTemplate:o.pathTemplate}}function eq(e){if(!e||!e.headers)return{};let t=["x-redocly-response-status","x-redocly-response-body-example","x-redocly-cookie"],r={};for(let n of t)e.headers[n]&&(r[n]=e.headers[n]);return r}function tq(e){return e["x-redocly-response-status"]!==void 0}function rq(e,t,r,n){let i=_re(r,e);return Xk(t,i,n)}function _re(e,t){try{return Md(e,t)}catch{return}}function nq(e){return e!=null}function iq(e,t){let{in:r,name:n}=t;switch(r){case"query":return Ore(e,n);case"header":return Pre(e,n);case"cookie":return Ere(e,n);default:throw new je(`Api key location "${r}" is not supported.`)}}function Ore(e,t){return!!e.query&&oq(t).test(e.query)}function Pre(e,t){return!!e.headers[t.toLowerCase()]}function Ere(e,t){let r=e.headers.cookie;return!!r&&oq(t).test(r)}function oq(e){return new RegExp(`${pa(e)}=.+`)}function fa(e){let t=e.headers.authorization;if(!t)return!1;let[r,n]=t.split(" ");return r.toLowerCase()==="bearer"&&$re(n)}function $re(e){return!!e&&e.length>0}function sq(e){let t=e.headers.authorization;if(!t)return!1;let[r,n]=t.split(" ");return r.toLowerCase()==="basic"&&Are(n)}function Are(e){return!!e&&Buffer.from(e,"base64").toString().split(":").length===2}var Cre=[/username=.+/,/response=.+/];function aq(e){let t=e.headers.authorization;if(!t)return!1;let[r,...n]=t.split(" ");return r.toLowerCase()==="digest"&&Rre(n.join(""))}function Rre(e){return Cre.every(t=>t.test(e))}function cq(e,t){let{scheme:r}=t;switch(r){case"basic":return sq(e);case"bearer":return fa(e);case"digest":return aq(e);default:throw new je(`Http authentication schema "${r}" is not supported.`)}}function lq(e){return fa(e)}function uq(e){return fa(e)}function pq(e,t){switch(t.type){case"apiKey":return iq(e,t);case"http":return cq(e,t);case"oauth2":return lq(e);case"openIdConnect":return uq(e)}}function fq(e,t,r){let n=Nre(t,r),i=Ire(r);if(!(n.some(s=>Tre(e,s,i))||n.length===0))throw new kd(n.map(s=>Object.keys(s)[0]))}function Tre(e,t,r){return Object.keys(t).map(n=>r[n]).filter(nq).every(n=>pq(e,n))}function Nre(e,t){return e.security||t.security||[]}function Ire(e){var t;return((t=e.components)==null?void 0:t.securitySchemes)||{}}function mq(e,t){let r=null;for(let[n,i]of Object.entries(t)){let o=Ui(n).type;if(o===e)return i;let s=o.split("/"),a=e.split("/");if(s[0]!==a[0]){s[0]==="*"&&(r!=null||(r=i));continue}let c=s[1];if(dq(c)===dq(a[1]))return i;c==="*"&&(r=i)}return r}function dq(e=""){return e.split("+").pop()}var K1=Te(Eq());var Dd={};Bd(Dd,{$id:()=>une,$schema:()=>lne,default:()=>hne,definitions:()=>fne,properties:()=>mne,title:()=>pne,type:()=>dne});var lne="http://json-schema.org/draft-07/schema#",une="http://json-schema.org/draft-07/schema#",pne="Core schema meta-schema",fne={schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},dne=["object","boolean"],mne={$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},hne={$schema:lne,$id:une,title:pne,definitions:fne,type:dne,properties:mne,default:!0};var Y1=Te(eb()),$q={strict:!1,allErrors:!0,discriminator:!0},z1=new K1.default($q).addMetaSchema(Dd);(0,Y1.default)(z1);var H1=new K1.default({...$q,coerceTypes:!0}).addMetaSchema(Dd);(0,Y1.default)(H1);function Aq(e,t){return z1.validate(t,e)?null:z1.errorsText()}function Cq(e,t){return t?H1.validate(t,e)?null:H1.errorsText():null}async function Rq(e,t){let r=yne(e);if(!r){if(t.required)throw new Cd;return}let n=mq(r.type,t.content);if(!n)throw new Td(r.type);let i=await e.getBody();if(!i){if(t.required)throw new Ad;return}let o;try{o=Nk(i,r)}catch(s){throw s instanceof at?s:new qd(s.message||s)}return r.type==="application/xml"||n.schema&&gne(o,n.schema),o}function yne(e){let t=e.headers["content-type"];return t?Ui(t):void 0}function gne(e,t){let r=Aq(e,t);if(r)throw new Id(r)}function Tq(e,t){var o;let r=vl(t),n=vl(e),i={};for(let[s,a]of r.entries()){if(!D1.test(a))continue;let c=n[s],u=pa(a).replace(F1,"(.*)"),p=(o=new RegExp(u).exec(c))==null?void 0:o.slice(1),m=Array.from(a.matchAll(/{(.*?)}/g));for(let[d,f]of m.entries()){let[,h]=f;i[h]=(p==null?void 0:p[d])||""}}return i}var bne=["Content-Type"];function Nq(e){return e.filter(({name:t,in:r})=>!(r==="header"&&bne.includes(t)))}var vne={path:{style:"simple",explode:!1},query:{style:"form",explode:!0},header:{style:"simple",explode:!1},cookie:{style:"form",explode:!0}};function Iq(e,t){var a,c;let r=t.in,n=t.schema,i=vne[r],o=_k(e,n,(a=t.style)!=null?a:i.style,(c=t.explode)!=null?c:i.explode),s=Cq(o,n);if(s)throw new Nd(r,t.name,s);return o}function kq(e,t){try{if(t.schema)return Iq(e,t);if(t.content)throw new je("Media-type parameter deserialization is not supported")}catch(r){throw r instanceof at?r:new jd(r.message||r)}return Array.isArray(e)?e.join(","):e}function qq(e,t,r){let n={path:{},query:{},header:{},cookie:{}};if(!r)return n;let i=t==="GET"?Nq(r):r;for(let o of i){let s=o.in,a=xne(o),c=e[s][a];if(!c){if(o.required)throw new Rd(s,a);continue}let l=kq(c,o);n[s][a]=l}return n}function xne(e){return e.in==="header"?e.name.toLowerCase():e.name}function jq(e,t){if(e===void 0)return{};if(t)for(let r of t){let n=r.schema;if((n==null?void 0:n.type)==="object"&&Sne(r))return{[r.name]:[e]}}return q1(e)}function Sne(e){return e.in==="query"&&(e.style==="form"||!e.style)&&(e.explode||e.explode===void 0)}function Mq(e){let t={};if(!e)return t;for(let r of e.split(";")){let[n,...i]=r.split("="),o=i.join("=");t[n]=o}return t}async function Lq(e,t){let r=t.parameters,n={path:Tq(e.path,t.pathTemplate),query:jq(e.query,r),header:e.headers,cookie:Mq(e.headers.cookie)},i=qq(n,e.method,r),o=t.requestBody&&await Rq(e,t.requestBody);return{path:e.path,method:e.method,parameters:i,headers:e.headers,requestBody:o,enforced:{}}}function Dq(e){let t=Object.entries(e).map(([r,n])=>[r.toLowerCase(),n]);return Object.fromEntries(t)}function Fq(e){if(e!==void 0)return e.startsWith("?")?e.slice(1):e}function Bq(e){return{path:e.path,method:e.method,query:Fq(e.query),headers:Dq(e.headers),getBody:()=>e.getBody()}}function Uq(e,t){t["x-redocly-cookie"]&&(e.headers.cookie=t["x-redocly-cookie"])}function Vq(e,t){return t.every(r=>e.includes(r))}var wne=["origin","access-control-request-method","access-control-request-headers"];function zq(e){let t=Object.keys(e.headers).map(r=>r.toLowerCase());return e.method==="OPTIONS"&&Vq(t,wne)}var _ne={"access-control-allow-origin":"*","access-control-allow-headers":"*","access-control-allow-methods":"*"};async function Hq(...e){let t=await Pne(...e);return{...t,headers:{...One(t.headers),..._ne}}}function One(e){return Object.fromEntries(Object.entries(e||{}).filter(([t])=>!t.toLocaleLowerCase().startsWith("access-control")))}async function Pne(e,t,r,n){let i,o;try{let s=Bq(e);if(o=eq(s),Uq(s,o),tq(o))return rq(s,o,t,r);if(zq(e))return{statusCode:200};i=Md(t,s),fq(s,i,t);let a=await Lq(s,i);return Vk(a,o,i,r)}catch(s){return console.log(s.message),Kk(s,o,i,n,r)}}async function Kq(e,t){let r=await m2(e),n=await dk(r),{strictExamples:i=!1,errorIfForcedExampleNotFound:o=!1}=t||{};return(s,a)=>Hq(s,n,{strictExamples:i,errorIfForcedExampleNotFound:o},a)}0&&(module.exports={createMockServer});
|
|
257
|
+
${l.stack}`)}},n=new Map,i=LW(t);i&&e.push(i);let o=new Set;return(await Promise.all(e.map(async a=>{if(lt(a)){if(We(a))throw new Error(He.red("We don't support remote plugins yet."));if(o.has(a))return;o.add(a)}let c=await r(a);if(!c)return;let l=Array.isArray(c)?c:[c];return(await Promise.all(l.map(async u=>{var h;if(!u)return;let p=u.id;if(typeof p!="string")throw new Error(He.red(`Plugin must define \`id\` property in ${He.blue(a.toString())}.`));let m=(h=u.absolutePath)!=null?h:a.toString(),d=n.get(p);if(d){if(m!==d)throw new Error(He.red(`Plugin "id" must be unique. Plugin ${He.blue(m)} uses id "${He.blue(p)}" already seen in ${He.blue(m)}`));return}n.set(p,m);let f={id:p,...u.configs?{configs:u.configs}:{},...u.typeExtension?{typeExtension:u.typeExtension}:{}};if(u.rules){if(!u.rules.oas3&&!u.rules.oas2&&!u.rules.async2&&!u.rules.async3&&!u.rules.arazzo1&&!u.rules.overlay1)throw new Error(`Plugin rules must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo\`, or \`overlay1\` rules "${a}.`);f.rules={},u.rules.oas3&&(f.rules.oas3=mt(u.rules.oas3,p)),u.rules.oas2&&(f.rules.oas2=mt(u.rules.oas2,p)),u.rules.async2&&(f.rules.async2=mt(u.rules.async2,p)),u.rules.async3&&(f.rules.async3=mt(u.rules.async3,p)),u.rules.arazzo1&&(f.rules.arazzo1=mt(u.rules.arazzo1,p)),u.rules.overlay1&&(f.rules.overlay1=mt(u.rules.overlay1,p))}if(u.preprocessors){if(!u.preprocessors.oas3&&!u.preprocessors.oas2&&!u.preprocessors.async2&&!u.preprocessors.async3&&!u.preprocessors.arazzo1&&!u.preprocessors.overlay1)throw new Error(`Plugin \`preprocessors\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` preprocessors "${a}.`);f.preprocessors={},u.preprocessors.oas3&&(f.preprocessors.oas3=mt(u.preprocessors.oas3,p)),u.preprocessors.oas2&&(f.preprocessors.oas2=mt(u.preprocessors.oas2,p)),u.preprocessors.async2&&(f.preprocessors.async2=mt(u.preprocessors.async2,p)),u.preprocessors.async3&&(f.preprocessors.async3=mt(u.preprocessors.async3,p)),u.preprocessors.arazzo1&&(f.preprocessors.arazzo1=mt(u.preprocessors.arazzo1,p)),u.preprocessors.overlay1&&(f.preprocessors.overlay1=mt(u.preprocessors.overlay1,p))}if(u.decorators){if(!u.decorators.oas3&&!u.decorators.oas2&&!u.decorators.async2&&!u.decorators.async3&&!u.decorators.arazzo1&&!u.decorators.overlay1)throw new Error(`Plugin \`decorators\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` decorators "${a}.`);f.decorators={},u.decorators.oas3&&(f.decorators.oas3=mt(u.decorators.oas3,p)),u.decorators.oas2&&(f.decorators.oas2=mt(u.decorators.oas2,p)),u.decorators.async2&&(f.decorators.async2=mt(u.decorators.async2,p)),u.decorators.async3&&(f.decorators.async3=mt(u.decorators.async3,p)),u.decorators.arazzo1&&(f.decorators.arazzo1=mt(u.decorators.arazzo1,p)),u.decorators.overlay1&&(f.decorators.overlay1=mt(u.decorators.overlay1,p))}return u.assertions&&(f.assertions=u.assertions),{...u,...f}}))).filter(hs)}))).filter(hs).flat()}function qR(e,t){var s;let{pluginId:r,configName:n}=TR(e),i=t.find(a=>a.id===r);if(!i)throw new Error(`Invalid config ${He.red(e)}: plugin ${r} is not included.`);let o=(s=i.configs)==null?void 0:s[n];if(!o)throw new Error(r?`Invalid config ${He.red(e)}: plugin ${r} doesn't export config with name ${n}.`:`Invalid config ${He.red(e)}: there is no such built-in config.`);return o}async function Eb(e,{configPath:t,externalRefResolver:r}={}){let i=Mc(typeof e=="string"?e:"",t!=null?t:"");typeof e!="string"&&e&&(i.parsed=e);let{resolvedConfig:o,resolvedRefMap:s,plugins:a}=await VR({rawConfigDocument:DW(i),configPath:t,externalRefResolver:r});return new ic(o,{configPath:t,document:i,resolvedRefMap:s,plugins:a})}function DW(e){if(!e.parsed)return e;let{plugins:t,resolve:r,...n}=e.parsed,i={...structuredClone(n),plugins:t==null?void 0:t.slice(),...r&&{resolve:{...r}}};return{...e,parsed:i}}var p2=Te(u2(),1);var z0e={warn:e=>He.bgYellow(He.black(e)),error:He.bgRed},H0e={warn:He.yellow,error:He.red};var f2,K0e=+((f2=Pl.REDOCLY_CLI_LINT_MAX_SUGGESTIONS)!=null?f2:5);var d2=Te(jm(),1);delete d2.rootRedoclyConfigSchema.properties.theme;async function m2(e){let t={config:await Eb({}),dereference:!0};if(typeof e=="string"&&(t.ref=e),typeof e=="object"){if(e["x-redocly-dereferenced"])return e;t.doc={source:{absoluteRef:"/"},parsed:e}}let{bundle:{parsed:r}}=await wb(t);return Y(r)?(r["x-redocly-dereferenced"]=!0,r):{}}var fk=Te(pk());async function dk(e){return Wte(e)?Xte(e):e}function Wte(e){return e.swagger!==void 0}async function Xte(e){let{openapi:t}=await fk.convertObj(e,{patch:!0,warnOnly:!0,text:"{}",anchors:!0});return t}function mk(e){let{responses:t}=e;if(!t)throw new je("Operation does not specify any response.");return Jte(t)||Qte(t)||Zte(t)}function Jte(e){let t=Object.keys(e).filter(n=>Number(n)>=200&&Number(n)<300).sort()[0];return t?{...e[t],statusCode:Number(t)}:null}function Qte(e){let t=e.default;return t?{...t,statusCode:200}:null}function Zte(e){let t=Object.keys(e)[0];return{...e[t],statusCode:Number(t)}}var hk=e=>{return r=>{let n=["message","error","summary","description","detail","title","problem","failure","fault"];if(typeof r=="object"&&!Array.isArray(r)){for(let i of n)if(t(r,i,1))break}};function t(r,n,i){if(typeof r[n]=="string"||r[n]===null)return r[n]=e.message,!0;for(let o of Object.keys(r)){let s=Array.isArray(r[o])?r[o][0]:r[o];if(typeof s=="object"&&s!==null&&!Array.isArray(s)&&i<3)return t(s,n,i+1)}return!1}};var yk=e=>t=>{if(!t||!e)return;typeof t=="object"&&typeof e=="object"&&r(t,e);function r(n,i){Object.keys(n).forEach(o=>{let s=n[o],a=i[o];if(a==null||!(typeof s==typeof a))return;if(["string","number","boolean"].includes(typeof a)){n[o]=i[o];return}return r(s,a)})}};var ere="Validation Error: The forced X-Redocly-Response-Status header's value should be a number.",tre="Range Error: Status code is out of range in forced X-Redocly-Response-Status header.";function gk(e){let t=Number(e["x-redocly-response-status"]);if(isNaN(t))throw new je(ere);if(t<100||t>999)throw new je(tre);return t}function la(e){return e["x-redocly-response-body-example"]}function yl(e,t=!1){let r={};for(let n=0;n<e.length;n+=2){let i=t?e[n].toLowerCase():e[n],o=e[n+1];r[i]=o}return r}function Pd(e,t){let r={};for(let n of e){let[i,o]=n.split(t);r[i]=o}return r}function bk(e,t,r){if((r==null?void 0:r.type)==="array")return e?e.split(","):[];if((r==null?void 0:r.type)==="object"){let n=e.split(",");return t?Pd(n,"="):yl(n)}return e}function vk(e){return e!=null&&typeof e=="object"}function xk(e,t){return Array.isArray(e)?rre(e):vk(e)?nre(e,t):ire(e)}function rre(e){return e.join(",")}function nre(e,t){let r=t?"=":",";return Object.entries(e).map(n=>n.join(r)).join(",")}function ire(e){return String(e)}function Sk(e,t,r){switch(t){case"simple":return xk(e,r);default:throw new je(`Serialization style ${t} is not supported.`)}}function wk(e,t,r){if(!e)return;let n=r==null?void 0:r.type;return n==="array"?t?ore(e):sre(e):n==="object"?t?are(e):cre(e):Array.isArray(e)?e[e.length-1]:e}function ore(e){return Array.isArray(e)?e:[e]}function sre(e){return(Array.isArray(e)?e.pop():e).split(",")}function are(e){let t=Array.isArray(e)?e.join(""):e;return Pd(t.split("&"),"=")}function cre(e){let t=(Array.isArray(e)?e.pop()||"":e).split(",");return yl(t)}function _k(e,t,r,n){if(r==="simple")return bk(e,n,t);if(r==="form")return wk(e,n,t);throw new je(`Deserialization style ${r} is not supported.`)}var at=class extends Error{constructor(r,n){super(n);this.statusCodes=r;this.message=n}},Ed=class extends at{constructor(r){super([404,400],`Path ${r} not found`);this.path=r}},$d=class extends at{constructor(r,n){super([405,400],`Method "${r}" is not supported by the target path "${n}"`);this.method=r;this.path=n}},Ad=class extends at{constructor(){super([400,422],"Body is required, but it is missing from the request")}},Cd=class extends at{constructor(){super([400],"Body is required, but the Content-Type header is missing from the request")}},Rd=class extends at{constructor(r,n){super([400,422],`Required ${r} parameter "${n}" is missing`);this.paramType=r;this.paramName=n}},Td=class extends at{constructor(r){super([415,400],`Media type "${r}" is not supported`);this.mediaType=r}},Nd=class extends at{constructor(r,n,i){super([422,400],`Error validating ${r} parameter "${n}". ${i}`);this.paramType=r;this.paramName=n;this.validationError=i}},Id=class extends at{constructor(r){super([422,400],`Error validating body. ${r}`);this.validationError=r}},kd=class extends at{constructor(r){super([401,400],`Not authenticated. Supported authentication types: ${r}.`);this.authenticationTypes=r}},je=class extends at{constructor(t){super([500],`Mock server error. ${t}`)}},qd=class extends at{constructor(t){super([400],`Body deserialization error. ${t}`)}},jd=class extends at{constructor(t){super([400],`Parameter deserialization error. ${t}`)}};function N1(e){return JSON.stringify(e)}function Bi(e,t="utf-8"){let r=N1(e);return Buffer.from(r,t)}function I1(e){return String(e)}function Ok(e,t){let r=I1(e);return Buffer.from(r,t)}function Pk(e){return typeof e=="string"?e:JSON.stringify(e)}function Ek(e,t){return Buffer.from(e,t)}function $k(e,t){var r;if(t.type==="application/json"||(r=t.type)!=null&&r.endsWith("+json"))return N1(e);if(t.type==="text/plain")return I1(e);if(t.type==="application/xml")return Pk(e);throw new je(`Media type ${t.type} is not supported.`)}function k1(e,t){var n;let r=t.parameters.charset||"utf-8";if(t.type==="application/json"||(n=t.type)!=null&&n.endsWith("+json")||t.type==="*/*")return Bi(e);if(t.type==="text/plain")return Ok(e,r);if(t.type==="application/xml")return Ek(e,r);throw new je(`Media type ${t.type} is not supported.`)}function Ak(e,t){let r=q1(e.toString(t));return ure(lre(r))}function q1(e){let t={};for(let r of e.split("&")){let[n,...i]=r.split("="),o=i.length>0?i.join("="):void 0;t[n]===void 0&&(t[n]=[]),o&&t[n].push(o)}return t}function lre(e){let t={};for(let[r,n]of Object.entries(e))t[decodeURIComponent(r)]=n.map(decodeURIComponent);return t}function ure(e){let t={};for(let r of Object.keys(e)){let n=r.match(/[^[]*/i);if(!n)continue;let i=r.match(/\[.*?\]/g)||[];i=[n[0]].concat(i).map(function(s){return s.replace(/\[|\]/g,"")});let o=t;for(;i.length;){let s=i.shift();s&&(s in o||(o[s]=i.length?isNaN(+i[0])&&{}||[]:e[r].join("")),o=o[s])}}return t}function Ck(e,t){return JSON.parse(e.toString(t))}function Rk(e,t){return e.toString(t)}function Tk(e,t){return e.toString(t)}function Nk(e,t){let r=t.type,n=t.parameters.charset;if(r==="text/plain")return Rk(e,n);if(r==="application/json"||r!=null&&r.endsWith("+json"))return Ck(e,n);if(r==="application/x-www-form-urlencoded")return Ak(e,n);if(r==="application/xml")return Tk(e,n);throw new je(`Media type ${t.type} deserialization is not supported.`)}var Ik=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,pre=/\\([\u000b\u0020-\u00ff])/g,fre=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function Ui(e){if(!e)throw new Error("argument mediaType is required");let t=e.indexOf(";"),r=t!==-1?e.substring(0,t).trim():e.trim();if(!fre.test(r))throw new Error("invalid media type");let n={};if(t!==-1){let i,o,s;for(Ik.lastIndex=t;o=Ik.exec(e);){if(o.index!==t)throw new Error("invalid parameter format");t+=o[0].length,i=o[1].toLowerCase(),s=o[2],s[0]==='"'&&(s=s.substring(1,s.length-2).replace(pre,"$1")),n[i]=s}if(t!==e.length)throw new Error("invalid parameter format")}return{type:r,parameters:n}}var jk=Te(qk());function gl(e,t){return jk.sample(e,{quiet:!0,format:(t==null?void 0:t.type)==="application/xml"?"xml":"json"})}var dre="The desired example was not found";function Mk(e,t,r){var i;let n=t&&e&&t[e];if(n)return n.value;if(e&&r)throw new je(dre);return t&&((i=Object.values(t)[0])==null?void 0:i.value)}var Lk=["application/json","application/xml","text/plain","application/vnd.api+json","application/problem+json","*/*"];function Dk(e){return e.split(";")[0]}function mre(e,t){return e&&Lk.includes(e)?e:t.length?t.find(r=>Lk.includes(Dk(r))):"application/json"}function Fk(e,t){let r=Object.keys(e),n=mre(t,r);if(!n)throw new je("Could not generate response. No supported media type found in definition.");return{...e[n],mediaType:Dk(n)}}function Bk(e,t,r){let{mediaType:n,schema:i,example:o,examples:s}=Fk(e,t==null?void 0:t.contentType),a=Ui(n),c=t==null?void 0:t.exampleId,l=Mk(c,s,r==null?void 0:r.errorIfForcedExampleNotFound)||o;if(l&&(r!=null&&r.strictExamples))return{mediaType:n,data:k1(l,a)};let u=l||gl(i,a);return t!=null&&t.enhancers&&t.enhancers.forEach(p=>p(u)),{mediaType:n,data:k1(u,a)}}function M1(e,t){var r;return e||t&&((r=Object.values(t)[0])==null?void 0:r.value)}function Uk(e){let{schema:t,content:r}=e;if(t)return hre(t,e);if(r)return yre(r);throw new je("Response header specifies no schema nor content.")}function hre(e,t){let{example:r,examples:n,style:i="simple",explode:o=!0}=t,s=M1(r,n)||gl(e);return Sk(s,i,o)}function yre(e){let[[t,r]]=Object.entries(e),{example:n,examples:i,schema:o}=r,s=Ui(t),a=M1(n,i)||gl(o);return $k(a,s)}function ua(e,t,r){let{statusCode:n,headers:i,content:o}=e,s=o&&Bk(o,t,r),a=gre(i,s==null?void 0:s.mediaType);return{statusCode:n,headers:a,body:s==null?void 0:s.data}}function gre(e,t){let r=e&&bre(e),n={...t&&{"Content-Type":t}};return{...r,...n}}function bre(e){let t=Object.entries(e).map(([r,n])=>[r,Uk(n)]);return Object.fromEntries(t)}function Vk(e,t,r,n){var a;let i=mk(r),o=la(t),s=[];return e.requestBody&&s.push(yk(e.requestBody)),ua(i,{exampleId:o,enhancers:s,contentType:(a=e==null?void 0:e.headers)==null?void 0:a["content-type"]},n)}function bl(e,t){return{statusCode:e,body:Bi({message:t}),headers:{"Content-Type":"application/json"}}}function zk(e,t){let{responses:r}=e;if(!r)return null;let n=t.find(i=>r[i]);return n?{...r[n],statusCode:n}:null}function Hk(e,t,r,n){let i=zk(t,e.statusCodes);return i&&i.content?ua(i,r,n):bl(e.statusCodes[0],e.message)}function Kk(e,t,r,{throwUnexpected:n=!1}={},i){if(e instanceof at){let o=t&&la(t),s=[hk(e)];return vre(e,r,{exampleId:o,enhancers:s},i)}if(n)throw e;return bl(500,"Mock server encountered an internal error while handling your request: "+e.message)}function vre(e,t,r,n){return t?Hk(e,t,r,n):bl(e.statusCodes[0],e.message)}function Yk(e,t){let{responses:r}=t;if(!r)return null;let n=r[e];return n?{...n,statusCode:e}:null}var xre=[100,101,102,103,200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,425,426,428,429,431,451,500,501,502,503,504,505,506,507,508,510,511],L1="The X-Redocly-Response-Status header was detected. Forced response with status code",Gk=xre.reduce((e,t)=>(e[t]={statusCode:t,body:Bi({message:`${L1} ${t}.`}),headers:{"Content-Type":"application/json"}},e),{});function Wk(e){let t=Gk[e];return t||{statusCode:e,body:Bi({message:`${L1} ${e}`}),headers:{"Content-Type":"application/json"}}}function Xk(e,t,r){let n=gk(e),i=la(e),o=t&&Yk(n,t);return o?ua(o,{exampleId:i},r):Wk(n)}function Qk(e=[],t=[]){return Object.values({...Jk(e),...Jk(t)})}function Jk(e){return Object.fromEntries(e.map(t=>[t.name,t]))}function pa(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var D1=/{(.+)}/,F1=/\\\{[^\\]+\\\}/g;function Zk(e,t){let r=e==null?void 0:e[t];if(r)return{...r,pathTemplate:t};let n=vl(t);for(let i of Object.keys(e)){let o=vl(i);if(Sre(o,n))return{...e[i],pathTemplate:i}}return null}function Sre(e,t){let r=e.length;if(r!==t.length)return!1;for(let n=0;n<r;n++)if(!wre(e[n],t[n]))return!1;return!0}function wre(e,t){if(!D1.test(e))return t===e;let n=pa(e).replace(F1,"(.*)");return new RegExp(n).test(t)}function vl(e){return e.slice(1).split("/").map(t=>{if(!t)return t;try{return decodeURIComponent(t)}catch{return t}})}function Md(e,t){let{path:r,method:n}=t,{paths:i}=e,o=i&&Zk(i,r);if(!o)throw new Ed(r);let s=o[n.toLocaleLowerCase()];if(!s&&o.additionalOperations&&(s=o.additionalOperations[n.toLowerCase()]),!s)throw new $d(n,r);return{...s,parameters:Qk(o.parameters,s.parameters),pathTemplate:o.pathTemplate}}function eq(e){if(!e||!e.headers)return{};let t=["x-redocly-response-status","x-redocly-response-body-example","x-redocly-cookie"],r={};for(let n of t)e.headers[n]&&(r[n]=e.headers[n]);return r}function tq(e){return e["x-redocly-response-status"]!==void 0}function rq(e,t,r,n){let i=_re(r,e);return Xk(t,i,n)}function _re(e,t){try{return Md(e,t)}catch{return}}function nq(e){return e!=null}function iq(e,t){let{in:r,name:n}=t;switch(r){case"query":return Ore(e,n);case"header":return Pre(e,n);case"cookie":return Ere(e,n);default:throw new je(`Api key location "${r}" is not supported.`)}}function Ore(e,t){return!!e.query&&oq(t).test(e.query)}function Pre(e,t){return!!e.headers[t.toLowerCase()]}function Ere(e,t){let r=e.headers.cookie;return!!r&&oq(t).test(r)}function oq(e){return new RegExp(`${pa(e)}=.+`)}function fa(e){let t=e.headers.authorization;if(!t)return!1;let[r,n]=t.split(" ");return r.toLowerCase()==="bearer"&&$re(n)}function $re(e){return!!e&&e.length>0}function sq(e){let t=e.headers.authorization;if(!t)return!1;let[r,n]=t.split(" ");return r.toLowerCase()==="basic"&&Are(n)}function Are(e){return!!e&&Buffer.from(e,"base64").toString().split(":").length===2}var Cre=[/username=.+/,/response=.+/];function aq(e){let t=e.headers.authorization;if(!t)return!1;let[r,...n]=t.split(" ");return r.toLowerCase()==="digest"&&Rre(n.join(""))}function Rre(e){return Cre.every(t=>t.test(e))}function cq(e,t){let{scheme:r}=t;switch(r){case"basic":return sq(e);case"bearer":return fa(e);case"digest":return aq(e);default:throw new je(`Http authentication schema "${r}" is not supported.`)}}function lq(e){return fa(e)}function uq(e){return fa(e)}function pq(e,t){switch(t.type){case"apiKey":return iq(e,t);case"http":return cq(e,t);case"oauth2":return lq(e);case"openIdConnect":return uq(e)}}function fq(e,t,r){let n=Nre(t,r),i=Ire(r);if(!(n.some(s=>Tre(e,s,i))||n.length===0))throw new kd(n.map(s=>Object.keys(s)[0]))}function Tre(e,t,r){return Object.keys(t).map(n=>r[n]).filter(nq).every(n=>pq(e,n))}function Nre(e,t){return e.security||t.security||[]}function Ire(e){var t;return((t=e.components)==null?void 0:t.securitySchemes)||{}}function mq(e,t){let r=null;for(let[n,i]of Object.entries(t)){let o=Ui(n).type;if(o===e)return i;let s=o.split("/"),a=e.split("/");if(s[0]!==a[0]){s[0]==="*"&&(r!=null||(r=i));continue}let c=s[1];if(dq(c)===dq(a[1]))return i;c==="*"&&(r=i)}return r}function dq(e=""){return e.split("+").pop()}var K1=Te(Eq());var Dd={};Bd(Dd,{$id:()=>une,$schema:()=>lne,default:()=>hne,definitions:()=>fne,properties:()=>mne,title:()=>pne,type:()=>dne});var lne="http://json-schema.org/draft-07/schema#",une="http://json-schema.org/draft-07/schema#",pne="Core schema meta-schema",fne={schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},dne=["object","boolean"],mne={$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},hne={$schema:lne,$id:une,title:pne,definitions:fne,type:dne,properties:mne,default:!0};var Y1=Te(eb()),$q={strict:!1,allErrors:!0,discriminator:!0},z1=new K1.default($q).addMetaSchema(Dd);(0,Y1.default)(z1);var H1=new K1.default({...$q,coerceTypes:!0}).addMetaSchema(Dd);(0,Y1.default)(H1);function Aq(e,t){return z1.validate(t,e)?null:z1.errorsText()}function Cq(e,t){return t?H1.validate(t,e)?null:H1.errorsText():null}async function Rq(e,t){let r=yne(e);if(!r){if(t.required)throw new Cd;return}let n=mq(r.type,t.content);if(!n)throw new Td(r.type);let i=await e.getBody();if(!i){if(t.required)throw new Ad;return}let o;try{o=Nk(i,r)}catch(s){throw s instanceof at?s:new qd(s.message||s)}return r.type==="application/xml"||n.schema&&gne(o,n.schema),o}function yne(e){let t=e.headers["content-type"];return t?Ui(t):void 0}function gne(e,t){let r=Aq(e,t);if(r)throw new Id(r)}function Tq(e,t){var o;let r=vl(t),n=vl(e),i={};for(let[s,a]of r.entries()){if(!D1.test(a))continue;let c=n[s],u=pa(a).replace(F1,"(.*)"),p=(o=new RegExp(u).exec(c))==null?void 0:o.slice(1),m=Array.from(a.matchAll(/{(.*?)}/g));for(let[d,f]of m.entries()){let[,h]=f;i[h]=(p==null?void 0:p[d])||""}}return i}var bne=["Content-Type"];function Nq(e){return e.filter(({name:t,in:r})=>!(r==="header"&&bne.includes(t)))}var vne={path:{style:"simple",explode:!1},query:{style:"form",explode:!0},header:{style:"simple",explode:!1},cookie:{style:"form",explode:!0}};function Iq(e,t){var a,c;let r=t.in,n=t.schema,i=vne[r],o=_k(e,n,(a=t.style)!=null?a:i.style,(c=t.explode)!=null?c:i.explode),s=Cq(o,n);if(s)throw new Nd(r,t.name,s);return o}function kq(e,t){try{if(t.schema)return Iq(e,t);if(t.content)throw new je("Media-type parameter deserialization is not supported")}catch(r){throw r instanceof at?r:new jd(r.message||r)}return Array.isArray(e)?e.join(","):e}function qq(e,t,r){let n={path:{},query:{},header:{},cookie:{}};if(!r)return n;let i=t==="GET"?Nq(r):r;for(let o of i){let s=o.in,a=xne(o),c=e[s][a];if(!c){if(o.required)throw new Rd(s,a);continue}let l=kq(c,o);n[s][a]=l}return n}function xne(e){return e.in==="header"?e.name.toLowerCase():e.name}function jq(e,t){if(e===void 0)return{};if(t)for(let r of t){let n=r.schema;if((n==null?void 0:n.type)==="object"&&Sne(r))return{[r.name]:[e]}}return q1(e)}function Sne(e){return e.in==="query"&&(e.style==="form"||!e.style)&&(e.explode||e.explode===void 0)}function Mq(e){let t={};if(!e)return t;for(let r of e.split(";")){let[n,...i]=r.split("="),o=i.join("=");t[n]=o}return t}async function Lq(e,t){let r=t.parameters,n={path:Tq(e.path,t.pathTemplate),query:jq(e.query,r),header:e.headers,cookie:Mq(e.headers.cookie)},i=qq(n,e.method,r),o=t.requestBody&&await Rq(e,t.requestBody);return{path:e.path,method:e.method,parameters:i,headers:e.headers,requestBody:o,enforced:{}}}function Dq(e){let t=Object.entries(e).map(([r,n])=>[r.toLowerCase(),n]);return Object.fromEntries(t)}function Fq(e){if(e!==void 0)return e.startsWith("?")?e.slice(1):e}function Bq(e){return{path:e.path,method:e.method,query:Fq(e.query),headers:Dq(e.headers),getBody:()=>e.getBody()}}function Uq(e,t){t["x-redocly-cookie"]&&(e.headers.cookie=t["x-redocly-cookie"])}function Vq(e,t){return t.every(r=>e.includes(r))}var wne=["origin","access-control-request-method","access-control-request-headers"];function zq(e){let t=Object.keys(e.headers).map(r=>r.toLowerCase());return e.method==="OPTIONS"&&Vq(t,wne)}var _ne={"access-control-allow-origin":"*","access-control-allow-headers":"*","access-control-allow-methods":"*"};async function Hq(...e){let t=await Pne(...e);return{...t,headers:{...One(t.headers),..._ne}}}function One(e){return Object.fromEntries(Object.entries(e||{}).filter(([t])=>!t.toLocaleLowerCase().startsWith("access-control")))}async function Pne(e,t,r,n){let i,o;try{let s=Bq(e);if(o=eq(s),Uq(s,o),tq(o))return rq(s,o,t,r);if(zq(e))return{statusCode:200};i=Md(t,s),fq(s,i,t);let a=await Lq(s,i);return Vk(a,o,i,r)}catch(s){return console.log(s.message),Kk(s,o,i,n,r)}}async function Kq(e,t){let r=await m2(e),n=await dk(r),{strictExamples:i=!1,errorIfForcedExampleNotFound:o=!1}=t||{};return(s,a)=>Hq(s,n,{strictExamples:i,errorIfForcedExampleNotFound:o},a)}0&&(module.exports={createMockServer});
|
|
258
258
|
/*! Bundled license information:
|
|
259
259
|
|
|
260
260
|
js-yaml/dist/js-yaml.mjs:
|