@tsed/schema 7.77.1 → 7.78.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.
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see schema.umd.min.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("change-case"),require("@tsed/core")):"function"==typeof define&&define.amd?define(["change-case","@tsed/core"],t):"object"==typeof exports?exports["@tsed/schema"]=t(require("change-case"),require("@tsed/core")):e["@tsed/schema"]=t(e["change-case"],e["@tsed/core"])}(self,((e,t)=>(()=>{"use strict";var r={133:(e,t,r)=>{e.exports=r(555)},379:e=>{const t="\\\\/",r=`[^${t}]`,s="\\.",n="\\/",i="[^/]",o=`(?:${n}|$)`,a=`(?:^|${n})`,c=`${s}{1,2}${o}`,p={DOT_LITERAL:s,PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:n,ONE_CHAR:"(?=.)",QMARK:i,END_ANCHOR:o,DOTS_SLASH:c,NO_DOT:`(?!${s})`,NO_DOTS:`(?!${a}${c})`,NO_DOT_SLASH:`(?!${s}{0,1}${o})`,NO_DOTS_SLASH:`(?!${c})`,QMARK_NO_DOT:`[^.${n}]`,STAR:`${i}*?`,START_ANCHOR:a,SEP:"/"},u={...p,SLASH_LITERAL:`[${t}]`,QMARK:r,STAR:`${r}*?`,DOTS_SLASH:`${s}{1,2}(?:[${t}]|$)`,NO_DOT:`(?!${s})`,NO_DOTS:`(?!(?:^|[${t}])${s}{1,2}(?:[${t}]|$))`,NO_DOT_SLASH:`(?!${s}{0,1}(?:[${t}]|$))`,NO_DOTS_SLASH:`(?!${s}{1,2}(?:[${t}]|$))`,QMARK_NO_DOT:`[^.${t}]`,START_ANCHOR:`(?:^|[${t}])`,END_ANCHOR:`(?:[${t}]|$)`,SEP:"\\"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?u:p}},390:(e,t,r)=>{const s=r(379),n=r(290),{MAX_LENGTH:i,POSIX_REGEX_SOURCE:o,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:c,REPLACEMENTS:p}=s,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map((e=>n.escapeRegex(e))).join("..")}return r},h=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,l=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=p[e]||e;const r={...t},l="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;let m=e.length;if(m>l)throw new SyntaxError(`Input length: ${m}, exceeds maximum allowed length: ${l}`);const d={type:"bos",value:"",output:r.prepend||""},f=[d],y=r.capture?"":"?:",g=s.globChars(r.windows),O=s.extglobChars(g),{DOT_LITERAL:S,PLUS_LITERAL:b,SLASH_LITERAL:R,ONE_CHAR:T,DOTS_SLASH:A,NO_DOT:E,NO_DOT_SLASH:P,NO_DOTS_SLASH:v,QMARK:x,QMARK_NO_DOT:C,STAR:$,START_ANCHOR:M}=g,w=e=>`(${y}(?:(?!${M}${e.dot?A:S}).)*?)`,_=r.dot?"":E,N=r.dot?x:C;let I=!0===r.bash?w(r):$;r.capture&&(I=`(${I})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const D={input:e,index:-1,start:0,dot:!0===r.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:f};e=n.removePrefix(e,D),m=e.length;const L=[],k=[],j=[];let H,q=d;const G=()=>D.index===m-1,B=D.peek=(t=1)=>e[D.index+t],U=D.advance=()=>e[++D.index],K=()=>e.slice(D.index+1),J=(e="",t=0)=>{D.consumed+=e,D.index+=t},F=e=>{D.output+=null!=e.output?e.output:e.value,J(e.value)},V=()=>{let e=1;for(;"!"===B()&&("("!==B(2)||"?"===B(3));)U(),D.start++,e++;return e%2!=0&&(D.negated=!0,D.start++,!0)},W=e=>{D[e]++,j.push(e)},X=e=>{D[e]--,j.pop()},z=e=>{if("globstar"===q.type){const t=D.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||L.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(D.output=D.output.slice(0,-q.output.length),q.type="star",q.value="*",q.output=I,D.output+=q.output)}if(L.length&&"paren"!==e.type&&!O[e.value]&&(L[L.length-1].inner+=e.value),(e.value||e.output)&&F(e),q&&"text"===q.type&&"text"===e.type)return q.value+=e.value,void(q.output=(q.output||"")+e.value);e.prev=q,f.push(e),q=e},Q=(e,t)=>{const s={...O[t],conditions:1,inner:""};s.prev=q,s.parens=D.parens,s.output=D.output;const n=(r.capture?"(":"")+s.open;W("parens"),z({type:e,value:t,output:D.output?"":T}),z({type:"paren",extglob:!0,value:U(),output:n}),L.push(s)},Y=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let s=I;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(s=w(r)),(s!==I||G()||/^\)+$/.test(K()))&&(t=e.close=`)$))${s}`),"bos"===e.prev.type&&G()&&(D.negatedExtglob=!0)}z({type:"paren",extglob:!0,value:H,output:t}),X("parens")};if(!1!==r.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let s=!1,i=e.replace(c,((e,t,r,n,i,o)=>"\\"===n?(s=!0,e):"?"===n?t?t+n+(i?x.repeat(i.length):""):0===o?N+(i?x.repeat(i.length):""):x.repeat(r.length):"."===n?S.repeat(r.length):"*"===n?t?t+n+(i?I:""):I:t?e:`\\${e}`));return!0===s&&(i=!0===r.unescape?i.replace(/\\/g,""):i.replace(/\\+/g,(e=>e.length%2==0?"\\\\":e?"\\":""))),i===e&&!0===r.contains?(D.output=e,D):(D.output=n.wrapOutput(i,D,t),D)}for(;!G();){if(H=U(),"\0"===H)continue;if("\\"===H){const e=B();if("/"===e&&!0!==r.bash)continue;if("."===e||";"===e)continue;if(!e){H+="\\",z({type:"text",value:H});continue}const t=/^\\+/.exec(K());let s=0;if(t&&t[0].length>2&&(s=t[0].length,D.index+=s,s%2!=0&&(H+="\\")),!0===r.unescape?H=U()||"":H+=U()||"",0===D.brackets){z({type:"text",value:H});continue}}if(D.brackets>0&&("]"!==H||"["===q.value||"[^"===q.value)){if(!1!==r.posix&&":"===H){const e=q.value.slice(1);if(e.includes("[")&&(q.posix=!0,e.includes(":"))){const e=q.value.lastIndexOf("["),t=q.value.slice(0,e),r=q.value.slice(e+2),s=o[r];if(s){q.value=t+s,D.backtrack=!0,U(),d.output||1!==f.indexOf(q)||(d.output=T);continue}}}("["===H&&":"!==B()||"-"===H&&"]"===B())&&(H=`\\${H}`),"]"!==H||"["!==q.value&&"[^"!==q.value||(H=`\\${H}`),!0===r.posix&&"!"===H&&"["===q.value&&(H="^"),q.value+=H,F({value:H});continue}if(1===D.quotes&&'"'!==H){H=n.escapeRegex(H),q.value+=H,F({value:H});continue}if('"'===H){D.quotes=1===D.quotes?0:1,!0===r.keepQuotes&&z({type:"text",value:H});continue}if("("===H){W("parens"),z({type:"paren",value:H});continue}if(")"===H){if(0===D.parens&&!0===r.strictBrackets)throw new SyntaxError(h("opening","("));const e=L[L.length-1];if(e&&D.parens===e.parens+1){Y(L.pop());continue}z({type:"paren",value:H,output:D.parens?")":"\\)"}),X("parens");continue}if("["===H){if(!0!==r.nobracket&&K().includes("]"))W("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));H=`\\${H}`}z({type:"bracket",value:H});continue}if("]"===H){if(!0===r.nobracket||q&&"bracket"===q.type&&1===q.value.length){z({type:"text",value:H,output:`\\${H}`});continue}if(0===D.brackets){if(!0===r.strictBrackets)throw new SyntaxError(h("opening","["));z({type:"text",value:H,output:`\\${H}`});continue}X("brackets");const e=q.value.slice(1);if(!0===q.posix||"^"!==e[0]||e.includes("/")||(H=`/${H}`),q.value+=H,F({value:H}),!1===r.literalBrackets||n.hasRegexChars(e))continue;const t=n.escapeRegex(q.value);if(D.output=D.output.slice(0,-q.value.length),!0===r.literalBrackets){D.output+=t,q.value=t;continue}q.value=`(${y}${t}|${q.value})`,D.output+=q.value;continue}if("{"===H&&!0!==r.nobrace){W("braces");const e={type:"brace",value:H,output:"(",outputIndex:D.output.length,tokensIndex:D.tokens.length};k.push(e),z(e);continue}if("}"===H){const e=k[k.length-1];if(!0===r.nobrace||!e){z({type:"text",value:H,output:H});continue}let t=")";if(!0===e.dots){const e=f.slice(),s=[];for(let t=e.length-1;t>=0&&(f.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&s.unshift(e[t].value);t=u(s,r),D.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=D.output.slice(0,e.outputIndex),s=D.tokens.slice(e.tokensIndex);e.value=e.output="\\{",H=t="\\}",D.output=r;for(const e of s)D.output+=e.output||e.value}z({type:"brace",value:H,output:t}),X("braces"),k.pop();continue}if("|"===H){L.length>0&&L[L.length-1].conditions++,z({type:"text",value:H});continue}if(","===H){let e=H;const t=k[k.length-1];t&&"braces"===j[j.length-1]&&(t.comma=!0,e="|"),z({type:"comma",value:H,output:e});continue}if("/"===H){if("dot"===q.type&&D.index===D.start+1){D.start=D.index+1,D.consumed="",D.output="",f.pop(),q=d;continue}z({type:"slash",value:H,output:R});continue}if("."===H){if(D.braces>0&&"dot"===q.type){"."===q.value&&(q.output=S);const e=k[k.length-1];q.type="dots",q.output+=H,q.value+=H,e.dots=!0;continue}if(D.braces+D.parens===0&&"bos"!==q.type&&"slash"!==q.type){z({type:"text",value:H,output:S});continue}z({type:"dot",value:H,output:S});continue}if("?"===H){if((!q||"("!==q.value)&&!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Q("qmark",H);continue}if(q&&"paren"===q.type){const e=B();let t=H;if("<"===e&&!n.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===q.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),z({type:"text",value:H,output:t});continue}if(!0!==r.dot&&("slash"===q.type||"bos"===q.type)){z({type:"qmark",value:H,output:C});continue}z({type:"qmark",value:H,output:x});continue}if("!"===H){if(!0!==r.noextglob&&"("===B()&&("?"!==B(2)||!/[!=<:]/.test(B(3)))){Q("negate",H);continue}if(!0!==r.nonegate&&0===D.index){V();continue}}if("+"===H){if(!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Q("plus",H);continue}if(q&&"("===q.value||!1===r.regex){z({type:"plus",value:H,output:b});continue}if(q&&("bracket"===q.type||"paren"===q.type||"brace"===q.type)||D.parens>0){z({type:"plus",value:H});continue}z({type:"plus",value:b});continue}if("@"===H){if(!0!==r.noextglob&&"("===B()&&"?"!==B(2)){z({type:"at",extglob:!0,value:H,output:""});continue}z({type:"text",value:H});continue}if("*"!==H){"$"!==H&&"^"!==H||(H=`\\${H}`);const e=a.exec(K());e&&(H+=e[0],D.index+=e[0].length),z({type:"text",value:H});continue}if(q&&("globstar"===q.type||!0===q.star)){q.type="star",q.star=!0,q.value+=H,q.output=I,D.backtrack=!0,D.globstar=!0,J(H);continue}let t=K();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Q("star",H);continue}if("star"===q.type){if(!0===r.noglobstar){J(H);continue}const s=q.prev,n=s.prev,i="slash"===s.type||"bos"===s.type,o=n&&("star"===n.type||"globstar"===n.type);if(!0===r.bash&&(!i||t[0]&&"/"!==t[0])){z({type:"star",value:H,output:""});continue}const a=D.braces>0&&("comma"===s.type||"brace"===s.type),c=L.length&&("pipe"===s.type||"paren"===s.type);if(!i&&"paren"!==s.type&&!a&&!c){z({type:"star",value:H,output:""});continue}for(;"/**"===t.slice(0,3);){const r=e[D.index+4];if(r&&"/"!==r)break;t=t.slice(3),J("/**",3)}if("bos"===s.type&&G()){q.type="globstar",q.value+=H,q.output=w(r),D.output=q.output,D.globstar=!0,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&!o&&G()){D.output=D.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=w(r)+(r.strictSlashes?")":"|$)"),q.value+=H,D.globstar=!0,D.output+=s.output+q.output,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";D.output=D.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=`${w(r)}${R}|${R}${e})`,q.value+=H,D.output+=s.output+q.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}if("bos"===s.type&&"/"===t[0]){q.type="globstar",q.value+=H,q.output=`(?:^|${R}|${w(r)}${R})`,D.output=q.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}D.output=D.output.slice(0,-q.output.length),q.type="globstar",q.output=w(r),q.value+=H,D.output+=q.output,D.globstar=!0,J(H);continue}const s={type:"star",value:H,output:I};!0!==r.bash?!q||"bracket"!==q.type&&"paren"!==q.type||!0!==r.regex?(D.index!==D.start&&"slash"!==q.type&&"dot"!==q.type||("dot"===q.type?(D.output+=P,q.output+=P):!0===r.dot?(D.output+=v,q.output+=v):(D.output+=_,q.output+=_),"*"!==B()&&(D.output+=T,q.output+=T)),z(s)):(s.output=H,z(s)):(s.output=".*?","bos"!==q.type&&"slash"!==q.type||(s.output=_+s.output),z(s))}for(;D.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));D.output=n.escapeLast(D.output,"["),X("brackets")}for(;D.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing",")"));D.output=n.escapeLast(D.output,"("),X("parens")}for(;D.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","}"));D.output=n.escapeLast(D.output,"{"),X("braces")}if(!0===r.strictSlashes||"star"!==q.type&&"bracket"!==q.type||z({type:"maybe_slash",value:"",output:`${R}?`}),!0===D.backtrack){D.output="";for(const e of D.tokens)D.output+=null!=e.output?e.output:e.value,e.suffix&&(D.output+=e.suffix)}return D};l.fastpaths=(e,t)=>{const r={...t},o="number"==typeof r.maxLength?Math.min(i,r.maxLength):i,a=e.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);e=p[e]||e;const{DOT_LITERAL:c,SLASH_LITERAL:u,ONE_CHAR:h,DOTS_SLASH:l,NO_DOT:m,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:y,START_ANCHOR:g}=s.globChars(r.windows),O=r.dot?d:m,S=r.dot?f:m,b=r.capture?"":"?:";let R=!0===r.bash?".*?":y;r.capture&&(R=`(${R})`);const T=e=>!0===e.noglobstar?R:`(${b}(?:(?!${g}${e.dot?l:c}).)*?)`,A=e=>{switch(e){case"*":return`${O}${h}${R}`;case".*":return`${c}${h}${R}`;case"*.*":return`${O}${R}${c}${h}${R}`;case"*/*":return`${O}${R}${u}${h}${S}${R}`;case"**":return O+T(r);case"**/*":return`(?:${O}${T(r)}${u})?${S}${h}${R}`;case"**/*.*":return`(?:${O}${T(r)}${u})?${S}${R}${c}${h}${R}`;case"**/.*":return`(?:${O}${T(r)}${u})?${c}${h}${R}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=A(t[1]);if(!r)return;return r+c+t[2]}}},E=n.removePrefix(e,{negated:!1,prefix:""});let P=A(E);return P&&!0!==r.strictSlashes&&(P+=`${u}?`),P},e.exports=l},555:(e,t,r)=>{const s=r(270),n=r(390),i=r(290),o=r(379),a=(e,t,r=!1)=>{if(Array.isArray(e)){const s=e.map((e=>a(e,t,r))),n=e=>{for(const t of s){const r=t(e);if(r)return r}return!1};return n}const s=(n=e)&&"object"==typeof n&&!Array.isArray(n)&&e.tokens&&e.input;var n;if(""===e||"string"!=typeof e&&!s)throw new TypeError("Expected pattern to be a non-empty string");const i=t||{},o=i.windows,c=s?a.compileRe(e,t):a.makeRe(e,t,!1,!0),p=c.state;delete c.state;let u=()=>!1;if(i.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};u=a(i.ignore,e,r)}const h=(r,s=!1)=>{const{isMatch:n,match:h,output:l}=a.test(r,c,t,{glob:e,posix:o}),m={glob:e,state:p,regex:c,posix:o,input:r,output:l,match:h,isMatch:n};return"function"==typeof i.onResult&&i.onResult(m),!1===n?(m.isMatch=!1,!!s&&m):u(r)?("function"==typeof i.onIgnore&&i.onIgnore(m),m.isMatch=!1,!!s&&m):("function"==typeof i.onMatch&&i.onMatch(m),!s||m)};return r&&(h.state=p),h};a.test=(e,t,r,{glob:s,posix:n}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const o=r||{},c=o.format||(n?i.toPosixSlashes:null);let p=e===s,u=p&&c?c(e):e;return!1===p&&(u=c?c(e):e,p=u===s),!1!==p&&!0!==o.capture||(p=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,n):t.exec(u)),{isMatch:Boolean(p),match:p,output:u}},a.matchBase=(e,t,r)=>(t instanceof RegExp?t:a.makeRe(t,r)).test(i.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map((e=>a.parse(e,t))):n(e,{...t,fastpaths:!1}),a.scan=(e,t)=>s(e,t),a.compileRe=(e,t,r=!1,s=!1)=>{if(!0===r)return e.output;const n=t||{},i=n.contains?"":"^",o=n.contains?"":"$";let c=`${i}(?:${e.output})${o}`;e&&!0===e.negated&&(c=`^(?!${c}).*$`);const p=a.toRegex(c,t);return!0===s&&(p.state=e),p},a.makeRe=(e,t,r=!1,s=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let o,c={negated:!1,fastpaths:!0},p="";return e.startsWith("./")&&(e=e.slice(2),p=c.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(o=n.fastpaths(e,t)),void 0===o?(c=n(e,t),c.prefix=p+(c.prefix||"")):c.output=o,a.compileRe(c,t,r,s)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=o,e.exports=a},270:(e,t,r)=>{const s=r(290),{CHAR_ASTERISK:n,CHAR_AT:i,CHAR_BACKWARD_SLASH:o,CHAR_COMMA:a,CHAR_DOT:c,CHAR_EXCLAMATION_MARK:p,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:h,CHAR_LEFT_PARENTHESES:l,CHAR_LEFT_SQUARE_BRACKET:m,CHAR_PLUS:d,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:y,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:O}=r(379),S=e=>e===u||e===o,b=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},R=e.length-1,T=!0===r.parts||!0===r.scanToEnd,A=[],E=[],P=[];let v,x,C=e,$=-1,M=0,w=0,_=!1,N=!1,I=!1,D=!1,L=!1,k=!1,j=!1,H=!1,q=!1,G=0,B={value:"",depth:0,isGlob:!1};const U=()=>$>=R,K=()=>(v=x,C.charCodeAt(++$));for(;$<R;){let e;if(x=K(),x!==o){if(!0===k||x===h){for(G++;!0!==U()&&(x=K());)if(x!==o)if(x!==h){if(!0!==k&&x===c&&(x=K())===c){if(_=B.isBrace=!0,I=B.isGlob=!0,q=!0,!0===T)continue;break}if(!0!==k&&x===a){if(_=B.isBrace=!0,I=B.isGlob=!0,q=!0,!0===T)continue;break}if(x===y&&(G--,0===G)){k=!1,_=B.isBrace=!0,q=!0;break}}else G++;else j=B.backslashes=!0,K();if(!0===T)continue;break}if(x!==u){if(!0!==r.noext&&!0==(x===d||x===i||x===n||x===f||x===p)&&C.charCodeAt($+1)===l){if(I=B.isGlob=!0,D=B.isExtglob=!0,q=!0,!0===T){for(;!0!==U()&&(x=K());)if(x!==o){if(x===g){I=B.isGlob=!0,q=!0;break}}else j=B.backslashes=!0,x=K();continue}break}if(x===n){if(v===n&&(L=B.isGlobstar=!0),I=B.isGlob=!0,q=!0,!0===T)continue;break}if(x===f){if(I=B.isGlob=!0,q=!0,!0===T)continue;break}if(x===m)for(;!0!==U()&&(e=K());)if(e!==o){if(e===O){if(N=B.isBracket=!0,I=B.isGlob=!0,q=!0,!0===T)continue;break}}else j=B.backslashes=!0,K();if(!0===r.nonegate||x!==p||$!==M){if(!0!==r.noparen&&x===l){if(I=B.isGlob=!0,!0===T){for(;!0!==U()&&(x=K());)if(x!==l){if(x===g){q=!0;break}}else j=B.backslashes=!0,x=K();continue}break}if(!0===I){if(q=!0,!0===T)continue;break}}else H=B.negated=!0,M++}else{if(A.push($),E.push(B),B={value:"",depth:0,isGlob:!1},!0===q)continue;if(v===c&&$===M+1){M+=2;continue}w=$+1}}else j=B.backslashes=!0,x=K(),x===h&&(k=!0)}!0===r.noext&&(D=!1,I=!1);let J=C,F="",V="";M>0&&(F=C.slice(0,M),C=C.slice(M),w-=M),J&&!0===I&&w>0?(J=C.slice(0,w),V=C.slice(w)):!0===I?(J="",V=C):J=C,J&&""!==J&&"/"!==J&&J!==C&&S(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(V&&(V=s.removeBackslashes(V)),J&&!0===j&&(J=s.removeBackslashes(J)));const W={prefix:F,input:e,start:M,base:J,glob:V,isBrace:_,isBracket:N,isGlob:I,isExtglob:D,isGlobstar:L,negated:H};if(!0===r.tokens&&(W.maxDepth=0,S(x)||E.push(B),W.tokens=E),!0===r.parts||!0===r.tokens){let t;for(let s=0;s<A.length;s++){const n=t?t+1:M,i=A[s],o=e.slice(n,i);r.tokens&&(0===s&&0!==M?(E[s].isPrefix=!0,E[s].value=F):E[s].value=o,b(E[s]),W.maxDepth+=E[s].depth),0===s&&""===o||P.push(o),t=i}if(t&&t+1<e.length){const s=e.slice(t+1);P.push(s),r.tokens&&(E[E.length-1].value=s,b(E[E.length-1]),W.maxDepth+=E[E.length-1].depth)}W.slashes=A,W.parts=P}return W}},290:(e,t,r)=>{const{REGEX_BACKSLASH:s,REGEX_REMOVE_BACKSLASH:n,REGEX_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_GLOBAL:o}=r(379);t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>i.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(o,"\\$1"),t.toPosixSlashes=e=>e.replace(s,"/"),t.removeBackslashes=e=>e.replace(n,(e=>"\\"===e?"":e)),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.escapeLast=(e,r,s)=>{const n=e.lastIndexOf(r,s);return-1===n?e:"\\"===e[n-1]?t.escapeLast(e,r,n-1):`${e.slice(0,n)}\\${e.slice(n)}`},t.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r},t.wrapOutput=(e,t={},r={})=>{let s=`${r.contains?"":"^"}(?:${e})${r.contains?"":"$"}`;return!0===t.negated&&(s=`(?:^(?!${s}).*$)`),s},t.basename=(e,{windows:t}={})=>t?e.replace(/[\\/]$/,"").replace(/.*[\\/]/,""):e.replace(/\/$/,"").replace(/.*\//,"")},203:(e,t,r)=>{var s=r(739);function n(e){if(!Object.prototype.hasOwnProperty.call(i.message,e))throw new Error("invalid status code: "+e);return i.message[e]}function i(e){if("number"==typeof e)return n(e);if("string"!=typeof e)throw new TypeError("code must be a number or string");var t=parseInt(e,10);return isNaN(t)?function(e){var t=e.toLowerCase();if(!Object.prototype.hasOwnProperty.call(i.code,t))throw new Error('invalid status message: "'+e+'"');return i.code[t]}(e):n(t)}e.exports=i,i.message=s,i.code=function(e){var t={};return Object.keys(e).forEach((function(r){var s=e[r],n=Number(r);t[s.toLowerCase()]=n})),t}(s),i.codes=function(e){return Object.keys(e).map((function(e){return Number(e)}))}(s),i.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0},i.empty={204:!0,205:!0,304:!0},i.retry={502:!0,503:!0,504:!0}},803:e=>{e.exports=t},598:t=>{t.exports=e},739:e=>{e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{n.r(i),n.d(i,{ARRAY_PROPERTIES:()=>xe,AcceptMime:()=>Zr,AdditionalProperties:()=>vt,All:()=>Ps,AllOf:()=>xt,Allow:()=>$t,Any:()=>Mt,AnyOf:()=>wt,ArrayOf:()=>gt,BOOLEAN_PROPERTIES:()=>Pe,COMMON_PROPERTIES:()=>$e,Children:()=>dt,CollectionContains:()=>St,CollectionOf:()=>yt,Const:()=>_t,Consumes:()=>es,ContentType:()=>cs,Converter:()=>ln,CustomKey:()=>Nt,CustomKeys:()=>It,DateFormat:()=>Zt,DateTime:()=>Yt,DecoratorContext:()=>ts,Default:()=>Dt,DefaultMsg:()=>kt,Delete:()=>$s,Deprecated:()=>ps,Description:()=>jt,Discriminator:()=>v,DiscriminatorKey:()=>Ht,DiscriminatorValue:()=>ft,Email:()=>Qt,EndpointMetadata:()=>X,Enum:()=>qt,ErrorMsg:()=>Lt,Example:()=>Gt,Examples:()=>Bt,ExclusiveMaximum:()=>Jt,ExclusiveMinimum:()=>Wt,For:()=>Tr,Format:()=>zt,ForwardGroups:()=>sr,GenericOf:()=>zr,Generics:()=>Qr,Get:()=>vs,Groups:()=>cr,HTTP_STATUS_MESSAGES:()=>Ye,Head:()=>Ms,Header:()=>us,Hidden:()=>pr,Ignore:()=>ur,In:()=>hs,InFile:()=>ls,Integer:()=>hr,JSON_TYPES:()=>R,JsonClassStore:()=>w,JsonEntitiesContainer:()=>f,JsonEntityComponent:()=>M,JsonEntityFn:()=>mt,JsonEntityStore:()=>y,JsonFormatTypes:()=>Xt,JsonLazyRef:()=>he,JsonMap:()=>I,JsonMedia:()=>J,JsonMethodStore:()=>W,JsonOperation:()=>V,JsonOperationPathsMap:()=>Q,JsonOperationRoute:()=>qs,JsonParameter:()=>j,JsonParameterStore:()=>H,JsonParameterTypes:()=>D,JsonPropertyStore:()=>_,JsonRequestBody:()=>st,JsonResponse:()=>F,JsonSchema:()=>$,Location:()=>ms,MANY_OF_PROPERTIES:()=>Ae,MapOf:()=>Ot,Max:()=>Kt,MaxItems:()=>Rt,MaxLength:()=>lr,MaxProperties:()=>Tt,Maximum:()=>Ut,Min:()=>Vt,MinItems:()=>At,MinLength:()=>mr,MinProperties:()=>Et,Minimum:()=>Ft,MultipleOf:()=>dr,NUMBER_PROPERTIES:()=>ve,Name:()=>fr,Nullable:()=>yr,OBJECT_PROPERTIES:()=>Ce,OPERATION_HTTP_VERBS:()=>r,OPERATION_WS_VERBS:()=>s,OneOf:()=>gr,Operation:()=>gs,OperationId:()=>Os,OperationMethods:()=>o,OperationPath:()=>Ss,OperationVerbs:()=>e,Optional:()=>Or,Options:()=>_s,ParamMetadata:()=>q,Partial:()=>bs,Patch:()=>ws,Path:()=>Rs,Pattern:()=>Sr,Post:()=>xs,Produces:()=>Yr,Property:()=>Ct,PropertyMetadata:()=>N,Publish:()=>Ts,Put:()=>Cs,ReadOnly:()=>br,RecordOf:()=>Ar,Redirect:()=>As,Required:()=>Er,RequiredGroups:()=>Pr,Returns:()=>as,Route:()=>Es,STRING_PROPERTIES:()=>Ee,Schema:()=>Rr,Security:()=>Ns,SpecTypes:()=>se,Status:()=>Is,Subscribe:()=>Ds,Summary:()=>Ls,Tags:()=>ks,TimeFormat:()=>er,Title:()=>vr,TypeError:()=>xr,UniqueItems:()=>Pt,Uri:()=>tr,Url:()=>rr,View:()=>js,WriteOnly:()=>Cr,allOf:()=>Vr,alterIgnore:()=>we,alterOneOf:()=>He,alterRequiredGroups:()=>De,any:()=>Kr,anyMapper:()=>fe,anyOf:()=>Jr,array:()=>qr,boolean:()=>Nr,buildPath:()=>m,channelsMapper:()=>re,classMapper:()=>ye,concatParameters:()=>ot,concatPath:()=>Hs,createRef:()=>me,createRefName:()=>le,date:()=>Ir,datetime:()=>Dr,defineStatusModel:()=>ss,email:()=>kr,enums:()=>Xr,enumsRegistry:()=>S,execMapper:()=>u,formatParameterType:()=>L,from:()=>$r,generateSpec:()=>dn,genericsMapper:()=>ge,getComputedType:()=>b,getGenericsMap:()=>oe,getInheritedStores:()=>Y,getJsonEntityStore:()=>z,getJsonPathParameters:()=>at,getJsonSchema:()=>yn,getJsonSchemaMapper:()=>p,getJsonType:()=>T,getOperationId:()=>pt,getOperationsRoutes:()=>gn,getOperationsStores:()=>Z,getProperties:()=>Sn,getPropertiesStores:()=>On,getSpec:()=>Ws,getSpecType:()=>Xs,getSpecTypeFromSpec:()=>zs,getStatusConstant:()=>Ze,getStatusMessage:()=>et,getStatusModel:()=>ns,hasMapper:()=>h,inheritedClassMapper:()=>Oe,inlineEnumsMapper:()=>Se,integer:()=>wr,isParameterType:()=>k,isRedirectionStatus:()=>B,isSuccessStatus:()=>G,itemMapper:()=>be,lazyRef:()=>Wr,lazyRefMapper:()=>Re,makeOf:()=>ne,map:()=>Gr,mapAliasedProperties:()=>ke,mapGenericsOptions:()=>ae,mapHeaders:()=>U,mapMapper:()=>Te,mapOpenSpec:()=>en,mapOpenSpec2:()=>Ys,mapOpenSpec3:()=>Zs,mapOpenSpecInfo:()=>Qs,mapOperationOptions:()=>fs,matchGroups:()=>ar,mergeSpec:()=>Fs,messageMapper:()=>ie,nullableMapper:()=>Me,nullableMapperOpenApi:()=>Ke,number:()=>Mr,object:()=>Ur,objectMapper:()=>_e,ofMapper:()=>Ne,oneOf:()=>Fr,oneOfMapper:()=>l,operationIdFormatter:()=>ct,operationInFilesMapper:()=>Je,operationInParameterMapper:()=>Fe,operationInParametersMapper:()=>Ve,operationInQueryMapper:()=>Xe,operationMapper:()=>tt,operationMediaMapper:()=>rt,operationRequestBodyMapper:()=>nt,operationResponseMapper:()=>it,parameters:()=>Bs,pathsMapper:()=>lt,payloadMapper:()=>pe,popGenerics:()=>ce,propertiesMapper:()=>Ie,registerJsonSchemaMapper:()=>c,removeHiddenOperation:()=>ee,requiredMapper:()=>Le,responsePayloadMapper:()=>ue,schemaMapper:()=>Be,schemesReducer:()=>Gs,security:()=>Us,serializeEnum:()=>A,serializeEnumValues:()=>E,set:()=>Br,string:()=>_r,tagsReducer:()=>Ks,time:()=>Lr,toJsonMapCollection:()=>K,toJsonRegex:()=>P,toRef:()=>de,transformInformation:()=>hn,transformSecurity:()=>un,transformToOS2:()=>mn,uri:()=>jr,url:()=>Hr,withErrorMsg:()=>bt});var e,t=n(598);!function(e){e.ALL="ALL",e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.HEAD="HEAD",e.DELETE="DELETE",e.OPTIONS="OPTIONS",e.TRACE="TRACE",e.PUBLISH="PUBLISH",e.SUBSCRIBE="SUBSCRIBE",e.CUSTOM="CUSTOM"}(e||(e={}));const r=[e.ALL,e.GET,e.POST,e.PUT,e.PATCH,e.HEAD,e.DELETE,e.OPTIONS,e.TRACE,e.CUSTOM],s=[e.PUBLISH,e.SUBSCRIBE],o=e,a=new Map;function c(e,t,r){return a.set(r?`${r}:${e}`:e,t)}function p(e,t){const r=a.get(`${t?.specType}:${e}`)||a.get(e);if(r)return r;throw new Error(`JsonSchema ${e} mapper doesn't exists`)}function u(e,t,r,s){return p(e,r)(...t,r,s)}function h(e){return a.has(e)}function l(e,t){return e.find((e=>a.has(`${t?.specType}:${e}`)))||e.find((e=>a.has(e)))}function m(e){return e.split("/").filter(Boolean).join("/")}var d=n(803);const f=new Map;class y{propertyKey;propertyName;index;descriptor;decoratorType;collectionType;token;store;isStore=!0;parent;target;_type;_schema;constructor(e){const{target:t,propertyKey:r,descriptor:s,index:n,decoratorType:i}=e;this.target=t,this.propertyKey=r,this.propertyName=String(r),this.descriptor=s,this.index=n,this.decoratorType=i,this.token=t,this.store=e.store,this.parent=this}get targetName(){return(0,d.nameOf)(this.token)}get isCollection(){return!!this.collectionType}get isArray(){return(0,d.isArrayOrArrayClass)(this.collectionType)}get discriminatorAncestor(){const e=(0,d.ancestorsOf)(this.target).find((e=>y.from(e).schema.isDiscriminator));return e&&y.from(e)}get isPrimitive(){return(0,d.isPrimitiveOrPrimitiveClass)(this._type)}get isDate(){return(0,d.isDate)(this.computedType)}get isObject(){return(0,d.isObject)(this.computedType)}get isClass(){return(0,d.isClass)(this.computedType)}get schema(){return this._schema}get nestedGenerics(){return this.schema.nestedGenerics}set nestedGenerics(e){this.schema.nestedGenerics=e}get type(){return this._type}set type(e){this._type=e,this.build()}get computedType(){return this.itemSchema.getComputedType()}get itemSchema(){return this.isCollection?this.schema.itemSchema():this.schema}get parentSchema(){return this.parent.schema}get isDiscriminatorChild(){return this.schema.isDiscriminator&&this.discriminatorAncestor?.schema.discriminator().base!==this.target}static from(...e){if(e[0].isStore)return e[0];const t=e[0];e.length>1&&(e[0]=(0,d.prototypeOf)(e[0]));const r=d.Store.from(...e);if(!r.has("JsonEntityStore")){const s=(0,d.decoratorTypeOf)(e),n=new(f.get(s))({store:r,decoratorType:s,target:(0,d.classOf)(t),propertyKey:e[1],index:"number"==typeof e[2]?e[2]:void 0,descriptor:"object"==typeof e[2]?e[2]:void 0});n.build(),r.set("JsonEntityStore",n)}return r.get("JsonEntityStore")}static fromMethod(e,t){return this.from(e,t,(0,d.descriptorOf)(e,t))}static get(e,t,r){return y.from((0,d.prototypeOf)(e),t,r)}isGetterOnly(){return(0,d.isObject)(this.descriptor)&&!this.descriptor.value&&this.descriptor.get&&!this.descriptor.set}get(e,t){return this.store.get(e,t)}set(e,t){return this.store.set(e,t)}toString(){return[this.targetName,this.propertyName,this.index].filter((e=>void 0!==e)).join(":")}buildType(e){(0,d.isCollection)(e)?this.collectionType=e:(this._type=e,this._type&&(0,d.isPlainObject)(this._type)&&(this._type=String))}getBestType(){return this.itemSchema.hasDiscriminator?this.itemSchema.discriminator().base:(0,d.isClassObject)(this.type)?this.itemSchema.getTarget():(0,d.isArrowFn)(this.type)?this.type():this.type}}function g(e,t,r,s){var n,i=arguments.length,o=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,s);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(i<3?n(o):i>3?n(t,r,o):n(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o}function O(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;const S=new Map;function b(e){return(0,d.isPromise)(e)||e===Function?Object:(0,d.isClass)(e)||(0,d.isSymbol)(e)||(0,d.isPrimitiveOrPrimitiveClass)(e)||(0,d.isClassObject)(e)||(0,d.isDate)(e)||(0,d.isCollection)(e)?(0,d.classOf)(e):(0,d.isArrowFn)(e)?e():e}const R=["string","number","integer","boolean","object","array","null","any"];function T(e){return null===e?"null":(0,d.isPrimitiveOrPrimitiveClass)(e)?R.indexOf(e)>-1?e:"string"==typeof e?"file"===e?"file":"generic":(0,d.primitiveOf)(e):e===Array?"array":(0,d.isArray)(e)?e.map(T):e===Set?"array":(0,d.isDate)(e)||(0,d.isBuffer)(e)?"string":"object"}const A=e=>(0,d.isObject)(e)&&null!==e?Object.entries(e).reduce(((e,[t,r])=>isNaN(+t)?e.concat(r):e),[]):e;function E(e){const t=e.reduce(((e,t)=>e.concat(A(t))),[]),r=t.reduce(((e,t)=>e.add((e=>null===e?"null":typeof e)(t))),new Set);return{values:(0,d.uniq)(t),types:r}}function P(e){return String(e).replace(/^(\/)(.*)(\/)$/,"$2")}class v{propertyName;base;values=new Map;types=new Map;constructor({base:e,propertyName:t,types:r,values:s}={}){Object.assign(this,(0,d.cleanObject)({base:e,propertyName:t,types:r?new Map(r):void 0,values:s?new Map(s):void 0}))}add(e,t){return t.forEach((t=>{this.values.set(t,e)})),this.types.set(e,t),this}getType(e){return this.values.get(e)||this.base}getValues(e){return this.types.get(e)}getDefaultValue(e){const t=this.types.get(e);return t?t[0]:void 0}children(){return[...new Set([...this.types.keys()])]}}function x(e){return e instanceof $?e:Object.entries(e).reduce(((e,[t,r])=>(e[P(t)]=C(r),e)),{})}function C(e){return(0,d.isArray)(e)?e.map(C):e.isStore||e.$isJsonDocument||e.isLazyRef?e:(0,d.classOf)(e)!==Object&&(0,d.isClass)(e)?y.from(e).schema:(0,d.isObject)(e)?$.from(e):(0,d.isPrimitiveClass)(e)?$.from({type:e}):e}class $ extends Map{$kind="schema";$isJsonDocument=!0;$hooks=new d.Hooks;$required=new Set;$allow=[];$selfRequired;$forwardGroups=!1;$ignore=!1;isDiscriminatorKey=!1;isDiscriminator=!1;#e=!1;#t=null;#r;#s=[];#n=new Map;#i;#o;#a=!1;#c=!1;#p=!1;constructor(e={}){super(),e&&this.assign(e)}get alias(){return this.#n}get nestedGenerics(){return this.#s}set nestedGenerics(e){this.#s=e}get genericLabels(){return this.#r}set genericLabels(e){this.#r=e}get isClass(){return(0,d.isClass)(this.class)&&![Map,Array,Set,Object,Date,Boolean,Number,String].includes(this.#o)}get isCollection(){return this.#c}get isGeneric(){return this.#a}get discriminatorAncestor(){const e=(0,d.ancestorsOf)(this.#o).find((e=>y.from(e).schema.isDiscriminator));return e&&y.from(e).schema}get hasGenerics(){return!(!this.nestedGenerics||!this.nestedGenerics.length)}get genericType(){return this.get("$ref")}get class(){return this.getComputedType()}get canRef(){return this.#p}get isNullable(){return this.#e}get isReadOnly(){return this.get("readOnly")}get isWriteOnly(){return this.get("writeOnly")}get hasDiscriminator(){return!!this.#t}static from(e={}){return new $(e)}nullable(e){this.#e=e}itemSchema(e={}){return this.#i=this.#i||C(e),this.#i.assign(e),this.#i}getAliasOf(e){return this.#n.get(e)}addAlias(e,t){return this.#n.set(e,t),this.#n.set(t,e),this}removeAlias(e){const t=this.#n.get(e);return t&&this.#n.delete(t),this.#n.delete(e),this}$id(e){return super.set("$id",e),this}$ref(e){return super.set("$ref",e),this}$schema(e){return super.set("$schema",e),this}label(e){return this.#p=!0,super.set("name",e),this}name(e){return super.set("name",e),this}ignore(e){return"boolean"!=typeof e&&this.$hooks.on("ignore",e),this.$ignore=e,this}default(e){return super.set("default",e),this}const(e){return super.set("const",e),this}description(e){return super.set("description",e),this}discriminator(){return this.isDiscriminator=!0,this.#t=this.#t||new v({base:this.#o})}discriminatorKey(e){return this.discriminator().propertyName=e,this.isDiscriminator=!0,this}discriminatorValue(...e){const t=this.discriminatorAncestor.discriminator();t.add(this.#o,e),this.isDiscriminator=!0;const r=this.get("properties"),s=r[t.propertyName]||new $({type:"string"});return 1===e.length?(s.const(e[0]),s.examples([e[0]])):(s.enum(...e),s.examples(e)),r[t.propertyName]=s,this.set("properties",r),this}additionalItems(e){return super.set("additionalItems",C(e)),this}contains(e){return super.set("contains",C(e)),this}examples(e){return super.set("examples",e),this}example(...e){return this.examples(e)}items(e){return super.set("items",this.#i=C(e)),this}maxItems(e){return super.set("maxItems",e),this}minItems(e){return super.set("minItems",e),this}uniqueItems(e){return super.set("uniqueItems",e),this}maxProperties(e){return super.set("maxProperties",e),this}minProperties(e){return super.set("minProperties",e),this}allow(...e){return[].concat(this.getJsonType()).includes("string")&&!this.has("minLength")&&this.minLength(1),e.forEach((e=>{switch(e){case"":this.set("minLength",void 0);break;case null:this.any(...["null"].concat(this.getJsonType(),this.$allow.map((e=>typeof e))))}})),this.$allow.push(...e),this}required(e=!0){if(!(0,d.isArray)(e)){const t=this.clone();return t.$selfRequired=e,[].concat(t.getJsonType()).includes("string")&&t.minLength(1),t}return this.$required.clear(),e.forEach((e=>this.$required.add(e))),this}addRequired(e){return this.$required.add(e),this}removeRequired(e){return this.$required.delete(e),this}isRequired(e){return this.$required.has(e)}properties(e){return super.set("properties",x(e)),this}addProperty(e,t){const r=this.get("properties")||{};return r[e]=t,super.set("properties",x(r)),this}patternProperties(e){return super.set("patternProperties",x(e)),this}additionalProperties(e){return super.set("additionalProperties",C(e)),this}unknown(e=!0){return this.additionalProperties(e)}dependencies(e){return super.set("dependencies",x(e)),this}propertyNames(e){return super.set("propertyNames",C(e)),this}enum(e,...t){if(S.has(e))return this.enum(S.get(e));if(e instanceof $)e.getName()?super.set("enum",e):super.set("enum",e.get("enum")).any(...e.get("enum").map((e=>typeof e)));else{const{values:r,types:s}=E([e,t].flat());super.set("enum",r).any(...s)}return this}definitions(e){return super.set("definitions",x(e)),this}allOf(e){return this.setManyOf("allOf",e),this}anyOf(e){return this.setManyOf("anyOf",e),this}oneOf(e){return this.setManyOf("oneOf",e),this}not(e){return super.set("not",C(e)),this}multipleOf(e){return super.set("multipleOf",e),this}maximum(e){return super.set("maximum",e),this}exclusiveMaximum(e){return super.set("exclusiveMaximum",e),this}minimum(e){return super.set("minimum",e),this}exclusiveMinimum(e){return super.set("exclusiveMinimum",e),this}maxLength(e){return super.set("maxLength",e),this}minLength(e){return super.set("minLength",e),this}pattern(e){return super.set("pattern",P(e)),this}format(e){return super.set("format",e),this}type(e){switch(e){case"map":case Map:super.set("type",T(e)),this.#o=e,this.#c=!0,this.has("additionalProperties")||super.set("additionalProperties",this.itemSchema({}));break;case"array":case Array:super.set("type",T(e)),this.#o=e,this.#c=!0,this.has("items")||super.set("items",this.itemSchema({}));break;case"set":case Set:super.set("type",T(e)),this.#o=e,this.#c=!0,this.uniqueItems(!0),this.has("items")||super.set("items",this.itemSchema({}));break;case"integer":this.integer();break;case"number":case"string":case"boolean":case"object":case Object:case Date:case Boolean:case Number:case String:super.set("type",T(e)),this.#o=e,this.has("properties")||super.set("properties",{});break;default:if((0,d.isClass)(e)||(0,d.isFunction)(e))super.set("type",void 0),this.#o=e,this.has("properties")||super.set("properties",{});else{const t=T(e);"generic"===t?(this.#a=!0,super.set("$ref",e)):super.set("type",t)}}return this}any(...e){return e=e.length?e:["integer","number","string","boolean","array","object","null"],(e=(0,d.uniq)(e).map((e=>(0,d.isClass)(e)?e:{type:T(e)}))).length>1?this.anyOf(e):this.type(e[0]?.type||e[0]),this}integer(){return super.set("type","integer"),super.set("multipleOf",1),this}title(e){return super.set("title",e),this}readOnly(e){return super.set("readOnly",e),this}writeOnly(e){return super.set("writeOnly",e),this}customKey(e,t){return super.set(`#${e}`,t),this}toObject(e){return this.toJSON(e)}toJSON(e){return u("schema",[this],e)}assign(e={}){return(e instanceof $?[...e.entries()]:Object.entries(e)).forEach((([e,t])=>{this.set(e,t)})),e instanceof $&&(this.$selfRequired=e.$selfRequired,this.$allow.push(...e.$allow),e.$required.forEach((e=>{this.$required.add(e)})),this.#t=this.#t?new v(this.#t):null,this.isDiscriminator=e.isDiscriminator,this.isDiscriminatorKey=e.isDiscriminatorKey,this.#p=e.#p,this.#n=new Map(this.#n.entries()),e.#r&&(this.#r=[...e.#r]),this.#s=e.#s.map((e=>[...e])),this.#o=e.#o,this.#a=e.#a,this.#c=e.#c,this.#p=e.#p,this.#e=e.#e,super.set("type",e.get("type"))),this}set(e,t){return e in this?(0,d.isFunction)(this[e])&&this[e](t):super.set(e,t),this}getComputedType(){return b(this.#o)}getComputedItemType(){return this.#i?this.#i.getComputedType():this.getComputedType()}getJsonType(){return this.get("anyOf")?this.get("anyOf").map((e=>e.getJsonType())):this.get("type")||T(this.getComputedType())}getTarget(){return this.#o}getName(){return this.get("name")||((0,d.isClass)(this.#o)?(0,d.nameOf)((0,d.classOf)(this.getComputedType())):"")}clone(){return new $(this)}setManyOf(e,t){let r=t.filter((e=>"null"!==e?.type||(this.nullable(!0),!1))).map(C);if(!(1!==r.length||t[0]instanceof $||this.isNullable)){if(!r[0].hasDiscriminator)return this.type(t[0]);const e=r[0].discriminator().children();if(!e.length)return this.type(t[0]);r=e.map(C)}super.set(e,r);const s=r[0];if(s.isDiscriminator){const e=s.discriminatorAncestor.discriminator(),{propertyName:t}=e;super.set("discriminator",{propertyName:t}),this.isDiscriminator=!0,this.#t=e}}}function M(e){return t=>{f.set(e,t)}}let w=class extends y{children=new Map;get path(){return this.store.get("path","/")}set path(e){this.store.set("path",e)}build(){this._type||this.buildType(this.target),this._type=this._type||Object,this._schema=$.from({type:this.type})}};w=g([M(d.DecoratorTypes.CLASS)],w);let _=class extends y{parent=y.from(this.target);get required(){return this.parent.schema.isRequired(this.propertyKey)}set required(e){e?this.parent.schema.addRequired(this.propertyKey):this.parent.schema.removeRequired(this.propertyKey)}get allowedRequiredValues(){return this.schema.$allow}discriminatorKey(){return this.parent.schema.discriminatorKey(String(this.propertyKey)),this.itemSchema.isDiscriminatorKey=!0,this}isDiscriminatorKey(){return this.itemSchema.isDiscriminatorKey}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}build(){this._type||this.buildType(d.Metadata.getType((0,d.prototypeOf)(this.target),this.propertyKey)),this._type=this._type||Object;let e=this.parent.schema.get("properties")[this.propertyName];e||(this.parent.children.set(this.propertyName,this),e=$.from({type:this.collectionType||this.type}),this.collectionType&&e.itemSchema(this.type)),this.parent.schema.addProperty(this.propertyName,e),this._schema=e}static get(e,t){return y.from((0,d.prototypeOf)(e),t)}};_=g([M(d.DecoratorTypes.PROP)],_);const N=_;class I extends Map{$kind="map";$isJsonDocument=!0;constructor(e={}){super(),this.assign(e)}assign(e={}){return Object.entries(e).forEach((([e,t])=>{(0,d.isFunction)(this[e])?this[e](t):this.set(e,t)})),this}toJSON(e){return u("map",[this],e)}}var D;function L(e){return String(e).toLowerCase().replace("raw_","").replace("cookies","cookie")}function k(e){return Object.values(D).includes(L(e))}!function(e){e.BODY="body",e.PATH="path",e.QUERY="query",e.HEADER="header",e.COOKIES="cookie",e.FILES="files"}(D||(D={}));class j extends I{$kind="operationInParameter";nestedGenerics=[];groups;groupsName;$schema;expression;getName(){const e=this.get("name");return"files"===this.get("in")?e.split(".")[0]:e}name(e){return this.set("name",e),this}examples(e){return super.set("examples",e),this}description(e){return this.set("description",e),this}in(e,t=""){return this.set("in",L(e)),this.expression=t,this}required(e){return this.set("required",e),this}schema(e){return this.$schema=e,this}toJSON(e){return u("operationInParameter",[this],e)}}let H=class extends y{paramType;expression;dataPath;pipes;parameter=new j;parent=y.fromMethod(this.target,this.propertyKey);constructor(e){super(e),this.pipes=e.pipes||[],this.paramType=e.paramType||this.paramType,this.expression=e.expression||this.expression,this.dataPath=e.dataPath||this.dataPath}get nestedGenerics(){return this.parameter.nestedGenerics}set nestedGenerics(e){this.parameter.nestedGenerics=e}get required(){return!!this.parameter.get("required")}set required(e){this.parameter.required(e)}get allowedRequiredValues(){return this.schema.$allow}static getParams(e,t){const r=[],s=(0,d.ancestorsOf)(e).reverse().find((e=>(0,d.isMethodDescriptor)(e,t)&&y.fromMethod(e,t).children.size));return s?(y.fromMethod(s,t).children.forEach(((e,t)=>{r[+t]=e})),r):[]}static get(e,t,r){return y.from((0,d.prototypeOf)(e),t,r)}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}getSchema(e){return(0,d.isCollection)(e)||!(0,d.isClass)(e)?$.from({type:e}):y.from(e).schema}build(){if(!this._type){const e=d.Metadata.getParamTypes((0,d.prototypeOf)(this.target),this.propertyKey)[this.index];this.buildType(e)}this._type=this._type||Object,this._schema||(this.parent.children.set(this.index,this),this._schema=this.getSchema(this.collectionType||this.type),this.parameter.schema(this._schema),this.collectionType&&this._schema.itemSchema(this.getSchema(this.type)),this.parent.operation.addParameter(this.index,this.parameter))}};H=g([M(d.DecoratorTypes.PARAM),O("design:paramtypes",[Object])],H);const q=H,G=e=>Number(e)&&200<=Number(e)&&Number(e)<300,B=e=>Number(e)&&300<=Number(e)&&Number(e)<400;function U(e){return Object.keys(e).reduce(((t,r)=>{const s=e[r];let n=typeof s,i={example:s};return"object"===n&&(i=s,i.example=void 0===i.value?i.example:i.value,delete i.value,n=typeof i.example),i.type=i.type||n,t[r]=(0,d.cleanObject)(i),t}),{})}function K(e,t=I){return Object.entries(e).reduce(((e,[r,s])=>(e.set(r,new t(s)),e)),new I)}class J extends I{$kind="operationMedia";groups=[];groupsName;allowedGroups;schema(e){return this.set("schema",e),this}examples(e){return this.set("examples",e),this}}class F extends I{$kind="operationResponse";status;constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}headers(e){return this.set("headers",U(e)),this}content(e){return this.set("content",K(e,J)),this}getContent(){return this.get("content")}getMedia(e,t=!0){return t&&this.addMedia(e),this.getContent()?.get(e)}addMedia(e){const t=this.get("content");return t.has(e)||t.set(e,new J),this}}class V extends I{$kind="operation";operationPaths=new Map;#u;#h=!1;constructor(e={}){super({parameters:[],responses:new I,...e})}get response(){return this.getResponses().get(this.getStatus().toString())}get status(){return this.#u}tags(e){return super.set("tags",e),this}addTags(e){return e=(0,d.uniqBy)([...this.get("tags")||[],...e],"name"),this.tags(e)}summary(e){return super.set("summary",e),this}operationId(e){return this.set("operationId",e),this}responses(e){return this.set("responses",e),this}defaultStatus(e){return this.#u=e,this}getStatus(){return this.#u||200}setRedirection(e=302){return this.#h=!0,this.#u=e,this}isRedirection(e){return this.#h&&e?B(e):this.#h}addResponse(e,t){if((G(e)||B(e))&&!this.#u){const t=this.getResponseOf(200);this.getResponses().set(e.toString(),t).delete("200"),this.defaultStatus(Number(e))}const r="default"===e?this.getStatus().toString():e.toString(),s=this.getResponses().get(r);return s?(t.forEach(((e,t)=>{["content"].includes(t)||s.set(t,(0,d.deepMerge)(s.get(t),e))})),s.status=Number(r)):(t.status=Number(r),this.getResponses().set(r,t)),this}getResponses(){return this.get("responses")}getResponseOf(e){return("default"===e?this.response:this.getResponses().get(String(e)))||new F}ensureResponseOf(e){return this.addResponse(e,this.getResponseOf(e)),this.getResponseOf(e)}getHeadersOf(e){return this.getResponseOf(e).get("headers")||{}}getContentTypeOf(e){return[...this.getResponseOf(e).get("content").keys()].slice(-1)[0]}security(e){return this.set("security",e),this}addSecurityScopes(e,t){const r=this.get("security")||{};return r[e]=(0,d.uniq)([...r[e]||[],...t]),this.security(r)}description(e){return super.set("description",e),this}deprecated(e){return super.set("deprecated",e),this}parameters(e){return super.set("parameters",e),this}addParameter(e,t){-1===e&&(e=this.get("parameters").length),this.get("parameters")[e]=t}consumes(e){return super.set("consumes",e),this}produces(e){return super.set("produces",e),this}addProduce(e){const t=(0,d.uniq)([].concat(this.get("produces"),e)).filter(Boolean);this.set("produces",t)}addOperationPath(e,t,r={}){return this.operationPaths.set(String(e)+String(t),{...r,method:e,path:t}),this}getAllowedOperationPath(e){return e?[...this.operationPaths.values()].filter((({method:t})=>t&&e.includes(t.toUpperCase()))):[...this.operationPaths.values()]}}let W=class extends y{parent=y.from(this.target);middlewares=[];beforeMiddlewares=[];afterMiddlewares=[];operation=new V;children=new Map;constructor(e){super({store:d.Store.fromMethod(e.target,e.propertyKey),descriptor:(0,d.descriptorOf)(e.target,e.propertyKey),...e});const{beforeMiddlewares:t=[],middlewares:r=[],afterMiddlewares:s=[]}=e;this.after(s),this.before(t),this.use(r)}get params(){return this.parameters}get view(){return this.store.get("view")}set view(e){this.store.set("view",e)}get acceptMimes(){return this.store.get("acceptMimes",[])}set acceptMimes(e){this.store.set("acceptMimes",e)}get parameters(){return[...this.children.values()]}get operationPaths(){return this.operation.operationPaths}static get(e,t,r){return r=r||(0,d.descriptorOf)((0,d.prototypeOf)(e),t),y.from((0,d.prototypeOf)(e),t,r)}getResponseOptions(e,{contentType:t="application/json",includes:r}={}){const s=this.operation.getResponseOf(e).getMedia(t,!1);if(s&&s.has("schema")){const e=s.get("schema");let t=s.groups;return r&&s.allowedGroups?.size&&(t=[...t||[],...r.filter((e=>s.allowedGroups.has(e)))]),{type:e.getComputedItemType(),groups:t}}return{type:this.type}}before(e){return this.beforeMiddlewares=this.beforeMiddlewares.concat(e).filter(d.isFunction),this}after(e){return this.afterMiddlewares=this.afterMiddlewares.concat(e).filter(d.isFunction),this}use(e){return this.middlewares=this.middlewares.concat(e).filter(d.isFunction),this}get(e){const t=d.Store.from(this.target).get(e);return(0,d.deepMerge)(t,this.store.get(e))}getParamTypes(){return[...this.children.values()].reduce(((e,t)=>({...e,[t.paramType]:!0})),{})}build(){if(!this._type){let e=d.Metadata.getReturnType(this.target,this.propertyKey);e=(0,d.isPromise)(e)?void 0:e,this.buildType(e)}this._type=this._type||Object,this.parent.children.set(this.propertyName,this),(0,d.isCollection)(this._type)&&(this.collectionType=this._type,delete this._type),this._schema=$.from({type:this.collectionType||this.type}),this.collectionType&&this._schema.itemSchema(this.type),this.parent.schema.addProperty(this.propertyName,this.schema)}};W=g([M(d.DecoratorTypes.METHOD),O("design:paramtypes",[Object])],W);const X=W;function z(...e){return y.from(...e)}f.set(d.DecoratorTypes.CLASS,w),f.set(d.DecoratorTypes.PROP,_),f.set(d.DecoratorTypes.PARAM,H),f.set(d.DecoratorTypes.METHOD,W);class Q extends Map{$kind="operationPaths";$isJsonDocument=!0;setOperationPath(e){const t=this.getKey(e.method,e.path);this.set(t,e)}getKey=(e,t)=>`${e}-${t}`}function Y(e){const t=e.isStore?e:z(e);return t.$inherited||(t.$inherited=(0,d.ancestorsOf)(t.target).reverse().reduce(((e,t)=>e.set(t,z(t))),new Map)),t.$inherited}function Z(e){const t=e.isStore?e:z(e);if(!t.$operations){const e=new Q;t.$operations=new Map,Y(t).forEach((e=>{e.children.forEach((e=>{e instanceof W&&!t.$operations.has(e.propertyKey)&&t.$operations.set(e.propertyKey,e)}))})),t.$operations.forEach((t=>{t.operation.operationPaths.forEach((t=>{e.setOperationPath(t)}))})),e.clear()}return t.$operations}function ee(e){return!e.store.get("hidden")}const te=[e.PUBLISH,e.SUBSCRIBE];function re(e,{channels:r,rootPath:s,...n}){const i=m(s+z(e).path);return n={...n,ctrlRootPath:i},[...Z(e).values()].filter(ee).flatMap((e=>{const t=e.operation.getAllowedOperationPath(te);return 0===t.length?[]:t.map((t=>({operationPath:t,operationStore:e})))})).reduce(function(e){return(r,{operationPath:s,operationStore:n})=>{const i=e.ctrlRootPath||"/",o=s.method.toLowerCase(),a=(0,t.camelCase)(`${o.toLowerCase()} ${n.parent.schema.getName()}`),c=u("message",[n,s],e);return{...r,[i]:{...r[i],[o]:{...r[i]?.[o],operationId:a,message:{oneOf:[...r[i]?.[o]?.message?.oneOf||[],c]}}}}}}(n),r)}var se;function ne(e,t){return t.length?1===t.length?t[0]:{[e]:t}:null}function ie(t,r,{tags:s=[],defaultTags:n=[],...i}={}){const{path:o,method:a}=r,c=String(o);let p=(0,d.getValue)(i.components,"messages."+o,(0,d.cleanObject)({description:t.operation.get("description"),summary:t.operation.get("summary")}));if(a.toUpperCase()===e.PUBLISH){const s=u("payload",[t,r],i);s&&(p.payload=s);const n=t.operation.getAllowedOperationPath([e.SUBSCRIBE]).map((e=>u("message",[t,e],i))).filter(Boolean),o=ne("oneOf",n);o&&(p["x-response"]=o)}else{const e=u("response",[t,r],i);e&&(p["x-response"]=e)}return i.components.messages=i.components.messages||{},i.components.messages[c]=p,{$ref:`#/components/messages/${c}`}}function oe(e,t){return e.reduce(((e,r,s)=>e.set(r,t[s])),new Map)}function ae(e){if(e.genericLabels&&e.genericTypes){const{genericLabels:t,genericTypes:r,...s}=e;return{...s,generics:oe(t,r)}}return e}function ce(e){const[t,...r]=e.nestedGenerics;return{genericTypes:t,nestedGenerics:r}}function pe(e,r,s){const n=e.operation.get("parameters").filter((e=>k(e.get("in")))),i=(0,t.pascalCase)([r.path,r.method,"Payload"].join(" "));(0,d.setValue)(s,`components.schemas.${i}`,{});const o=n.map((e=>{const t=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,s),r=u("item",[e.$schema],{...t,...ce(e)});switch(e.get("in")){case D.BODY:return r;case D.QUERY:case D.PATH:case D.HEADER:return{type:"object",properties:{[e.get("name")]:r}}}return r}),{}).filter(Boolean);return ne("allOf",o)}function ue(e,r,s){const n=e.operation.getResponses(),i=[],o=[],a=[],c=[];[...n.entries()].forEach((([e,t])=>{const r=u("map",[t],s);if(i.push(+e),o.push(r.description),204!=+e){const{content:e}=r,t=e[Object.keys(e)[0]];a.push(t)}}));const p=(0,t.pascalCase)([r.path,r.method,"Response"].join(" ")),h={type:"object",properties:{status:{type:"number",enum:i},statusText:{type:"string",enum:o}},required:["status"]},l=ne("oneOf",a);l&&(0,d.setValue)(h,"properties.data",l);const m=ne("oneOf",c);return c.length&&(0,d.setValue)(h,"properties.error",m),(0,d.setValue)(s,`components.schemas.${p}`,h),{$ref:`#/components/schemas/${p}`}}c("channels",re),function(e){e.JSON="jsonschema",e.SWAGGER="swagger2",e.OPENAPI="openapi3",e.ASYNCAPI="asyncapi2"}(se||(se={})),c("generate",(function(e,t){const r={channels:u("channels",[e],t)};return r.tags=(0,d.uniqBy)(t.tags,"name"),t.components?.schemas&&Object.keys(t.components.schemas).length&&(r.components={...t.components,schemas:t.components.schemas}),r}),se.ASYNCAPI),c("message",ie,se.ASYNCAPI),c("payload",pe,se.ASYNCAPI),c("response",ue,se.ASYNCAPI);class he{getType;isLazyRef=!0;constructor(e){this.getType=e}get target(){return this.getType()}get schema(){return z(this.getType()).schema}get name(){return(0,d.nameOf)(this.getType())}}function le(e,r){return r.groups&&r.groups.length?(0,t.pascalCase)(`${e} ${r.groupsName||r.groups.join(" ")}`):e}function me(e,t,r){const s=function(e){const{host:t="#/"+([se.OPENAPI,se.ASYNCAPI].includes(e.specType)?"components/schemas":"definitions")}=e;return t}(r),n={$ref:`${s}/${e}`},i=t.isReadOnly,o=t.isWriteOnly;return(0,d.cleanObject)({readOnly:!!i||void 0,writeOnly:!!o||void 0,...i||o?{anyOf:[n]}:n})}function de(e,t,r){const s=le(e.getName(),r);return(0,d.setValue)(r,`components.schemas.${s}`,t),me(s,e,r)}function fe(e,t={}){if("object"!=typeof e||null===e)return e;if(e instanceof he)return u("lazyRef",[e],t);if(e instanceof $&&e.get("enum")instanceof $){const r=e.get("enum");return de(r,r.toJSON(t),t)}if(e.$kind&&e.$isJsonDocument){const r=u(l([e.$kind,"map"],t),[e],ae(t));return e.canRef?de(e,r,t):r}return u("object",[e],t)}function ye(e,t){const r=y.from(e.class),s=le(r.schema.getName()||e.getName(),t);if(e.hasGenerics){const{type:s,properties:n,additionalProperties:i,items:o,...a}=e.toJSON(t),c={...u("any",[r.schema],{...t,...ce(e),root:!1}),...a};if(c.title){const r=le(c.title,t);return(0,d.setValue)(t.components,`schemas.${r}`,c),delete c.title,me(r,e,t)}return c}return(0,d.getValue)(t,`components.schemas.${s}`)||((0,d.setValue)(t,`components.schemas.${s}`,{}),t.components.schemas[s]=u("any",[r.schema],ae({...t,root:!1}))),me(s,e,t)}function ge(e,t){const{generics:r}=t;if(r&&e.$ref&&r.has(e.$ref)){let s=r.get(e.$ref);if((0,d.isPrimitiveClass)(s))return{type:T(s)};if(s===Date)return{type:"string",format:"date-time"};if(s.toJSON)return s.toJSON({...t,generics:void 0});if(s===Object)return{type:"object"};if((0,d.isClass)(s)){const e={class:s};return 0===t.nestedGenerics.length?u("class",[e],{...t,generics:void 0}):u("schema",[y.from(e.class).schema],{...t,...ce(t),root:!1})}}return e}function Oe(e,{target:t,...r}){const s=Array.from(Y(t).entries()).filter((([e])=>(0,d.classOf)(e)!==(0,d.classOf)(t)));if(s.length){const t=s.reduce(((e,[,t])=>(0,d.deepMerge)(e,u("schema",[t.schema],r))),{});e=(0,d.deepMerge)(t,e)}return e}function Se(e,t,r){return r.inlineEnums&&e.enum?.$isJsonDocument&&(e.enum=e.enum.toJSON().enum),e.enum&&(e.type="object"===e.type||void 0===e.type?"string":e.type),e}function be(e,t){return e&&e.isClass?u("class",[e],t):u("any",[e],t)}function Re(e,t){const r=e.name;if(t.$refs?.find((t=>t===e.target)))return me(r,e.schema,t);t.$refs=[...t.$refs||[],e.target];const s=e.getType()&&u("schema",[e.schema],ae(t));return de(e.schema,s,t)}function Te(e,{ignore:t=[],...r}={}){return r=ae(r),Array.from(e.entries()).reduce(((e,[s,n])=>(t.includes(s)||(e[s]=u("item",[n],r)),e)),{})}c("any",fe),c("class",ye),c("generics",ge),c("inheritedClass",Oe),c("inlineEnums",Se),c("item",be),c("lazyRef",Re),c("map",Te);const Ae=["oneOf","allOf","anyOf"],Ee=["minLength","maxLength","pattern","format"],Pe=[],ve=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"],xe=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains"],Ce=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains","patternProperties","dependencies"],$e=["const","enum"];function Me(e,t){return t?.isNullable?(e.discriminator||(e.$ref?e=(0,d.cleanObject)({...e,$ref:void 0,anyOf:[{type:"null"},{$ref:e.$ref}]}):Ae.some((t=>{if(e[t])if(e[t]=e[t].filter((e=>"null"!==e.type)),1===e[t].length){const r=e[t];e=(0,d.cleanObject)({...e,...r[0],[t]:void 0,type:["null",Number.isInteger(e.multipleOf)?"integer":r[0].type]})}else e[t]=[{type:"null"}].concat(e[t]).map((e=>(Number.isInteger(e.multipleOf)&&(e.type="integer"),e))),delete e.type}))),e):e}function we(e,t){if((0,d.isBoolean)(e.$ignore)&&e.$ignore)return!0;let r=e?.$hooks?.alter("ignore",!1,[t]);return r||(!1!==t.groups?e?.$hooks?.alter("groups",!1,[t.groups]):r)}function _e(e,t){const{specType:r,operationIdFormatter:s,root:n,components:i,genericTypes:o,nestedGenerics:a,useAlias:c,genericLabels:p,...h}=t;return Object.entries(e).reduce(((r,[s,n])=>{if(!1!==t.withIgnoredProps&&!we(n,h)){const i={...t,groups:e?.$forwardGroups||n?.$forwardGroups?t.groups:void 0};r[s]=u("item",[n],i),r[s]=u("nullable",[r[s],n],i)}return r}),(0,d.isArray)(e)?[]:{})}function Ne(e,t,r){return e.map((e=>u("item",[e],{...t,genericLabels:r.genericLabels})))}function Ie(e,t,r){return e.isClass?u("class",[e],t):u("any",[e],{...t,genericLabels:r.genericLabels})}function De(e,t,r){return!1!==r.groups?t?.$hooks?.alter("requiredGroups",e,[r.groups]):e}function Le(e,t,r){if(r.groups&&r.groups.includes("partial"))return e.discriminator?{...e,required:[e.discriminator.propertyName]}:e;let s=function(e,t,r){let s=e.required||[];return s=[...s,...t.$required],t.get("properties")&&(s=Object.entries(t.get("properties")).reduce(((e,[t,r])=>r&&void 0!==r.$selfRequired?r.$selfRequired?e.concat(t):e.filter((e=>e===t)):e),s)),De((0,d.uniq)(s),t,r)}(e,t,r);return s=(0,d.uniq)(s).reduce(function(e,t,r={}){const{useAlias:s}=r,n=Object.keys(e.properties||{});return(e,r)=>{const i=s&&t.alias.get(r)||r;return n.includes(i)?e.concat(i):e}}(e,t,r),[]),e.discriminator&&s.push(e.discriminator.propertyName),s.length?{...e,required:s}:e}function ke(e,t){return Object.entries(e).reduce(((e,[r,s])=>(e[r=t.get(r)||r]=s,e)),{})}c("nullable",Me),c("object",_e),c("anyOf",Ne),c("allOf",Ne),c("oneOf",Ne),c("properties",Ie),c("items",Ie),c("additionalProperties",Ie),c("propertyNames",Ie),c("contains",Ie),c("dependencies",Ie),c("patternProperties",Ie),c("additionalItems",Ie),c("not",Ie),c("definitions",Ie),c("required",Le);const je={string:{properties:Ee,is:d.isString},number:{properties:ve,is:d.isNumber},boolean:{properties:Pe,is:d.isBoolean},array:{properties:xe,is:()=>!1},object:{properties:Ce,is:()=>!1}};function He(e,t,r){const s=function(e){return Ae.find((t=>e[t]))}(e);return s&&(e[s].forEach((t=>{!function(e,t,r){const s=je[e];s?.properties.concat($e).forEach((e=>{void 0!==t[e]&&($e.includes(e)?r[e]=t[e].filter(s.is):(r[e]=t[e],delete t[e]))}))}(t.type,e,t)})),Ae.forEach((s=>{e[s]&&!1!==r.groups&&t.$hooks.has(s)&&(e={...e,[s]:t.$hooks.alter(s,e[s],[r.groups])})})),delete e.const,delete e.enum,e.items||e.properties||delete e.type),e}const qe=["name","$required","$hooks","_nestedGenerics",se.OPENAPI,se.SWAGGER,se.JSON],Ge=["const"];function Be(e,t){const{options:r,addDef:s}=function(e){let t=!1;e||(t=!0,e={components:{schemas:{}},inlineEnums:!0});const{useAlias:r=!0,components:s={schemas:{}}}=e;return{addDef:t,options:e={...e,useAlias:r,components:s}}}(t),n=function(e,t){let r=function(e,t){const{useAlias:r}=t;return[...e.keys()].filter((e=>!function(e,{specType:t=se.JSON,customKeys:r=!1}){return qe.includes(e)||e.startsWith("#")&&(!1===r||t!==se.JSON)||t!==se.JSON&&Ge.includes(e)}(e,t))).reduce(((s,n)=>{let i=e.get(n);if("type"===(n=n.replace(/^#/,"")))return{...s,[n]:e.getJsonType()};if(function(e,t,r){return"examples"===e&&(0,d.isObject)(t)&&[se.OPENAPI,se.ASYNCAPI].includes(r.specType)}(n,i,t)&&(n="example",i=Object.values(i)[0]),i&&"object"==typeof i&&h(n)){if(i=u(n,[i],t,e),function(e,t){return"object"==typeof t&&["items","properties","additionalProperties"].includes(e)&&0===Object.keys(t).length}(n,i))return s;(function(e,t,r){return"object"==typeof t&&r&&["properties","additionalProperties"].includes(e)})(n,i,r)&&(i=ke(i,e.alias))}return{...s,[n]:i}}),{})}(e,t);return e.isClass&&(r=u("inheritedClass",[r],{...t,root:!1,target:e.getComputedType()})),r=u("generics",[r],{...t,root:!1}),e.has(t.specType)&&(r={...r,...e.get(t.specType).toJSON(t)}),r=u("required",[r,e],t),r=u("nullable",[r,e],t),r=He(r,e,t),r=u("inlineEnums",[r,e],t),r}(e,r);return s&&Object.keys((0,d.getValue)(r,"components.schemas",{})).length&&(n.definitions=r.components.schemas),n}function Ue(e,t){const r={paths:u("paths",[e],t={...t,specType:se.OPENAPI})};return r.tags=(0,d.uniqBy)(t.tags,"name"),Object.keys((0,d.getValue)(t,"components.schemas",{})).length&&(r.components={schemas:t.components.schemas}),r}function Ke(e,t){return t?.isNullable?e.$ref?(0,d.cleanObject)({...e,...e.$ref&&{anyOf:[{$ref:e.$ref}],type:void 0},nullable:!0,$ref:void 0}):(0,d.cleanObject)({...e,...1===e.anyOf?.length?{...e.anyOf[0],anyOf:void 0,type:Number.isInteger(e.multipleOf)?"integer":e.anyOf[0]?.type}:{type:e.anyOf?.length>1?void 0:e.type,anyOf:e.anyOf?.map((e=>(Number.isInteger(e.multipleOf)&&(e.type="integer"),e)))},nullable:!0}):e}function Je(e,{jsonSchema:t}){const r={type:"string",format:"binary",oneOf:void 0};return"array"===t.type?(t.items=(0,d.cleanObject)({...t.items,...r}),e.schema=t,e):(e.schema=(0,d.cleanObject)({...t,...r}),e)}function Fe(e,r){const s=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,r),n={...s.components?.schemas||{}},{type:i,schema:o,...a}=u("map",[e],s),c=u("item",[e.$schema],{...s,...ce(e)});a.required=a.required||e.get("in")===D.PATH;const p={...s,jsonSchema:c,jsonParameter:e,oldSchemas:n},l=(0,t.camelCase)(`operationIn ${e.get("in")}`);return h(l)?u(l,[a],p):(a.schema=c,a)}function Ve(e,t){return e.flatMap((e=>u("operationInParameter",[e],t))).filter(Boolean)}function We(e,t){if(!t)return;let r=!1;const s=Object.entries(t).reduce(((t,[s,{value:n,description:i,...o}])=>void 0===n[e]?t:(r=!0,{...t,[s]:{...o,value:n[e],description:i}})),{});return r?s:void 0}function Xe(e,{jsonSchema:t,jsonParameters:r,...s}){if(t.$ref){if(!e.name)return function(e,{jsonParameter:t,...r}){const s=le(t.$schema.getName(),r),n=r.components?.schemas?.[s];return n&&!r.oldSchemas?.[s]&&delete r.components.schemas[t.$schema.getName()],Object.entries(n?.properties||{}).reduce(((t,[r,{description:s,...i}])=>[...t,(0,d.cleanObject)({...e,name:r,required:(n?.required||[]).includes(r),description:s,schema:i,style:i.$ref?"deepObject":void 0,examples:We(r,e.examples)})]),[])}(e,s);e.style="deepObject"}return e.schema=t,e}c("schema",Be),c("generate",Ue,se.OPENAPI),c("generate",Ue,se.SWAGGER),c("nullable",Ke,se.OPENAPI),c("nullable",Ke,se.SWAGGER),c("operationInFiles",Je),c("operationInParameter",Fe),c("operationInParameters",Ve),c("operationInQuery",Xe);var ze=n(203),Qe=n.n(ze);const Ye=Qe().codes.reduce(((e,r)=>{const s=String(Qe()(r));return{...e,[String(r)]:{label:s,code:(0,t.constantCase)(s)}}}),{});function Ze(e){return Ye[e]?.code}function et(e){return Ye[e]?.label}function tt(e,{tags:t=[],defaultTags:r=[],...s}={}){const{consumes:n,produces:i,...o}=u("map",[e],{...s,ignore:["parameters"]});o.security&&(o.security=[].concat(o.security)),0===e.get("responses").size&&(o.responses={200:{description:et(200)}});const a={...s,consumes:e.get("consumes")?.length?e.get("consumes"):["application/json"]},[c,p]=function(e,t){return e.get("parameters").filter((e=>k(e.get("in")))).reduce(((e,t)=>{const[r,s]=e;return[D.BODY,D.FILES].includes(t.get("in"))?[r,[...s,t]]:[[...r,t],s]}),[[],[]])}(e);o.parameters=u("operationInParameters",[c],s),p.length&&(o.requestBody=u("operationRequestBody",[p],a));const h=o.tags?.length?o.tags:r;return h.length&&(o.tags=h.map((({name:e})=>e))),t.push(...h),o}function rt(e,t){return u("map",[e],{...t,groups:[...e.groups||[]],groupsName:e.groupsName})}Ye[200].label="Success",Ye[200].code="SUCCESS",c("operation",tt),c("operationMedia",rt);class st extends I{$kind="operationRequestBody";constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}content(e){return this.set("content",K(e)),this}addContent(e,t,r){const s=this.get("content"),n=new I;return n.set("schema",t),r&&n.set("examples",r),s.set(e,n),this}required(e){return this.set("required",e),this}}function nt(e,{consumes:t,...r}){const{schema:s,examples:n,in:i,...o}=function(e,t){let r=new $;const s={},n=[];let i=0;const o=e.some((e=>"files"===e.get("in")));return e.forEach((e=>{const a=e.getName();[...e.entries()].filter((([e])=>!["in","name"].includes(e))).forEach((([e,t])=>{void 0===s[e]&&(s[e]=t)}));const c=u("operationInParameter",[e],t);if(a){const t={...c.schema||{type:c.type}};o&&c.description&&(t.description=c.description),r.addProperty(a,t),e.get("required")&&r.addRequired(a),i++}else n.push(c)})),i||1!==n.length?(r.type("object"),s.description&&o&&delete s.description,{schema:r.toJSON(t),required:!1,...s}):n[0]}(e,r),a=new st(o);return t.forEach((e=>{a.addContent(e,s,n)})),u("map",[a],r)}function it(e,t={}){const r=u("map",[e],t);return 204===e.status&&delete r.content,r.headers&&Object.entries(r.headers).forEach((([e,{type:t,...s}])=>{r.headers[e]={...s,schema:{type:t}}})),r}function ot(e,t){return e.map((e=>t.parameters.find((t=>t.in===e.in&&t.name===e.name))||e)).concat(...t.parameters.filter((e=>"path"!==e.in)))}function at(e,t=""){t instanceof RegExp&&(t=t.toString().replace(/^\//g,"").replace(/\/$/g,"").replace(/\\/g,""));const r=[],s=[];let n=!1,i="";return function(e){let t=0;return e.split("").filter((e=>{"("===e&&t++;const r=0===t;return")"===e&&t--,r})).join("").split("/").filter((e=>!!e))}(`${e}${t}`).map((e=>{const t=e.replace(":","").replace("?","");if(e.includes(":")){const o=e.includes("?");o&&!n&&(n=!0,s.push({path:i,parameters:[].concat(r)}));const{prefix:a,name:c,postfix:p}=function(e){const[t,r]=e.split("="),s=(r||t).split(".");return{prefix:r&&t?`${t}=`:"",name:s.splice(0,1)[0],postfix:s.length?`.${s.join(".")}`:""}}(t);i+=`/${a}{${c}}${p}`,r.push({in:"path",name:c,type:"string",required:!0}),o&&n&&s.push({path:i,parameters:[].concat(r)})}else i+=`/${e}`})),s.length?s:[{path:i,parameters:[].concat(r)}]}function ct(e=""){const r=new Map;return(s,n,i="")=>{const o=((r,s)=>{const n=(e||"%c.%m").replace(/%c/,r).replace(/%m/,s);return""===e?(0,t.camelCase)(n):n})(s,n),a=s+n;if(!r.has(a))return r.set(a,0),o;const c=i.match(/{(\w+)}/gi);if(c){const e=s+n+c[0];if(!r.has(e))return r.set(e,0),(0,t.camelCase)(`${o} By ${c}`)}const p=r.get(a)+1;return r.set(a,p),`${o}_${p}`}}function pt(e,{store:t,operationIdFormatter:r}){return r(t.parent.schema.get("name")||t.parent.targetName,t.propertyName,e)}c("operationRequestBody",nt),c("operationResponse",it);const ut=[e.ALL,e.GET,e.POST,e.PUT,e.PATCH,e.HEAD,e.OPTIONS,e.DELETE,e.TRACE];function ht(e,{path:t,method:r,operation:s}){return{...e,[t]:{...e[t],[r.toLowerCase()]:s}}}function lt(e,{paths:t,rootPath:r,...s}){const n=m(r+z(e).path);return s={...s,ctrlRootPath:n},[...Z(e).values()].filter(ee).filter((e=>e.operation.getAllowedOperationPath(ut).length>0)).flatMap(function(e){return t=>{const r=t.operation.getAllowedOperationPath(ut);if(0===r.length)return[];const s=u("operation",[t.operation],e);return r.map((e=>({operationPath:e,operation:s,operationStore:t})))}}(s)).flatMap(function(e){return({operationPath:t,operation:r,operationStore:s})=>{const{path:n,method:i}=t;return at(e.ctrlRootPath,n).map((({path:t,parameters:n})=>(t=t||"/",n=ot(n.map((({type:e,...t})=>({...t,schema:{type:e}}))),r),{operation:{...r,parameters:n,operationId:r.operationId||pt(t,{...e,store:s})},method:i,path:t})))}}(s)).reduce(ht,t)}function mt(e){return(...t)=>{const r=e(z(...t),t);"function"==typeof r&&r(...t)}}function dt(...e){return mt((t=>{t.store.set("childrenControllers",e),e.forEach((e=>{d.Store.from(e).set("parentController",t.token)}))}))}function ft(e,...r){return mt((s=>{e=e||(0,t.snakeCase)(s.targetName),s.discriminatorAncestor&&s.schema.discriminatorValue(e,...r)}))}function yt(e,t){if(!e)throw new Error("A type is required on `@CollectionOf(type)` decorator. Please give a type or wrap it inside an arrow function if you have a circular reference.");const r={};let s=!1;const n=(...n)=>{const i=y.from(...n);t&&(i.collectionType=t,i.schema.type(t)),i.type=e,i.itemSchema.type(e),i.schema.assign(r),i.isArray&&s&&(i.schema.set("contains",i.schema.get("items")),i.schema.delete("items"))};return n.MinItems=e=>(r.minItems=e,n),n.MaxItems=e=>(r.maxItems=e,n),n.MinProperties=e=>(r.minProperties=e,n),n.MaxProperties=e=>(r.maxProperties=e,n),n.Contains=()=>(s=!0,n),n.UniqueItems=(e=!0)=>(r.uniqueItems=e,n),n}function gt(e){return yt(e,Array)}function Ot(e){return yt(e,Map)}function St(e){return yt(e).Contains()}function bt(e,t){const r={};return(...s)=>{const n=(0,d.useDecorators)(t(...s));return n.Error=t=>(r.message=t,(0,d.useDecorators)(n,r.message&&mt((r=>{const s=r.parentSchema.get("#errorMessage")||{};"required"===e?r.parentSchema.customKey("errorMessage",(0,d.deepMerge)(s,{[e]:{[r.propertyName]:t}})):r.itemSchema.customKey("errorMessage",(0,d.deepMerge)(s,{[e]:t}))})))),n}}c("paths",lt);const Rt=bt("maxItems",(e=>{if(e<0)throw new Error("The value of maxItems MUST be a non-negative integer.");return mt((t=>{t.schema.maxItems(e)}))})),Tt=bt("maxProperties",(e=>{if(e<0)throw new Error("The value of maxProperties MUST be a non-negative integer.");return mt((t=>{t.isCollection?t.schema.maxProperties(e):t.itemSchema.maxProperties(e)}))})),At=bt("minItems",(e=>{if(e<0)throw new Error("The value of minItems MUST be a non-negative integer.");return mt((t=>{t.schema.minItems(e)}))})),Et=bt("minProperties",(e=>{if(e<0)throw new Error("The value of minProperties MUST be a non-negative integer.");return mt((t=>{t.isCollection?t.schema.minProperties(e):t.itemSchema.minProperties(e)}))})),Pt=bt("uniqueItems",((e=!0)=>mt((t=>{t.schema.uniqueItems(e)}))));function vt(e){return mt(((t,r)=>{t.itemSchema.additionalProperties(e)}))}function xt(...e){return mt((t=>{t.itemSchema.allOf(e)}))}function Ct(e){return mt((t=>{e&&(((0,d.isClass)(e)||(0,d.isArrowFn)(e))&&(t.type=e),t.itemSchema.type(e))}))}function $t(...e){const t=e.find((e=>(0,d.isClass)(e)));return(0,d.useDecorators)(t&&Ct(t),mt(((t,r)=>{t.decoratorType===d.DecoratorTypes.PARAM&&(t.required=!0),t.decoratorType===d.DecoratorTypes.PROP&&t.parentSchema.addRequired(t.propertyName),t.schema.allow(...e)})))}function Mt(...e){return mt((t=>{t.itemSchema.any(...e)}))}function wt(...e){return mt((t=>{t.itemSchema.anyOf(e)}))}function _t(e){return mt((t=>{t.itemSchema.const(e)}))}function Nt(e,t){return mt((r=>{r.itemSchema.customKey(e,t)}))}function It(e){return mt((t=>{Object.entries(e).forEach((([e,r])=>{t.itemSchema.customKey(e,r)}))}))}function Dt(e){return mt((t=>{t.itemSchema.default(e)}))}function Lt(e){return mt((t=>{const r=t.parentSchema.get("#errorMessage")||{};t.parentSchema.customKey("errorMessage",{...r,...e})}))}function kt(e){return(0,d.useDecorators)(Lt({_:e}))}function jt(e){return mt(((t,r)=>{switch((0,d.decoratorTypeOf)(r)){case d.DecoratorTypes.PROP:case d.DecoratorTypes.CLASS:t.schema.description(e);break;case d.DecoratorTypes.PARAM:t.parameter.description(e);break;case d.DecoratorTypes.METHOD:t.operation?.description(e)}}))}function Ht(){return(0,d.useDecorators)(Ct(),mt((e=>{e.discriminatorKey()})))}const qt=bt("enum",(function(e,...t){return mt((r=>{r.itemSchema.enum(e,...t)}))}));function Gt(...e){return mt((t=>{t.schema.examples(e)}))}function Bt(e){return mt((t=>{t.parameter.examples(e)}))}const Ut=bt("maximum",((e,t=!1)=>mt((r=>{t?r.itemSchema.exclusiveMaximum(e):r.itemSchema.maximum(e)})))),Kt=Ut,Jt=bt("exclusiveMaximum",((e,t=!0)=>Ut(e,t))),Ft=bt("minimum",((e,t=!1)=>mt((r=>{t?r.itemSchema.exclusiveMinimum(e):r.itemSchema.minimum(e)})))),Vt=Ft,Wt=bt("exclusiveMinimum",((e,t=!0)=>Ft(e,t)));var Xt;!function(e){e.DATE_TIME="date-time",e.DATE="date",e.TIME="time",e.EMAIL="email",e.HOSTNAME="hostname",e.IPV4="ipv4",e.IPV6="ipv6",e.URI="uri",e.URL="url",e.URI_REF="uri-reference",e.URI_TEMPLATE="uri-template",e.JSON_POINTER="json-pointer",e.RELATIVE_JSON_POINTER="relative-json-pointer",e.UUID="uuid",e.REGEX="regex"}(Xt||(Xt={}));const zt=bt("format",(e=>mt((t=>{t.itemSchema.format(e)})))),Qt=bt("format",(()=>zt(Xt.EMAIL))),Yt=bt("format",(()=>zt(Xt.DATE_TIME))),Zt=bt("format",(()=>zt(Xt.DATE))),er=bt("format",(()=>zt(Xt.TIME))),tr=bt("format",(()=>zt(Xt.URI))),rr=bt("format",(()=>zt(Xt.URL)));function sr(e=!0){return mt((t=>{t.schema.$forwardGroups=e}))}var nr=n(133),ir=n.n(nr);function or(e,t){t=[].concat(t),e=[].concat(e);let r=new Set,s=new Set,n=new Set,i=0,o=e=>{n.add(e.output)};for(let n=0;n<t.length;n++){let a=ir()(String(t[n]),{onResult:o},!0),c=a.state.negated||a.state.negatedExtglob;c&&i++;for(let t of e){let e=a(t,!0);(c?!e.isMatch:e.isMatch)&&(c?r.add(e.output):(r.delete(e.output),s.add(e.output)))}}return!!(i===t.length?[...n]:[...s]).filter((e=>!r.has(e))).length}function ar(e,t=[]){const r=e.filter((e=>e.startsWith("!"))).map((e=>e.replace("!",""))),s=e.filter((e=>!e.startsWith("!")));return!!(r.length&&t.length&&or(r,t))||!!s.length&&!or(e.filter((e=>!e.startsWith("!"))),t)}function cr(...e){return mt((t=>{switch(t.decoratorType){case d.DecoratorTypes.CLASS:!function(e,t){const r=Object.entries(e[0]);t.children.forEach((e=>{cr(...r.filter((([,t])=>t.includes(e.propertyName))).map((([e])=>e)))(e.target,e.propertyKey)}))}(e,t);break;case d.DecoratorTypes.PROP:Nt("x-groups",e)(t.target,t.propertyKey),t.schema.$hooks.on("groups",((t,r)=>!(t||!ar(e,r))||t));break;case d.DecoratorTypes.PARAM:let r="";2==e.length&&(0,d.isArray)(e[1])&&(r=e[0],e=e[1]),t.parameter.groups=e,t.parameter.groupsName=r}}))}function pr(){return(0,d.StoreSet)("hidden",!0)}function ur(e=!0){return mt((t=>{t.schema.ignore(e)}))}function hr(){return mt((e=>{e.itemSchema.type("integer")}))}const lr=bt("maxLength",(e=>{if(e<0)throw new Error("The value of maxLength MUST be a non-negative integer.");return mt((t=>{t.itemSchema.maxLength(e)}))})),mr=bt("minLength",(e=>{if(e<0)throw new Error("The value of minLength MUST be a non-negative integer.");return mt((t=>{t.itemSchema.minLength(e)}))})),dr=bt("multipleOf",(e=>{if(e<=0)throw new Error("The value of multipleOf MUST be a number, strictly greater than 0.");return mt((t=>{t.itemSchema.multipleOf(e)}))}));function fr(e){return mt(((t,r)=>{switch((0,d.decoratorTypeOf)(r)){case d.DecoratorTypes.CLASS:t.schema.name(e);break;case d.DecoratorTypes.PARAM:t.parameter.name(e);break;default:t.parent.schema.addAlias(r[1],e)}}))}function yr(e,...t){return t=[e,...t],(0,d.useDecorators)(1===t.length&&Ct(t[0]),Mt(null,...t))}function gr(...e){return mt((t=>{t.itemSchema.oneOf(e),t.type=Object}))}function Or(){return mt((e=>{switch(e.decoratorType){case d.DecoratorTypes.PARAM:e.required=!1;break;case d.DecoratorTypes.PROP:e.parentSchema.removeRequired(e.propertyName)}}))}const Sr=bt("pattern",(e=>mt((t=>{t.itemSchema.pattern(e)}))));function br(e=!0){return mt((t=>{t.itemSchema.readOnly(e)}))}function Rr(e){return mt((t=>{t.schema.assign(e)}))}function Tr(e,t){return mt((r=>{r.schema.set(e,t)}))}function Ar(e,...t){return Rr({properties:{...t.reduce(((t,r)=>({...t,[r]:e})),{})}})}const Er=bt("required",((e=!0,...t)=>e?$t(...t):Or()));function Pr(...e){return mt((t=>{t.parent.schema.$hooks.on("requiredGroups",((r,s)=>ar(e,s)?r.filter((e=>e!==t.propertyKey)):r))}))}function vr(e){return mt((t=>{t.schema.title(e)}))}function xr(e){return mt((()=>(0,d.useDecorators)(Lt({type:e}))))}function Cr(e=!0){return mt((t=>{t.itemSchema.writeOnly(e)}))}function $r(e=Object){if((0,d.isClass)(e)){const{schema:t}=z(e);return t.properties=function(t){return Object.entries(t).forEach((([t,r])=>{z(e.prototype,t).schema.assign(r)})),this},t}return $.from({type:e})}function Mr(){return $r(Number)}function wr(){return $r(Number).integer()}function _r(){return $r(String)}function Nr(){return $r(Boolean)}function Ir(){return $r(Date).format(Xt.DATE)}function Dr(){return $r(Date).format(Xt.DATE_TIME)}function Lr(){return $r(Date).format(Xt.TIME)}function kr(){return $r(String).format(Xt.EMAIL)}function jr(){return $r(String).format(Xt.URI)}function Hr(){return $r(String).format(Xt.URL)}function qr(){return $r(Array)}function Gr(){return $r(Map).unknown(!0)}function Br(){return $r(Array).uniqueItems(!0)}function Ur(e={}){return $r(Object).properties(e)}function Kr(...e){return $r().any(...e)}function Jr(...e){return $r().anyOf(e)}function Fr(...e){return $r().oneOf(e)}function Vr(...e){return $r().allOf(e)}function Wr(e){try{if(e())return y.from(e()).schema}catch(e){}return new he(e)}function Xr(e){const t=_r().enum(e);return S.set(e,t),t}function zr(...e){const t=[e.map((e=>function(e){return(0,d.isObject)(e)&&!("toJSON"in e)}(e)?_r().enum(Object.values(e)):e))],r=(...e)=>{y.from(...e).nestedGenerics=t};return r.Nested=(...e)=>(t.push(e),r),r}function Qr(...e){return t=>{y.from(t).schema.genericLabels=e}}function Yr(...e){return mt(((t,r)=>{switch(t.decoratorType){case d.DecoratorTypes.METHOD:t.operation.produces(e);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],Yr(...e));break;default:throw new d.UnsupportedDecoratorType(Yr,r)}}))}function Zr(...e){return(0,d.useDecorators)(Yr(...e),(0,d.StoreSet)("acceptMimes",e))}function es(...e){return mt(((t,r)=>{switch(t.decoratorType){case d.DecoratorTypes.METHOD:t.operation.consumes(e);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],es(...e));break;default:throw new d.UnsupportedDecoratorType(es,r)}}))}class ts extends Map{methods;decoratorType;entity;actions=[];constructor(e={}){super(),Object.entries(e).forEach((([e,t])=>{this.set(e,t)}))}addAction(e){return this.actions.push(e),this}build(){const e=(...t)=>this.bind(t,e),r=t=>{return r=(...e)=>{t in this?this[t](...e):this.set(t,e[0])},(...t)=>(r(...t),e);var r};return this.methods.forEach((s=>{e[(0,t.pascalCase)(s)]=r(s)})),e}toObject(){return[...this.entries()].reduce(((e,[t,r])=>({...e,[t]:r})),{})}getMergedKey(e,t){let r=this.get(e)||t;if(r)return this.decoratorType===d.DecoratorTypes.CLASS&&(r={...r,...t||{}}),{...t||{},...r}}bind(e,t){this.entity=y.from(...e),this.beforeInit(),this.onInit(e,t),this.afterInit()}onInit(e,t){this.forEach(((e,t)=>{this.onMapKey(t,e)}))}onMapKey(e,t){this.entity.set(e,t)}runActions(){return this.actions.forEach((e=>{e(this)})),this}beforeInit(){}afterInit(){}}const rs=new Map;function ss(e,t){rs.set(e,t)}function ns(e){return rs.get(e)}function is(e){return e.map((e=>function(e){return(0,d.isObject)(e)&&!("toJSON"in e)}(e)?_r().enum(Object.values(e)):e))}class os extends ts{methods=["contentType","description","examples","type","status","of","ofInteger","oneOf","allOf","anyOf","nested","header","headers","schema","title","groups","allowedGroups","location"];hasOfTypes;constructor({status:e,model:t}){super(),this.model(t),this.status(e)}type(e){return this.model(e)}model(e){return e&&this.set("model",e),this}status(e){return this.set("status",e),e&&et(e)&&!this.get("description")&&(this.set("description",et(e)),this.get("model")||this.model(ns(+e))),this}headers(e){return this.set("headers",{...this.get("headers")||{},...U(e)}),this}header(e,t){return void 0===t&&(0,d.isString)(e)?this.headers({[e]:{type:"string"}}):this.headers({[e]:t})}location(e,t={}){return this.headers({Location:{...t,value:e}}),this}groups(...e){return 2===e.length&&(0,d.isArray)(e[1])?(this.set("groupsName",e[0]),this.set("groups",e[1])):this.set("groups",e),this}allowedGroups(...e){return this.set("allowedGroups",new Set(e)),this}nested(...e){const t=this.get("model");return this.checkPrimitive(t),this.checkCollection(t),this.addAction((t=>{this.get("schema").nestedGenerics.push(is(e))})),this}of(...e){const t=this.get("model");return this.checkPrimitive(t),this.addAction((()=>{const r=this.get("schema");(0,d.isCollection)(t)?r?.itemSchema({type:e[0]}):r?.nestedGenerics.push(is(e))})),this}ofInteger(){return this.of("integer")}oneOf(...e){return this.manyOf("oneOf",e)}allOf(...e){return this.manyOf("allOf",e)}anyOf(...e){return this.manyOf("anyOf",e)}schema(e){return this.addAction((()=>{this.get("schema").assign(e)})),this}examples(e){return this.set("examples",(0,d.isString)(e)?[e]:e),this}title(e){return this.schema({title:e})}checkPrimitive(e){if((0,d.isPrimitiveOrPrimitiveClass)(e))throw new Error("Returns.Of cannot be used with the following primitive classes: String, Number, Boolean")}checkCollection(e){if((0,d.isCollection)(e))throw new Error("Returns.Nested cannot be used with the following classes: Map, Set, Array, String, Number, Boolean")}getContentType(){const e=this.get("model");let t=this.get("contentType");return(e&&!(0,d.isPlainObject)(e)&&!(0,d.isPrimitiveOrPrimitiveClass)(e)||this.hasOfTypes)&&(t=t||"application/json"),t}getStatus(){return this.get("status")||"default"}onInit(e,t){switch((0,d.decoratorTypeOf)(e)){case d.DecoratorTypes.METHOD:this.entity=y.from(...e),this.entity.operation&&this.map();break;case d.DecoratorTypes.CLASS:this.decoratorType=d.DecoratorTypes.CLASS,(0,d.decorateMethodsOf)(e[0],t)}}map(){const e=this.get("model"),{entity:t,decoratorType:r}=this,s=this.entity.operation,n=this.getStatus(),i=s.ensureResponseOf(n),o=this.getContentType();let{description:a=i.get("description")}=this.toObject();a&&(a=r===d.DecoratorTypes.CLASS&&i.get("description")||a,i.description(a));const c=this.getMergedKey("headers",i.get("headers"));return c&&i.headers(c),this.mapMedia(i),(G(this.get("status"))||"default"===n)&&e&&(t.type=e),o&&s.addProduce(o),this.runActions()}mapMedia(e){const t=this.getContentType(),r=this.get("model"),s=e.getMedia(t||"*/*"),n=s.get("schema")||new $({type:r}),i=this.get("groups"),o=this.get("groupsName"),a=this.get("allowedGroups"),c=this.entity.operation;if(r&&((0,d.isArray)(r)?n.oneOf(r.map((e=>({type:e})))):n.type(r)),this.set("schema",n),s.schema(n),s.groups=i,s.groupsName=o,a){s.allowedGroups=a;const e=new j;e.in("query").name("includes"),e.schema($.from({type:"array",items:{type:"string",enum:[...a]}})),c.addParameter(-1,e)}const p=this.get("examples");return p&&s.examples(p),s}manyOf(e,t){const r=this.get("model");return this.hasOfTypes=!0,this.addAction((()=>{const s=this.get("schema");(0,d.isCollection)(r)?(s.type(r||Object),s.itemSchema().set(e,t)):s.set(e,t)})),this}}function as(e,t){return new os({status:e,model:t}).build()}function cs(e){return as().ContentType(e)}function ps(e=!0){return mt(((t,r)=>{switch((0,d.decoratorTypeOf)(r)){case d.DecoratorTypes.METHOD:t.operation.deprecated(e);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],ps(e));break;case d.DecoratorTypes.PARAM:t.parameter.set("deprecated",e);break;case d.DecoratorTypes.PROP:t.schema.set("deprecated",e);break;default:throw new d.UnsupportedDecoratorType(ps,r)}}))}function us(e,t){return void 0!==t&&(e={[e]:t}),void 0===t&&(0,d.isString)(e)&&(e={[e]:{type:"string"}}),as().Headers(e)}function hs(e){const t=new j,r={},s=(n,i,o)=>{const a=y.from(n,i,o);switch(a.decoratorType){case d.DecoratorTypes.PARAM:a.parameter.in(e);break;case d.DecoratorTypes.METHOD:t.in(e),a.operation.addParameter(-1,t),t.schema($.from(r));break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(n,s);break;default:throw new d.UnsupportedDecoratorType(hs,[n,i,o])}};return s.Type=e=>(r.type=e,s),s.Name=e=>(t.name(e),s),s.Description=e=>(t.description(e),s),s.Required=(e=!0)=>(t.required(e),s),s.Pattern=e=>s.Schema({pattern:e.toString()}),s.Schema=e=>(Object.assign(r,e.toJSON?e.toJSON():e),s),s}function ls(e){return(...t)=>{const[r,s,n]=t,i=d.Metadata.getParamTypes(r,s)[n]===Array,o=[e="object"==typeof e?void 0:e,!i&&"0"].filter(Boolean).join(".");(0,d.useDecorators)(hs(D.FILES),fr(o),(0,d.useMethodDecorators)(as(400).Description("<File too long | Too many parts | Too many files | Field name too long | Field value too long | Too many fields | Unexpected field> [fieldName] Example: File too long file1"),es("multipart/form-data")))(...t)}}function ms(e,t){return as().Location(e,t)}const ds=new Set([...Object.keys(e).filter((t=>t!==e.CUSTOM)).map((e=>e.toLowerCase()))]);function fs(e){let t,r;const s=e.filter((e=>"string"==typeof e&&ds.has(e.toLowerCase())?(t=e.toLocaleUpperCase(),!1):"string"==typeof e||e instanceof RegExp?(r=e||"/",!1):!!e));return{path:r,method:t,use:s}}class ys extends ts{methods=["name","description","summary","method","id","use","useAfter","useBefore"];beforeInit(){const t=this.get("path"),r=e[this.get("method")]||e.CUSTOM;t&&this.entity.operation.addOperationPath(r,t)}onMapKey(e,t){switch(e){case"name":case"id":return void this.entity.operation.operationId(t);case"summary":return void this.entity.operation.summary(t);case"description":return void this.entity.operation.description(t);case"use":return void this.entity.use(t);case"useAfter":return void this.entity.after(t);case"useBefore":return void this.entity.before(t)}return super.onMapKey(e,t)}}function gs(...e){const t=fs(e);return new ys(t).build()}function Os(e){return mt(((t,r)=>{if(t.decoratorType!==d.DecoratorTypes.METHOD)throw new d.UnsupportedDecoratorType(Os,r);t.operation.operationId(e)}))}function Ss(e,t="/"){return mt(((r,s)=>{if(r.decoratorType!==d.DecoratorTypes.METHOD)throw new d.UnsupportedDecoratorType(Ss,s);r.operation.addOperationPath(e.toUpperCase(),t)}))}function bs(){return cr("partial")}function Rs(e){return mt(((t,r)=>{if(t.decoratorType!==d.DecoratorTypes.CLASS)throw new d.UnsupportedDecoratorType(Rs,r);t.path=e}))}function Ts(t){return gs(e.PUBLISH,t)}function As(...e){const{status:t,url:r,meta:s}=e.reduce(((e,t)=>(0,d.isNumber)(t)?(e.status=t,e):(0,d.isString)(t)?(e.url=t,e):(e.meta=t,e)),{status:302,url:"",meta:{}});return(0,d.useDecorators)(as(t).Location(r,s),mt((e=>{e.operation?.setRedirection(t)})))}const Es=gs;function Ps(t="/",...r){return gs(...[e.ALL,t].concat(r))}function vs(t="/",...r){return gs(...[e.GET,t].concat(r))}function xs(t="/",...r){return gs(...[e.POST,t].concat(r))}function Cs(t="/",...r){return gs(...[e.PUT,t].concat(r))}function $s(t="/",...r){return gs(...[e.DELETE,t].concat(r))}function Ms(t="/",...r){return gs(...[e.HEAD,t].concat(r))}function ws(t="/",...r){return gs(...[e.PATCH,t].concat(r))}function _s(t="/",...r){return gs(...[e.OPTIONS,t].concat(r))}function Ns(e,...t){return mt(((r,s)=>{switch(r.decoratorType){case d.DecoratorTypes.METHOD:r.operation.addSecurityScopes(e,t);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(s[0],Ns(e,...t));break;default:throw new d.UnsupportedDecoratorType(Ns,s)}}))}function Is(e,t){return as(e,t)}function Ds(t){return gs(e.SUBSCRIBE,t)}function Ls(e){return mt(((t,r)=>{if(t.decoratorType!==d.DecoratorTypes.METHOD)throw new d.UnsupportedDecoratorType(Ls,r);t.operation.summary(e)}))}function ks(...e){return mt(((t,r)=>{switch(t.decoratorType){case d.DecoratorTypes.METHOD:t.operation.addTags(function(e){return e.map((e=>"string"==typeof e?{name:e}:e))}(e));break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],ks(...e));break;default:throw new d.UnsupportedDecoratorType(ks,r)}}))}function js(e,t){return(0,d.StoreSet)("view",{path:e,options:t})}function Hs(e,t){if(e instanceof RegExp||t instanceof RegExp){if(!e)return t;if(!t)return e;const r=e instanceof RegExp?e:new RegExp(e,"gi"),s=t instanceof RegExp?t:new RegExp(t,"gi");return new RegExp(r.source+s.source,(r.global?"g":"")+(r.ignoreCase?"i":"")+(r.multiline?"m":""))}e&&t&&e.endsWith("/")&&t.startsWith("/")&&(t=t.slice(1));const r=(e||"")+(t||"");return r.endsWith("/")&&r.length>1?r.slice(0,-1):r}class qs{token;endpoint;operationPath;basePath;paramsTypes;constructor(e){Object.assign(this,e),this.paramsTypes=this.endpoint.getParamTypes()}get url(){return this.fullPath}get path(){return this.operationPath?.path}get fullPath(){return Hs(this.basePath,this.path)}get method(){return this.operationPath?.method||"USE"}get name(){return`${this.endpoint.targetName}.${this.methodClassName}()`}get className(){return this.endpoint.targetName}get methodClassName(){return this.propertyKey}get parameters(){return this.endpoint.parameters}get propertyKey(){return String(this.endpoint.propertyKey)}get propertyName(){return this.endpoint.propertyName}get store(){return this.endpoint.store}get operation(){return this.endpoint.operation}get operationId(){return this.operation.get("operationId")||this.endpoint.propertyKey}has(e){return this.paramsTypes[e]}}const Gs=(0,d.mergeReducerBuilder)(((e,t)=>e.type&&e.type&&e.type===t.type&&"array"===t.type?JSON.stringify(e.items)===JSON.stringify(t.items):e.type&&e.type===t.type||e.$ref&&e.$ref===t.$ref)),Bs=(0,d.mergeReducerBuilder)(((e,t)=>e.in===t.in&&e.name===t.name)),Us=(0,d.mergeReducerBuilder)(((e,t)=>!!Object.keys(t).find((t=>!!e[t])))),Ks=(0,d.mergeReducerBuilder)(((e,t)=>e.name===t.name)),Js={security:Us,parameters:Bs,oneOf:Gs,anyOf:Gs,allOf:Gs,tags:Ks};function Fs(e,t){return(0,d.deepMerge)(e,t,{reducers:Js,cleanUndefinedProps:!0})}const Vs=new Map;function Ws(e,t={}){if(t={specType:se.OPENAPI,...t,tags:[],paths:{},channels:{},components:{},operationIdFormatter:t.operationIdFormatter||ct(t.operationIdPattern),root:!1},(0,d.isArray)(e)){let r={};return t={...t,append(e){r=Fs(r,e)}},e.forEach((({token:e,...r})=>{const s=Ws(e,{...t,...r});t.append(s)})),r}return function(e,t,r){Vs.has(e)||Vs.set(e,new Map);const s=Vs.get(e),n=JSON.stringify(t);return s.has(n)||s.set(n,r()),s.get(n)}(e,t,(()=>function(e,t){const r=z(e),{rootPath:s="/"}=t;return t={...t,rootPath:s,defaultTags:[(0,d.cleanObject)({name:r.schema.getName(),description:r.schema.get("description")})]},u("generate",[r],t)}(e,t)))}function Xs(e){return e.startsWith("3.")?se.OPENAPI:se.SWAGGER}function zs(e){return"openapi"in e?se.OPENAPI:se.SWAGGER}function Qs(e){const{title:t,description:r,version:s,termsOfService:n,contact:i,license:o}=e;return(0,d.cleanObject)({version:s,title:t,description:r,termsOfService:n,contact:i,license:o})}function Ys(e,{version:t,specVersion:r,acceptMimes:s=["application/json"]}){const{paths:n,security:i,tags:o,host:a,basePath:c,schemes:p,consumes:u=[],produces:h=["application/json"],definitions:l,parameters:m,responses:f,securityDefinitions:y,externalDocs:g}=e;return{swagger:r,consumes:(0,d.uniq)([...s,...u]),produces:(0,d.uniq)([...h]),info:Qs((0,d.getValue)(e,"info",{})),paths:n,host:a,basePath:c,schemes:p,definitions:l,parameters:m,responses:f,security:i,securityDefinitions:y,tags:o,externalDocs:g}}function Zs(e,{specVersion:t}){const{servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}=e;return{openapi:t,info:Qs((0,d.getValue)(e,"info",{})),servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}}function en(e,{fileSpec:t,acceptMimes:r,specVersion:s,version:n}){const i={specVersion:s=s||(0,d.getValue)(e,"openapi",(0,d.getValue)(e,"swagger","2.0")),acceptMimes:r};switch(Xs(s)){case se.OPENAPI:e=Zs(e,i),t=t?Zs(t,i):t;break;default:case se.SWAGGER:e=Ys(e,i),t=t?Ys(t,i):t}return e=Fs(e,t),(0,d.setValue)(e,"info.title",(0,d.getValue)(e,"info.title","Api documentation")),(0,d.setValue)(e,"info.version",(0,d.getValue)(e,"info.version",n)),e}const tn=["get","put","post","delete","options","head","patch","trace"],rn=["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],sn=["type","items"],nn=/^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/,on={APPLICATION_X_WWW_URLENCODED:"application/x-www-form-urlencoded",MULTIPART_FORM_DATA:"multipart/form-data"};function an(e){if(Array.isArray(e))e.forEach(an);else if("object"==typeof e)for(let t in e)"$ref"===t?e.$ref=e.$ref.replace("#/components/schemas/","#/definitions/").replace("#/components/","#/x-components/"):an(e[t])}function cn(e){return new RegExp(nn,"i").test(e)}function pn(e){const t=Object.keys(on).map((e=>on[e]));return Object.keys(e).filter((e=>t.indexOf(e)>-1||cn(e)))}function un(e){function t(e){const{scheme:t,type:r,name:s,bearerFormat:n,flows:i,...o}=e;switch(r){case"http":if("basic"===t)return{...o,type:t};if("bearer"===t)return{...o,type:"apiKey",name:"Authorization",in:"header"};break;case"oauth2":const e=Object.keys(i)[0],s=i[e];let n=e;return"clientCredentials"===n?n="application":"authorizationCode"===n&&(n="accessCode"),{type:r,flow:n,authorizationUrl:s.authorizationUrl,tokenUrl:s.tokenUrl,scopes:s.scopes}}}return Object.entries(e).reduce(((e,[r,s])=>({...e,[r]:t(s)})),{})}function hn(e){let t=e.url;const r=e.variables||{};for(const e in r){const s=r[e]||{};if(s.default){const r=RegExp(`{${e}}`,"g");t=t.replace(r,s.default)}}const s=new URL(t);return{host:s.host?s.host:void 0,basePath:s.pathname,schemes:null!==s.protocol?[s.protocol.substring(0,s.protocol.length-1)]:void 0}}class ln{spec;constructor(e){this.spec=JSON.parse(JSON.stringify(e))}convertInfos(){const e=this.spec.servers&&this.spec.servers[0];return e?hn(e):{}}resolveReference(e,t,r){if(!t||!t.$ref)return t;const s=t.$ref;if(s.startsWith("#")){const t=s.split("/").map((e=>e.replace(/~1/g,"/").replace(/~0/g,"~")));t.shift();let n=e;return t.forEach((e=>{n=n[e]})),r?JSON.parse(JSON.stringify(n)):n}}convert(){const e={swagger:"2.0",...this.convertInfos(),paths:this.spec.paths?this.convertOperations(this.spec.paths,this.spec):void 0};return this.spec.components&&(this.convertSchemas(),this.convertSecurityDefinitions(),this.spec["x-components"]=this.spec.components,delete this.spec.components,an(this.spec)),delete this.spec.servers,delete this.spec.openapi,delete this.spec["x-components"],(0,d.cleanObject)({...e,...this.spec})}convertOperations(e,t){return Object.entries(e).reduce(((e,[r,s])=>{const n=e[r]=this.resolveReference({...t,paths:e},s,!0);return this.convertParameters(n),Object.keys(n).forEach((r=>{if(tn.indexOf(r)>=0){const s=n[r]=this.resolveReference({...t,paths:e},n[r],!0);this.convertOperationParameters(s),this.convertResponses(s)}})),e}),e)}convertOperationParameters(e){let t,r,s,n;if(e.parameters=e.parameters||[],e.requestBody){let i=this.resolveReference(this.spec,e.requestBody,!0);if(e.requestBody.content){const t=pn(e.requestBody.content)[0],r={content:{}},s=e.requestBody.content[t];s&&s.schema&&s.schema.$ref&&!s.schema.$ref.startsWith("#")&&(i=this.resolveReference(this.spec,s.schema,!0),r.content[`${t}`]={schema:i},i=r)}if(i.name="body",t=i.content,t&&Object.keys(t).length){if(s=Object.keys(t).filter((e=>e.indexOf("/")>0)),n=s.filter((e=>e.indexOf("*")<0)),r=pn(t)[0],delete i.content,[on.APPLICATION_X_WWW_URLENCODED,on.MULTIPART_FORM_DATA].includes(r))if(e.consumes=n,i.in="formData",i.schema=t[r].schema,i.schema=this.resolveReference(this.spec,i.schema,!0),"object"===i.schema.type&&i.schema.properties){const t=i.schema.required||[];Object.keys(i.schema.properties).forEach((r=>{const s=i.schema.properties[r];if(!s.readOnly){const n={name:r,in:"formData",schema:s};t.indexOf(r)>=0&&(n.required=!0),e.parameters?.push(n)}}))}else e.parameters.push(i);else r?(e.consumes=n,i.in="body",i.schema=t[r].schema,e.parameters.push(i)):s&&(e.consumes=n||["application/octet-stream"],i.in="body",i.name=i.name||"file",delete i.type,i.schema=t[s[0]].schema||{type:"string",format:"binary"},e.parameters.push(i));i.schema&&this.convertSchema(i.schema,"request")}delete e.requestBody}this.convertParameters(e)}convertParameters(e){void 0!==e.parameters&&(e.parameters=e.parameters||[],(e.parameters||[]).forEach(((t,r)=>{if("body"!==(t=e.parameters[r]=this.resolveReference(this.spec,t,!1)).in){if(this.copySchemaProperties(t,rn),this.copySchemaProperties(t,sn),this.copySchemaXProperties(t),!t.description){const e=this.resolveReference(this.spec,t.schema,!1);e&&e.description&&(t.description=e.description)}void 0!==t.example&&(t["x-example"]=t.example),delete t.schema,delete t.allowReserved,delete t.example}if("array"===t.type)switch(t.style||("query"===t.in||"cookie"===t.in?"form":"simple")){case"matrix":t.collectionFormat=t.explode?void 0:"csv";break;case"label":t.collectionFormat=void 0;break;case"simple":t.collectionFormat="csv";break;case"spaceDelimited":t.collectionFormat="ssv";break;case"pipeDelimited":t.collectionFormat="pipes";break;case"deepOpbject":t.collectionFormat="multi";break;case"form":t.collectionFormat=!1===t.explode?"csv":"multi"}delete t.style,delete t.explode})))}copySchemaProperties(e,t){let r=this.resolveReference(this.spec,e.schema,!0);r&&t.forEach((t=>{const s=r[t];"additionalProperties"===t&&"boolean"==typeof s||void 0!==s&&(e[t]=s)}))}copySchemaXProperties(e){let t=this.resolveReference(this.spec,e.schema,!0);t&&Object.keys(t).forEach((r=>{Reflect.hasOwnProperty.call(t,r)&&!Reflect.hasOwnProperty.call(e,r)&&r.startsWith("x-")&&(e[r]=t[r])}))}convertResponses(e){Object.keys(e.responses||{}).forEach((t=>{const r=e.responses[t]=this.resolveReference(this.spec,e.responses[t],!0);if(r.content){let t=null,s=null;if(Object.keys(r.content).forEach((n=>{const i=n.indexOf("*")<0?n:"application/octet-stream";e.produces?e.produces.indexOf(i)<0&&e.produces.push(i):e.produces=[i];const o=r.content[n];t=t||o.schema,!s&&cn(i)&&(s=o.schema),o.example&&(r.examples=r.examples||{},r.examples[i]=o.example)})),t){r.schema=s||t;const e=this.resolveReference(this.spec,r.schema,!0);e&&r.schema.$ref&&!r.schema.$ref.startsWith("#")&&(r.schema=e),this.convertSchema(r.schema,"response")}}Object.keys(r.headers||{}).forEach((e=>{const t=this.resolveReference(this.spec,r.headers[e],!0);t.schema&&(t.type=t.schema.type,t.format=t.schema.format,delete t.schema),r.headers[e]=t})),delete r.content}))}convertSchema(e,t){if(e.oneOf&&(delete e.oneOf,e.discriminator&&delete e.discriminator),e.anyOf&&(delete e.anyOf,e.discriminator&&delete e.discriminator),e.allOf)for(const r in e.allOf)this.convertSchema(e.allOf[r],t);switch(e.discriminator&&(e.discriminator.mapping&&this.convertDiscriminatorMapping(e.discriminator.mapping),e.discriminator=e.discriminator.propertyName),e.type){case"object":e.properties&&Object.keys(e.properties).forEach((r=>{!0===e.properties[r].writeOnly&&"response"===t?delete e.properties[r]:(this.convertSchema(e.properties[r],t),delete e.properties[r].writeOnly)}));break;case"array":e.items&&this.convertSchema(e.items,t)}e.nullable&&(e["x-nullable"]=!0,delete e.nullable),void 0!==e.deprecated&&(void 0===e["x-deprecated"]&&(e["x-deprecated"]=e.deprecated),delete e.deprecated)}convertSchemas(){this.spec.definitions=this.spec.components.schemas,Object.keys(this.spec.definitions||{}).forEach((e=>{this.convertSchema(this.spec.definitions[e])})),delete this.spec.components.schemas}convertDiscriminatorMapping(e){Object.keys(e).forEach((t=>{const r=e[t];if("string"!=typeof r)return void console.warn(`Ignoring ${r} for ${t} in discriminator.mapping.`);let s;if(/^[a-zA-Z0-9._-]+$/.test(r))try{s=this.resolveReference(this.spec,{$ref:`#/components/schemas/${r}`},!1)}catch(e){console.debug(`Error resolving ${r} for ${t} as schema name in discriminator.mapping: ${e}`)}if(!s)try{s=this.resolveReference(this.spec,{$ref:r},!1)}catch(e){console.debug(`Error resolving ${r} for ${t} in discriminator.mapping: ${e}`)}s?(s["x-discriminator-value"]=t,s["x-ms-discriminator-value"]=t):console.warn(`Unable to resolve ${r} for ${t} in discriminator.mapping.`)}))}convertSecurityDefinitions(){this.spec.components.securitySchemes&&(this.spec.securityDefinitions=un(this.spec.components.securitySchemes),delete this.spec.components.securitySchemes)}}function mn(e){return new ln(e).convert()}async function dn({tokens:e,...t}){const{version:r="1.0.0",acceptMimes:s,specPath:n,specVersion:i}=t,o=en((0,d.getValue)(t,"spec",{}),{fileSpec:{},version:r,specVersion:i,acceptMimes:s}),a=zs(o),c=Fs(o,Ws(e,t));return a===se.SWAGGER?mn(c):c}const fn="$cache:schemes";function yn(e,t={}){const r=z(e),s=t.specType||se.JSON;return t={endpoint:!0,groups:[],inlineEnums:s===se.JSON,...t,specType:s,components:{schemas:{}}},"parameter"===r.decoratorType&&(t={...t,genericTypes:r.nestedGenerics[0],nestedGenerics:r.nestedGenerics,groups:r.parameter?.groups}),function(e,t){const r=e.store.get(fn)||new Map,s=function(e){return JSON.stringify(e)}(t);if(!r.has(s)){const n=u("schema",[e.schema],t);Object.keys((0,d.getValue)(t,"components.schemas",{})).length&&(n.definitions=t.components.schemas),r.set(s,n)}return e.store.set(fn,r),r.get(s)}(r,t)}function gn(e,t={}){const r=e.isStore?e:z(e),s=Hs(t.basePath,r.path);let n=[];return t.withChildren&&(n=r.get("childrenControllers",[]).reduce(((e,r)=>e.concat(gn(r,{...t,basePath:s}))),n)),[...Z(e).values()].reduce(((r,n)=>{const{operation:i}=n;return i&&i.getAllowedOperationPath(t.allowedVerbs).forEach((t=>{r.push(new qs({basePath:s,token:e,endpoint:n,operationPath:t}))})),r}),n)}function On(e){const t=e.isStore?e:z(e);if(!t.$properties){const e=Y(t);t.$properties=new Map,e.forEach((e=>{e.children.forEach((e=>{t.$properties.has(e.propertyKey)||t.$properties.set(e.propertyKey,e)}))}))}return t.$properties}function Sn(e,t={}){const r=On(e),s=new Map;return r.forEach(((e,r)=>{!t.withIgnoredProps&&we(e.itemSchema,t)||s.set(r,e)})),s}})(),i})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("change-case"),require("@tsed/core")):"function"==typeof define&&define.amd?define(["change-case","@tsed/core"],t):"object"==typeof exports?exports["@tsed/schema"]=t(require("change-case"),require("@tsed/core")):e["@tsed/schema"]=t(e["change-case"],e["@tsed/core"])}(self,((e,t)=>(()=>{"use strict";var r={133:(e,t,r)=>{e.exports=r(555)},379:e=>{const t="\\\\/",r=`[^${t}]`,s="\\.",n="\\/",i="[^/]",o=`(?:${n}|$)`,a=`(?:^|${n})`,c=`${s}{1,2}${o}`,p={DOT_LITERAL:s,PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:n,ONE_CHAR:"(?=.)",QMARK:i,END_ANCHOR:o,DOTS_SLASH:c,NO_DOT:`(?!${s})`,NO_DOTS:`(?!${a}${c})`,NO_DOT_SLASH:`(?!${s}{0,1}${o})`,NO_DOTS_SLASH:`(?!${c})`,QMARK_NO_DOT:`[^.${n}]`,STAR:`${i}*?`,START_ANCHOR:a,SEP:"/"},u={...p,SLASH_LITERAL:`[${t}]`,QMARK:r,STAR:`${r}*?`,DOTS_SLASH:`${s}{1,2}(?:[${t}]|$)`,NO_DOT:`(?!${s})`,NO_DOTS:`(?!(?:^|[${t}])${s}{1,2}(?:[${t}]|$))`,NO_DOT_SLASH:`(?!${s}{0,1}(?:[${t}]|$))`,NO_DOTS_SLASH:`(?!${s}{1,2}(?:[${t}]|$))`,QMARK_NO_DOT:`[^.${t}]`,START_ANCHOR:`(?:^|[${t}])`,END_ANCHOR:`(?:[${t}]|$)`,SEP:"\\"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?u:p}},390:(e,t,r)=>{const s=r(379),n=r(290),{MAX_LENGTH:i,POSIX_REGEX_SOURCE:o,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:c,REPLACEMENTS:p}=s,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map((e=>n.escapeRegex(e))).join("..")}return r},h=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,l=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=p[e]||e;const r={...t},l="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;let m=e.length;if(m>l)throw new SyntaxError(`Input length: ${m}, exceeds maximum allowed length: ${l}`);const d={type:"bos",value:"",output:r.prepend||""},f=[d],y=r.capture?"":"?:",g=s.globChars(r.windows),O=s.extglobChars(g),{DOT_LITERAL:S,PLUS_LITERAL:b,SLASH_LITERAL:R,ONE_CHAR:T,DOTS_SLASH:A,NO_DOT:E,NO_DOT_SLASH:P,NO_DOTS_SLASH:v,QMARK:x,QMARK_NO_DOT:C,STAR:$,START_ANCHOR:M}=g,w=e=>`(${y}(?:(?!${M}${e.dot?A:S}).)*?)`,_=r.dot?"":E,N=r.dot?x:C;let I=!0===r.bash?w(r):$;r.capture&&(I=`(${I})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const D={input:e,index:-1,start:0,dot:!0===r.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:f};e=n.removePrefix(e,D),m=e.length;const L=[],k=[],j=[];let H,q=d;const G=()=>D.index===m-1,B=D.peek=(t=1)=>e[D.index+t],U=D.advance=()=>e[++D.index],K=()=>e.slice(D.index+1),J=(e="",t=0)=>{D.consumed+=e,D.index+=t},F=e=>{D.output+=null!=e.output?e.output:e.value,J(e.value)},V=()=>{let e=1;for(;"!"===B()&&("("!==B(2)||"?"===B(3));)U(),D.start++,e++;return e%2!=0&&(D.negated=!0,D.start++,!0)},W=e=>{D[e]++,j.push(e)},X=e=>{D[e]--,j.pop()},z=e=>{if("globstar"===q.type){const t=D.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||L.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(D.output=D.output.slice(0,-q.output.length),q.type="star",q.value="*",q.output=I,D.output+=q.output)}if(L.length&&"paren"!==e.type&&!O[e.value]&&(L[L.length-1].inner+=e.value),(e.value||e.output)&&F(e),q&&"text"===q.type&&"text"===e.type)return q.value+=e.value,void(q.output=(q.output||"")+e.value);e.prev=q,f.push(e),q=e},Q=(e,t)=>{const s={...O[t],conditions:1,inner:""};s.prev=q,s.parens=D.parens,s.output=D.output;const n=(r.capture?"(":"")+s.open;W("parens"),z({type:e,value:t,output:D.output?"":T}),z({type:"paren",extglob:!0,value:U(),output:n}),L.push(s)},Y=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let s=I;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(s=w(r)),(s!==I||G()||/^\)+$/.test(K()))&&(t=e.close=`)$))${s}`),"bos"===e.prev.type&&G()&&(D.negatedExtglob=!0)}z({type:"paren",extglob:!0,value:H,output:t}),X("parens")};if(!1!==r.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let s=!1,i=e.replace(c,((e,t,r,n,i,o)=>"\\"===n?(s=!0,e):"?"===n?t?t+n+(i?x.repeat(i.length):""):0===o?N+(i?x.repeat(i.length):""):x.repeat(r.length):"."===n?S.repeat(r.length):"*"===n?t?t+n+(i?I:""):I:t?e:`\\${e}`));return!0===s&&(i=!0===r.unescape?i.replace(/\\/g,""):i.replace(/\\+/g,(e=>e.length%2==0?"\\\\":e?"\\":""))),i===e&&!0===r.contains?(D.output=e,D):(D.output=n.wrapOutput(i,D,t),D)}for(;!G();){if(H=U(),"\0"===H)continue;if("\\"===H){const e=B();if("/"===e&&!0!==r.bash)continue;if("."===e||";"===e)continue;if(!e){H+="\\",z({type:"text",value:H});continue}const t=/^\\+/.exec(K());let s=0;if(t&&t[0].length>2&&(s=t[0].length,D.index+=s,s%2!=0&&(H+="\\")),!0===r.unescape?H=U()||"":H+=U()||"",0===D.brackets){z({type:"text",value:H});continue}}if(D.brackets>0&&("]"!==H||"["===q.value||"[^"===q.value)){if(!1!==r.posix&&":"===H){const e=q.value.slice(1);if(e.includes("[")&&(q.posix=!0,e.includes(":"))){const e=q.value.lastIndexOf("["),t=q.value.slice(0,e),r=q.value.slice(e+2),s=o[r];if(s){q.value=t+s,D.backtrack=!0,U(),d.output||1!==f.indexOf(q)||(d.output=T);continue}}}("["===H&&":"!==B()||"-"===H&&"]"===B())&&(H=`\\${H}`),"]"!==H||"["!==q.value&&"[^"!==q.value||(H=`\\${H}`),!0===r.posix&&"!"===H&&"["===q.value&&(H="^"),q.value+=H,F({value:H});continue}if(1===D.quotes&&'"'!==H){H=n.escapeRegex(H),q.value+=H,F({value:H});continue}if('"'===H){D.quotes=1===D.quotes?0:1,!0===r.keepQuotes&&z({type:"text",value:H});continue}if("("===H){W("parens"),z({type:"paren",value:H});continue}if(")"===H){if(0===D.parens&&!0===r.strictBrackets)throw new SyntaxError(h("opening","("));const e=L[L.length-1];if(e&&D.parens===e.parens+1){Y(L.pop());continue}z({type:"paren",value:H,output:D.parens?")":"\\)"}),X("parens");continue}if("["===H){if(!0!==r.nobracket&&K().includes("]"))W("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));H=`\\${H}`}z({type:"bracket",value:H});continue}if("]"===H){if(!0===r.nobracket||q&&"bracket"===q.type&&1===q.value.length){z({type:"text",value:H,output:`\\${H}`});continue}if(0===D.brackets){if(!0===r.strictBrackets)throw new SyntaxError(h("opening","["));z({type:"text",value:H,output:`\\${H}`});continue}X("brackets");const e=q.value.slice(1);if(!0===q.posix||"^"!==e[0]||e.includes("/")||(H=`/${H}`),q.value+=H,F({value:H}),!1===r.literalBrackets||n.hasRegexChars(e))continue;const t=n.escapeRegex(q.value);if(D.output=D.output.slice(0,-q.value.length),!0===r.literalBrackets){D.output+=t,q.value=t;continue}q.value=`(${y}${t}|${q.value})`,D.output+=q.value;continue}if("{"===H&&!0!==r.nobrace){W("braces");const e={type:"brace",value:H,output:"(",outputIndex:D.output.length,tokensIndex:D.tokens.length};k.push(e),z(e);continue}if("}"===H){const e=k[k.length-1];if(!0===r.nobrace||!e){z({type:"text",value:H,output:H});continue}let t=")";if(!0===e.dots){const e=f.slice(),s=[];for(let t=e.length-1;t>=0&&(f.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&s.unshift(e[t].value);t=u(s,r),D.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=D.output.slice(0,e.outputIndex),s=D.tokens.slice(e.tokensIndex);e.value=e.output="\\{",H=t="\\}",D.output=r;for(const e of s)D.output+=e.output||e.value}z({type:"brace",value:H,output:t}),X("braces"),k.pop();continue}if("|"===H){L.length>0&&L[L.length-1].conditions++,z({type:"text",value:H});continue}if(","===H){let e=H;const t=k[k.length-1];t&&"braces"===j[j.length-1]&&(t.comma=!0,e="|"),z({type:"comma",value:H,output:e});continue}if("/"===H){if("dot"===q.type&&D.index===D.start+1){D.start=D.index+1,D.consumed="",D.output="",f.pop(),q=d;continue}z({type:"slash",value:H,output:R});continue}if("."===H){if(D.braces>0&&"dot"===q.type){"."===q.value&&(q.output=S);const e=k[k.length-1];q.type="dots",q.output+=H,q.value+=H,e.dots=!0;continue}if(D.braces+D.parens===0&&"bos"!==q.type&&"slash"!==q.type){z({type:"text",value:H,output:S});continue}z({type:"dot",value:H,output:S});continue}if("?"===H){if((!q||"("!==q.value)&&!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Q("qmark",H);continue}if(q&&"paren"===q.type){const e=B();let t=H;if("<"===e&&!n.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===q.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),z({type:"text",value:H,output:t});continue}if(!0!==r.dot&&("slash"===q.type||"bos"===q.type)){z({type:"qmark",value:H,output:C});continue}z({type:"qmark",value:H,output:x});continue}if("!"===H){if(!0!==r.noextglob&&"("===B()&&("?"!==B(2)||!/[!=<:]/.test(B(3)))){Q("negate",H);continue}if(!0!==r.nonegate&&0===D.index){V();continue}}if("+"===H){if(!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Q("plus",H);continue}if(q&&"("===q.value||!1===r.regex){z({type:"plus",value:H,output:b});continue}if(q&&("bracket"===q.type||"paren"===q.type||"brace"===q.type)||D.parens>0){z({type:"plus",value:H});continue}z({type:"plus",value:b});continue}if("@"===H){if(!0!==r.noextglob&&"("===B()&&"?"!==B(2)){z({type:"at",extglob:!0,value:H,output:""});continue}z({type:"text",value:H});continue}if("*"!==H){"$"!==H&&"^"!==H||(H=`\\${H}`);const e=a.exec(K());e&&(H+=e[0],D.index+=e[0].length),z({type:"text",value:H});continue}if(q&&("globstar"===q.type||!0===q.star)){q.type="star",q.star=!0,q.value+=H,q.output=I,D.backtrack=!0,D.globstar=!0,J(H);continue}let t=K();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Q("star",H);continue}if("star"===q.type){if(!0===r.noglobstar){J(H);continue}const s=q.prev,n=s.prev,i="slash"===s.type||"bos"===s.type,o=n&&("star"===n.type||"globstar"===n.type);if(!0===r.bash&&(!i||t[0]&&"/"!==t[0])){z({type:"star",value:H,output:""});continue}const a=D.braces>0&&("comma"===s.type||"brace"===s.type),c=L.length&&("pipe"===s.type||"paren"===s.type);if(!i&&"paren"!==s.type&&!a&&!c){z({type:"star",value:H,output:""});continue}for(;"/**"===t.slice(0,3);){const r=e[D.index+4];if(r&&"/"!==r)break;t=t.slice(3),J("/**",3)}if("bos"===s.type&&G()){q.type="globstar",q.value+=H,q.output=w(r),D.output=q.output,D.globstar=!0,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&!o&&G()){D.output=D.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=w(r)+(r.strictSlashes?")":"|$)"),q.value+=H,D.globstar=!0,D.output+=s.output+q.output,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";D.output=D.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=`${w(r)}${R}|${R}${e})`,q.value+=H,D.output+=s.output+q.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}if("bos"===s.type&&"/"===t[0]){q.type="globstar",q.value+=H,q.output=`(?:^|${R}|${w(r)}${R})`,D.output=q.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}D.output=D.output.slice(0,-q.output.length),q.type="globstar",q.output=w(r),q.value+=H,D.output+=q.output,D.globstar=!0,J(H);continue}const s={type:"star",value:H,output:I};!0!==r.bash?!q||"bracket"!==q.type&&"paren"!==q.type||!0!==r.regex?(D.index!==D.start&&"slash"!==q.type&&"dot"!==q.type||("dot"===q.type?(D.output+=P,q.output+=P):!0===r.dot?(D.output+=v,q.output+=v):(D.output+=_,q.output+=_),"*"!==B()&&(D.output+=T,q.output+=T)),z(s)):(s.output=H,z(s)):(s.output=".*?","bos"!==q.type&&"slash"!==q.type||(s.output=_+s.output),z(s))}for(;D.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));D.output=n.escapeLast(D.output,"["),X("brackets")}for(;D.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing",")"));D.output=n.escapeLast(D.output,"("),X("parens")}for(;D.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","}"));D.output=n.escapeLast(D.output,"{"),X("braces")}if(!0===r.strictSlashes||"star"!==q.type&&"bracket"!==q.type||z({type:"maybe_slash",value:"",output:`${R}?`}),!0===D.backtrack){D.output="";for(const e of D.tokens)D.output+=null!=e.output?e.output:e.value,e.suffix&&(D.output+=e.suffix)}return D};l.fastpaths=(e,t)=>{const r={...t},o="number"==typeof r.maxLength?Math.min(i,r.maxLength):i,a=e.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);e=p[e]||e;const{DOT_LITERAL:c,SLASH_LITERAL:u,ONE_CHAR:h,DOTS_SLASH:l,NO_DOT:m,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:y,START_ANCHOR:g}=s.globChars(r.windows),O=r.dot?d:m,S=r.dot?f:m,b=r.capture?"":"?:";let R=!0===r.bash?".*?":y;r.capture&&(R=`(${R})`);const T=e=>!0===e.noglobstar?R:`(${b}(?:(?!${g}${e.dot?l:c}).)*?)`,A=e=>{switch(e){case"*":return`${O}${h}${R}`;case".*":return`${c}${h}${R}`;case"*.*":return`${O}${R}${c}${h}${R}`;case"*/*":return`${O}${R}${u}${h}${S}${R}`;case"**":return O+T(r);case"**/*":return`(?:${O}${T(r)}${u})?${S}${h}${R}`;case"**/*.*":return`(?:${O}${T(r)}${u})?${S}${R}${c}${h}${R}`;case"**/.*":return`(?:${O}${T(r)}${u})?${c}${h}${R}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=A(t[1]);if(!r)return;return r+c+t[2]}}},E=n.removePrefix(e,{negated:!1,prefix:""});let P=A(E);return P&&!0!==r.strictSlashes&&(P+=`${u}?`),P},e.exports=l},555:(e,t,r)=>{const s=r(270),n=r(390),i=r(290),o=r(379),a=(e,t,r=!1)=>{if(Array.isArray(e)){const s=e.map((e=>a(e,t,r))),n=e=>{for(const t of s){const r=t(e);if(r)return r}return!1};return n}const s=(n=e)&&"object"==typeof n&&!Array.isArray(n)&&e.tokens&&e.input;var n;if(""===e||"string"!=typeof e&&!s)throw new TypeError("Expected pattern to be a non-empty string");const i=t||{},o=i.windows,c=s?a.compileRe(e,t):a.makeRe(e,t,!1,!0),p=c.state;delete c.state;let u=()=>!1;if(i.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};u=a(i.ignore,e,r)}const h=(r,s=!1)=>{const{isMatch:n,match:h,output:l}=a.test(r,c,t,{glob:e,posix:o}),m={glob:e,state:p,regex:c,posix:o,input:r,output:l,match:h,isMatch:n};return"function"==typeof i.onResult&&i.onResult(m),!1===n?(m.isMatch=!1,!!s&&m):u(r)?("function"==typeof i.onIgnore&&i.onIgnore(m),m.isMatch=!1,!!s&&m):("function"==typeof i.onMatch&&i.onMatch(m),!s||m)};return r&&(h.state=p),h};a.test=(e,t,r,{glob:s,posix:n}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const o=r||{},c=o.format||(n?i.toPosixSlashes:null);let p=e===s,u=p&&c?c(e):e;return!1===p&&(u=c?c(e):e,p=u===s),!1!==p&&!0!==o.capture||(p=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,n):t.exec(u)),{isMatch:Boolean(p),match:p,output:u}},a.matchBase=(e,t,r)=>(t instanceof RegExp?t:a.makeRe(t,r)).test(i.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map((e=>a.parse(e,t))):n(e,{...t,fastpaths:!1}),a.scan=(e,t)=>s(e,t),a.compileRe=(e,t,r=!1,s=!1)=>{if(!0===r)return e.output;const n=t||{},i=n.contains?"":"^",o=n.contains?"":"$";let c=`${i}(?:${e.output})${o}`;e&&!0===e.negated&&(c=`^(?!${c}).*$`);const p=a.toRegex(c,t);return!0===s&&(p.state=e),p},a.makeRe=(e,t,r=!1,s=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let o,c={negated:!1,fastpaths:!0},p="";return e.startsWith("./")&&(e=e.slice(2),p=c.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(o=n.fastpaths(e,t)),void 0===o?(c=n(e,t),c.prefix=p+(c.prefix||"")):c.output=o,a.compileRe(c,t,r,s)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=o,e.exports=a},270:(e,t,r)=>{const s=r(290),{CHAR_ASTERISK:n,CHAR_AT:i,CHAR_BACKWARD_SLASH:o,CHAR_COMMA:a,CHAR_DOT:c,CHAR_EXCLAMATION_MARK:p,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:h,CHAR_LEFT_PARENTHESES:l,CHAR_LEFT_SQUARE_BRACKET:m,CHAR_PLUS:d,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:y,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:O}=r(379),S=e=>e===u||e===o,b=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},R=e.length-1,T=!0===r.parts||!0===r.scanToEnd,A=[],E=[],P=[];let v,x,C=e,$=-1,M=0,w=0,_=!1,N=!1,I=!1,D=!1,L=!1,k=!1,j=!1,H=!1,q=!1,G=0,B={value:"",depth:0,isGlob:!1};const U=()=>$>=R,K=()=>(v=x,C.charCodeAt(++$));for(;$<R;){let e;if(x=K(),x!==o){if(!0===k||x===h){for(G++;!0!==U()&&(x=K());)if(x!==o)if(x!==h){if(!0!==k&&x===c&&(x=K())===c){if(_=B.isBrace=!0,I=B.isGlob=!0,q=!0,!0===T)continue;break}if(!0!==k&&x===a){if(_=B.isBrace=!0,I=B.isGlob=!0,q=!0,!0===T)continue;break}if(x===y&&(G--,0===G)){k=!1,_=B.isBrace=!0,q=!0;break}}else G++;else j=B.backslashes=!0,K();if(!0===T)continue;break}if(x!==u){if(!0!==r.noext&&!0==(x===d||x===i||x===n||x===f||x===p)&&C.charCodeAt($+1)===l){if(I=B.isGlob=!0,D=B.isExtglob=!0,q=!0,!0===T){for(;!0!==U()&&(x=K());)if(x!==o){if(x===g){I=B.isGlob=!0,q=!0;break}}else j=B.backslashes=!0,x=K();continue}break}if(x===n){if(v===n&&(L=B.isGlobstar=!0),I=B.isGlob=!0,q=!0,!0===T)continue;break}if(x===f){if(I=B.isGlob=!0,q=!0,!0===T)continue;break}if(x===m)for(;!0!==U()&&(e=K());)if(e!==o){if(e===O){if(N=B.isBracket=!0,I=B.isGlob=!0,q=!0,!0===T)continue;break}}else j=B.backslashes=!0,K();if(!0===r.nonegate||x!==p||$!==M){if(!0!==r.noparen&&x===l){if(I=B.isGlob=!0,!0===T){for(;!0!==U()&&(x=K());)if(x!==l){if(x===g){q=!0;break}}else j=B.backslashes=!0,x=K();continue}break}if(!0===I){if(q=!0,!0===T)continue;break}}else H=B.negated=!0,M++}else{if(A.push($),E.push(B),B={value:"",depth:0,isGlob:!1},!0===q)continue;if(v===c&&$===M+1){M+=2;continue}w=$+1}}else j=B.backslashes=!0,x=K(),x===h&&(k=!0)}!0===r.noext&&(D=!1,I=!1);let J=C,F="",V="";M>0&&(F=C.slice(0,M),C=C.slice(M),w-=M),J&&!0===I&&w>0?(J=C.slice(0,w),V=C.slice(w)):!0===I?(J="",V=C):J=C,J&&""!==J&&"/"!==J&&J!==C&&S(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(V&&(V=s.removeBackslashes(V)),J&&!0===j&&(J=s.removeBackslashes(J)));const W={prefix:F,input:e,start:M,base:J,glob:V,isBrace:_,isBracket:N,isGlob:I,isExtglob:D,isGlobstar:L,negated:H};if(!0===r.tokens&&(W.maxDepth=0,S(x)||E.push(B),W.tokens=E),!0===r.parts||!0===r.tokens){let t;for(let s=0;s<A.length;s++){const n=t?t+1:M,i=A[s],o=e.slice(n,i);r.tokens&&(0===s&&0!==M?(E[s].isPrefix=!0,E[s].value=F):E[s].value=o,b(E[s]),W.maxDepth+=E[s].depth),0===s&&""===o||P.push(o),t=i}if(t&&t+1<e.length){const s=e.slice(t+1);P.push(s),r.tokens&&(E[E.length-1].value=s,b(E[E.length-1]),W.maxDepth+=E[E.length-1].depth)}W.slashes=A,W.parts=P}return W}},290:(e,t,r)=>{const{REGEX_BACKSLASH:s,REGEX_REMOVE_BACKSLASH:n,REGEX_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_GLOBAL:o}=r(379);t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>i.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(o,"\\$1"),t.toPosixSlashes=e=>e.replace(s,"/"),t.removeBackslashes=e=>e.replace(n,(e=>"\\"===e?"":e)),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.escapeLast=(e,r,s)=>{const n=e.lastIndexOf(r,s);return-1===n?e:"\\"===e[n-1]?t.escapeLast(e,r,n-1):`${e.slice(0,n)}\\${e.slice(n)}`},t.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r},t.wrapOutput=(e,t={},r={})=>{let s=`${r.contains?"":"^"}(?:${e})${r.contains?"":"$"}`;return!0===t.negated&&(s=`(?:^(?!${s}).*$)`),s},t.basename=(e,{windows:t}={})=>t?e.replace(/[\\/]$/,"").replace(/.*[\\/]/,""):e.replace(/\/$/,"").replace(/.*\//,"")},203:(e,t,r)=>{var s=r(739);function n(e){if(!Object.prototype.hasOwnProperty.call(i.message,e))throw new Error("invalid status code: "+e);return i.message[e]}function i(e){if("number"==typeof e)return n(e);if("string"!=typeof e)throw new TypeError("code must be a number or string");var t=parseInt(e,10);return isNaN(t)?function(e){var t=e.toLowerCase();if(!Object.prototype.hasOwnProperty.call(i.code,t))throw new Error('invalid status message: "'+e+'"');return i.code[t]}(e):n(t)}e.exports=i,i.message=s,i.code=function(e){var t={};return Object.keys(e).forEach((function(r){var s=e[r],n=Number(r);t[s.toLowerCase()]=n})),t}(s),i.codes=function(e){return Object.keys(e).map((function(e){return Number(e)}))}(s),i.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0},i.empty={204:!0,205:!0,304:!0},i.retry={502:!0,503:!0,504:!0}},803:e=>{e.exports=t},598:t=>{t.exports=e},739:e=>{e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{n.r(i),n.d(i,{ARRAY_PROPERTIES:()=>xe,AcceptMime:()=>Zr,AdditionalProperties:()=>vt,All:()=>Ps,AllOf:()=>xt,Allow:()=>$t,Any:()=>Mt,AnyOf:()=>wt,ArrayOf:()=>gt,BOOLEAN_PROPERTIES:()=>Pe,COMMON_PROPERTIES:()=>$e,Children:()=>dt,CollectionContains:()=>St,CollectionOf:()=>yt,Const:()=>_t,Consumes:()=>es,ContentType:()=>cs,Converter:()=>ln,CustomKey:()=>Nt,CustomKeys:()=>It,DateFormat:()=>Zt,DateTime:()=>Yt,DecoratorContext:()=>ts,Default:()=>Dt,DefaultMsg:()=>kt,Delete:()=>$s,Deprecated:()=>ps,Description:()=>jt,Discriminator:()=>v,DiscriminatorKey:()=>Ht,DiscriminatorValue:()=>ft,Email:()=>Qt,EndpointMetadata:()=>X,Enum:()=>qt,ErrorMsg:()=>Lt,Example:()=>Gt,Examples:()=>Bt,ExclusiveMaximum:()=>Jt,ExclusiveMinimum:()=>Wt,For:()=>Tr,Format:()=>zt,ForwardGroups:()=>sr,GenericOf:()=>zr,Generics:()=>Qr,Get:()=>vs,Groups:()=>cr,HTTP_STATUS_MESSAGES:()=>Ye,Head:()=>Ms,Header:()=>us,Hidden:()=>pr,Ignore:()=>ur,In:()=>hs,InFile:()=>ls,Integer:()=>hr,JSON_TYPES:()=>R,JsonClassStore:()=>w,JsonEntitiesContainer:()=>f,JsonEntityComponent:()=>M,JsonEntityFn:()=>mt,JsonEntityStore:()=>y,JsonFormatTypes:()=>Xt,JsonLazyRef:()=>he,JsonMap:()=>I,JsonMedia:()=>J,JsonMethodStore:()=>W,JsonOperation:()=>V,JsonOperationPathsMap:()=>Q,JsonOperationRoute:()=>qs,JsonParameter:()=>j,JsonParameterStore:()=>H,JsonParameterTypes:()=>D,JsonPropertyStore:()=>_,JsonRequestBody:()=>st,JsonResponse:()=>F,JsonSchema:()=>$,Location:()=>ms,MANY_OF_PROPERTIES:()=>Ae,MapOf:()=>Ot,Max:()=>Kt,MaxItems:()=>Rt,MaxLength:()=>lr,MaxProperties:()=>Tt,Maximum:()=>Ut,Min:()=>Vt,MinItems:()=>At,MinLength:()=>mr,MinProperties:()=>Et,Minimum:()=>Ft,MultipleOf:()=>dr,NUMBER_PROPERTIES:()=>ve,Name:()=>fr,Nullable:()=>yr,OBJECT_PROPERTIES:()=>Ce,OPERATION_HTTP_VERBS:()=>r,OPERATION_WS_VERBS:()=>s,OneOf:()=>gr,Operation:()=>gs,OperationId:()=>Os,OperationMethods:()=>o,OperationPath:()=>Ss,OperationVerbs:()=>e,Optional:()=>Or,Options:()=>_s,ParamMetadata:()=>q,Partial:()=>bs,Patch:()=>ws,Path:()=>Rs,Pattern:()=>Sr,Post:()=>xs,Produces:()=>Yr,Property:()=>Ct,PropertyMetadata:()=>N,Publish:()=>Ts,Put:()=>Cs,ReadOnly:()=>br,RecordOf:()=>Ar,Redirect:()=>As,Required:()=>Er,RequiredGroups:()=>Pr,Returns:()=>as,Route:()=>Es,STRING_PROPERTIES:()=>Ee,Schema:()=>Rr,Security:()=>Ns,SpecTypes:()=>se,Status:()=>Is,Subscribe:()=>Ds,Summary:()=>Ls,Tags:()=>ks,TimeFormat:()=>er,Title:()=>vr,TypeError:()=>xr,UniqueItems:()=>Pt,Uri:()=>tr,Url:()=>rr,View:()=>js,WriteOnly:()=>Cr,allOf:()=>Vr,alterIgnore:()=>we,alterOneOf:()=>He,alterRequiredGroups:()=>De,any:()=>Kr,anyMapper:()=>fe,anyOf:()=>Jr,array:()=>qr,boolean:()=>Nr,buildPath:()=>m,channelsMapper:()=>re,classMapper:()=>ye,concatParameters:()=>ot,concatPath:()=>Hs,createRef:()=>me,createRefName:()=>le,date:()=>Ir,datetime:()=>Dr,defineStatusModel:()=>ss,email:()=>kr,enums:()=>Xr,enumsRegistry:()=>S,execMapper:()=>u,formatParameterType:()=>L,from:()=>$r,generateSpec:()=>dn,genericsMapper:()=>ge,getComputedType:()=>b,getGenericsMap:()=>oe,getInheritedStores:()=>Y,getJsonEntityStore:()=>z,getJsonPathParameters:()=>at,getJsonSchema:()=>yn,getJsonSchemaMapper:()=>p,getJsonType:()=>T,getOperationId:()=>pt,getOperationsRoutes:()=>gn,getOperationsStores:()=>Z,getProperties:()=>Sn,getPropertiesStores:()=>On,getSpec:()=>Ws,getSpecType:()=>Xs,getSpecTypeFromSpec:()=>zs,getStatusConstant:()=>Ze,getStatusMessage:()=>et,getStatusModel:()=>ns,hasMapper:()=>h,inheritedClassMapper:()=>Oe,inlineEnumsMapper:()=>Se,integer:()=>wr,isParameterType:()=>k,isRedirectionStatus:()=>B,isSuccessStatus:()=>G,itemMapper:()=>be,lazyRef:()=>Wr,lazyRefMapper:()=>Re,makeOf:()=>ne,map:()=>Gr,mapAliasedProperties:()=>ke,mapGenericsOptions:()=>ae,mapHeaders:()=>U,mapMapper:()=>Te,mapOpenSpec:()=>en,mapOpenSpec2:()=>Ys,mapOpenSpec3:()=>Zs,mapOpenSpecInfo:()=>Qs,mapOperationOptions:()=>fs,matchGroups:()=>ar,mergeSpec:()=>Fs,messageMapper:()=>ie,nullableMapper:()=>Me,nullableMapperOpenApi:()=>Ke,number:()=>Mr,object:()=>Ur,objectMapper:()=>_e,ofMapper:()=>Ne,oneOf:()=>Fr,oneOfMapper:()=>l,operationIdFormatter:()=>ct,operationInFilesMapper:()=>Je,operationInParameterMapper:()=>Fe,operationInParametersMapper:()=>Ve,operationInQueryMapper:()=>Xe,operationMapper:()=>tt,operationMediaMapper:()=>rt,operationRequestBodyMapper:()=>nt,operationResponseMapper:()=>it,parameters:()=>Bs,pathsMapper:()=>lt,payloadMapper:()=>pe,popGenerics:()=>ce,propertiesMapper:()=>Ie,registerJsonSchemaMapper:()=>c,removeHiddenOperation:()=>ee,requiredMapper:()=>Le,responsePayloadMapper:()=>ue,schemaMapper:()=>Be,schemesReducer:()=>Gs,security:()=>Us,serializeEnum:()=>A,serializeEnumValues:()=>E,set:()=>Br,string:()=>_r,tagsReducer:()=>Ks,time:()=>Lr,toJsonMapCollection:()=>K,toJsonRegex:()=>P,toRef:()=>de,transformInformation:()=>hn,transformSecurity:()=>un,transformToOS2:()=>mn,uri:()=>jr,url:()=>Hr,withErrorMsg:()=>bt});var e,t=n(598);!function(e){e.ALL="ALL",e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.HEAD="HEAD",e.DELETE="DELETE",e.OPTIONS="OPTIONS",e.TRACE="TRACE",e.PUBLISH="PUBLISH",e.SUBSCRIBE="SUBSCRIBE",e.CUSTOM="CUSTOM"}(e||(e={}));const r=[e.ALL,e.GET,e.POST,e.PUT,e.PATCH,e.HEAD,e.DELETE,e.OPTIONS,e.TRACE,e.CUSTOM],s=[e.PUBLISH,e.SUBSCRIBE],o=e,a=new Map;function c(e,t,r){return a.set(r?`${r}:${e}`:e,t)}function p(e,t){const r=a.get(`${t?.specType}:${e}`)||a.get(e);if(r)return r;throw new Error(`JsonSchema ${e} mapper doesn't exists`)}function u(e,t,r,s){return p(e,r)(...t,r,s)}function h(e){return a.has(e)}function l(e,t){return e.find((e=>a.has(`${t?.specType}:${e}`)))||e.find((e=>a.has(e)))}function m(e){return e.split("/").filter(Boolean).join("/")}var d=n(803);const f=new Map;class y{propertyKey;propertyName;index;descriptor;decoratorType;collectionType;token;store;isStore=!0;parent;target;_type;_schema;constructor(e){const{target:t,propertyKey:r,descriptor:s,index:n,decoratorType:i}=e;this.target=t,this.propertyKey=r,this.propertyName=String(r),this.descriptor=s,this.index=n,this.decoratorType=i,this.token=t,this.store=e.store,this.parent=this}get targetName(){return(0,d.nameOf)(this.token)}get isCollection(){return!!this.collectionType}get isArray(){return(0,d.isArrayOrArrayClass)(this.collectionType)}get discriminatorAncestor(){const e=(0,d.ancestorsOf)(this.target).find((e=>y.from(e).schema.isDiscriminator));return e&&y.from(e)}get isPrimitive(){return(0,d.isPrimitiveOrPrimitiveClass)(this._type)}get isDate(){return(0,d.isDate)(this.computedType)}get isObject(){return(0,d.isObject)(this.computedType)}get isClass(){return(0,d.isClass)(this.computedType)}get schema(){return this._schema}get nestedGenerics(){return this.schema.nestedGenerics}set nestedGenerics(e){this.schema.nestedGenerics=e}get type(){return this._type}set type(e){this._type=e,this.build()}get computedType(){return this.itemSchema.getComputedType()}get itemSchema(){return this.isCollection?this.schema.itemSchema():this.schema}get parentSchema(){return this.parent.schema}get isDiscriminatorChild(){return this.schema.isDiscriminator&&this.discriminatorAncestor?.schema.discriminator().base!==this.target}static from(...e){if(e[0].isStore)return e[0];const t=e[0];e.length>1&&(e[0]=(0,d.prototypeOf)(e[0]));const r=d.Store.from(...e);if(!r.has("JsonEntityStore")){const s=(0,d.decoratorTypeOf)(e),n=new(f.get(s))({store:r,decoratorType:s,target:(0,d.classOf)(t),propertyKey:e[1],index:"number"==typeof e[2]?e[2]:void 0,descriptor:"object"==typeof e[2]?e[2]:void 0});n.build(),r.set("JsonEntityStore",n)}return r.get("JsonEntityStore")}static fromMethod(e,t){return this.from(e,t,(0,d.descriptorOf)(e,t))}static get(e,t,r){return y.from((0,d.prototypeOf)(e),t,r)}isGetterOnly(){return(0,d.isObject)(this.descriptor)&&!this.descriptor.value&&this.descriptor.get&&!this.descriptor.set}get(e,t){return this.store.get(e,t)}set(e,t){return this.store.set(e,t)}toString(){return[this.targetName,this.propertyName,this.index].filter((e=>void 0!==e)).join(":")}buildType(e){(0,d.isCollection)(e)?this.collectionType=e:(this._type=e,this._type&&(0,d.isPlainObject)(this._type)&&(this._type=String))}getBestType(){return this.itemSchema.hasDiscriminator?this.itemSchema.discriminator().base:(0,d.isClassObject)(this.type)?this.itemSchema.getTarget():(0,d.isArrowFn)(this.type)?this.type():this.type}}function g(e,t,r,s){var n,i=arguments.length,o=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,s);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(i<3?n(o):i>3?n(t,r,o):n(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o}function O(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;const S=new Map;function b(e){return(0,d.isPromise)(e)||e===Function?Object:(0,d.isClass)(e)||(0,d.isSymbol)(e)||(0,d.isPrimitiveOrPrimitiveClass)(e)||(0,d.isClassObject)(e)||(0,d.isDate)(e)||(0,d.isCollection)(e)?(0,d.classOf)(e):(0,d.isArrowFn)(e)?e():e}const R=["string","number","integer","boolean","object","array","null","any"];function T(e){return null===e?"null":(0,d.isPrimitiveOrPrimitiveClass)(e)?R.indexOf(e)>-1?e:"string"==typeof e?"file"===e?"file":"generic":(0,d.primitiveOf)(e):e===Array?"array":(0,d.isArray)(e)?e.map(T):e===Set?"array":(0,d.isDate)(e)||(0,d.isBuffer)(e)?"string":"object"}const A=e=>(0,d.isObject)(e)&&null!==e?Object.entries(e).reduce(((e,[t,r])=>isNaN(+t)?e.concat(r):e),[]):e;function E(e){const t=e.reduce(((e,t)=>e.concat(A(t))),[]),r=t.reduce(((e,t)=>e.add((e=>null===e?"null":typeof e)(t))),new Set);return{values:(0,d.uniq)(t),types:r}}function P(e){return String(e).replace(/^(\/)(.*)(\/)$/,"$2")}class v{propertyName;base;values=new Map;types=new Map;constructor({base:e,propertyName:t,types:r,values:s}={}){Object.assign(this,(0,d.cleanObject)({base:e,propertyName:t,types:r?new Map(r):void 0,values:s?new Map(s):void 0}))}add(e,t){return t.forEach((t=>{this.values.set(t,e)})),this.types.set(e,t),this}getType(e){return this.values.get(e)||this.base}getValues(e){return this.types.get(e)}getDefaultValue(e){const t=this.types.get(e);return t?t[0]:void 0}children(){return[...new Set([...this.types.keys()])]}}function x(e){return e instanceof $?e:Object.entries(e).reduce(((e,[t,r])=>(e[P(t)]=C(r),e)),{})}function C(e){return(0,d.isArray)(e)?e.map(C):e.isStore||e.$isJsonDocument||e.isLazyRef?e:(0,d.classOf)(e)!==Object&&(0,d.isClass)(e)?y.from(e).schema:(0,d.isObject)(e)?$.from(e):(0,d.isPrimitiveClass)(e)?$.from({type:e}):e}class $ extends Map{$kind="schema";$isJsonDocument=!0;$hooks=new d.Hooks;$required=new Set;$allow=[];$selfRequired;$forwardGroups=!1;$ignore=!1;isDiscriminatorKey=!1;isDiscriminator=!1;#e=!1;#t=null;#r;#s=[];#n=new Map;#i;#o;#a=!1;#c=!1;#p=!1;constructor(e={}){super(),e&&this.assign(e)}get alias(){return this.#n}get nestedGenerics(){return this.#s}set nestedGenerics(e){this.#s=e}get genericLabels(){return this.#r}set genericLabels(e){this.#r=e}get isClass(){return(0,d.isClass)(this.class)&&![Map,Array,Set,Object,Date,Boolean,Number,String].includes(this.#o)}get isCollection(){return this.#c}get isGeneric(){return this.#a}get discriminatorAncestor(){const e=(0,d.ancestorsOf)(this.#o).find((e=>y.from(e).schema.isDiscriminator));return e&&y.from(e).schema}get hasGenerics(){return!(!this.nestedGenerics||!this.nestedGenerics.length)}get genericType(){return this.get("$ref")}get class(){return this.getComputedType()}get canRef(){return this.#p}get isNullable(){return this.#e}get isReadOnly(){return this.get("readOnly")}get isWriteOnly(){return this.get("writeOnly")}get hasDiscriminator(){return!!this.#t}static from(e={}){return new $(e)}nullable(e){this.#e=e}itemSchema(e={}){return this.#i=this.#i||C(e),this.#i.assign(e),this.#i}getAliasOf(e){return this.#n.get(e)}addAlias(e,t){return this.#n.set(e,t),this.#n.set(t,e),this}removeAlias(e){const t=this.#n.get(e);return t&&this.#n.delete(t),this.#n.delete(e),this}$id(e){return super.set("$id",e),this}$ref(e){return super.set("$ref",e),this}$schema(e){return super.set("$schema",e),this}label(e){return this.#p=!0,super.set("name",e),this}name(e){return super.set("name",e),this}ignore(e){return"boolean"!=typeof e&&this.$hooks.on("ignore",e),this.$ignore=e,this}default(e){return super.set("default",e),this}const(e){return super.set("const",e),this}description(e){return super.set("description",e),this}discriminator(){return this.isDiscriminator=!0,this.#t=this.#t||new v({base:this.#o})}discriminatorKey(e){return this.discriminator().propertyName=e,this.isDiscriminator=!0,this}discriminatorValue(...e){const t=this.discriminatorAncestor.discriminator();t.add(this.#o,e),this.isDiscriminator=!0;const r=this.get("properties"),s=r[t.propertyName]||new $({type:"string"});return 1===e.length?(s.const(e[0]),s.examples([e[0]])):(s.enum(...e),s.examples(e)),r[t.propertyName]=s,this.set("properties",r),this}additionalItems(e){return super.set("additionalItems",C(e)),this}contains(e){return super.set("contains",C(e)),this}examples(e){return super.set("examples",e),this}example(...e){return this.examples(e)}items(e){return super.set("items",this.#i=C(e)),this}maxItems(e){return super.set("maxItems",e),this}minItems(e){return super.set("minItems",e),this}uniqueItems(e){return super.set("uniqueItems",e),this}maxProperties(e){return super.set("maxProperties",e),this}minProperties(e){return super.set("minProperties",e),this}allow(...e){return[].concat(this.getJsonType()).includes("string")&&!this.has("minLength")&&this.minLength(1),e.forEach((e=>{switch(e){case"":this.set("minLength",void 0);break;case null:this.any(...["null"].concat(this.getJsonType(),this.$allow.map((e=>typeof e))))}})),this.$allow.push(...e),this}required(e=!0){if(!(0,d.isArray)(e)){const t=this.clone();return t.$selfRequired=e,[].concat(t.getJsonType()).includes("string")&&t.minLength(1),t}return this.$required.clear(),e.forEach((e=>this.$required.add(e))),this}addRequired(e){return this.$required.add(e),this}removeRequired(e){return this.$required.delete(e),this}isRequired(e){return this.$required.has(e)}properties(e){return super.set("properties",x(e)),this}addProperty(e,t){const r=this.get("properties")||{};return r[e]=t,super.set("properties",x(r)),this}patternProperties(e){return super.set("patternProperties",x(e)),this}additionalProperties(e){return super.set("additionalProperties",C(e)),this}unknown(e=!0){return this.additionalProperties(e)}dependencies(e){return super.set("dependencies",x(e)),this}propertyNames(e){return super.set("propertyNames",C(e)),this}enum(e,...t){if(S.has(e))return this.enum(S.get(e));if(e instanceof $)e.getName()?super.set("enum",e):super.set("enum",e.get("enum")).any(...e.get("enum").map((e=>typeof e)));else{const{values:r,types:s}=E([e,t].flat());super.set("enum",r).any(...s)}return this}definitions(e){return super.set("definitions",x(e)),this}allOf(e){return this.setManyOf("allOf",e),this}anyOf(e){return this.setManyOf("anyOf",e),this}oneOf(e){return this.setManyOf("oneOf",e),this}not(e){return super.set("not",C(e)),this}multipleOf(e){return super.set("multipleOf",e),this}maximum(e){return super.set("maximum",e),this}exclusiveMaximum(e){return super.set("exclusiveMaximum",e),this}minimum(e){return super.set("minimum",e),this}exclusiveMinimum(e){return super.set("exclusiveMinimum",e),this}maxLength(e){return super.set("maxLength",e),this}minLength(e){return super.set("minLength",e),this}pattern(e){return super.set("pattern",P(e)),this}format(e){return super.set("format",e),this}type(e){switch(e){case"map":case Map:super.set("type",T(e)),this.#o=e,this.#c=!0,this.has("additionalProperties")||super.set("additionalProperties",this.itemSchema({}));break;case"array":case Array:super.set("type",T(e)),this.#o=e,this.#c=!0,this.has("items")||super.set("items",this.itemSchema({}));break;case"set":case Set:super.set("type",T(e)),this.#o=e,this.#c=!0,this.uniqueItems(!0),this.has("items")||super.set("items",this.itemSchema({}));break;case"integer":this.integer();break;case"number":case"string":case"boolean":case"object":case Object:case Date:case Boolean:case Number:case String:super.set("type",T(e)),this.#o=e,this.has("properties")||super.set("properties",{});break;default:if((0,d.isClass)(e)||(0,d.isFunction)(e))super.set("type",void 0),this.#o=e,this.has("properties")||super.set("properties",{});else{const t=T(e);"generic"===t?(this.#a=!0,super.set("$ref",e)):super.set("type",t)}}return this}any(...e){return e=e.length?e:["integer","number","string","boolean","array","object","null"],(e=(0,d.uniq)(e).map((e=>(0,d.isClass)(e)?e:{type:T(e)}))).length>1?this.anyOf(e):this.type(e[0]?.type||e[0]),this}integer(){return super.set("type","integer"),super.set("multipleOf",1),this}title(e){return super.set("title",e),this}readOnly(e){return super.set("readOnly",e),this}writeOnly(e){return super.set("writeOnly",e),this}customKey(e,t){return super.set(`#${e}`,t),this}toObject(e){return this.toJSON(e)}toJSON(e){return u("schema",[this],e)}assign(e={}){return(e instanceof $?[...e.entries()]:Object.entries(e)).forEach((([e,t])=>{this.set(e,t)})),e instanceof $&&(this.$selfRequired=e.$selfRequired,this.$allow.push(...e.$allow),e.$required.forEach((e=>{this.$required.add(e)})),this.#t=this.#t?new v(this.#t):null,this.isDiscriminator=e.isDiscriminator,this.isDiscriminatorKey=e.isDiscriminatorKey,this.#p=e.#p,this.#n=new Map(this.#n.entries()),e.#r&&(this.#r=[...e.#r]),this.#s=e.#s.map((e=>[...e])),this.#o=e.#o,this.#a=e.#a,this.#c=e.#c,this.#p=e.#p,this.#e=e.#e,super.set("type",e.get("type"))),this}set(e,t){return e in this?(0,d.isFunction)(this[e])&&this[e](t):super.set(e,t),this}getComputedType(){return b(this.#o)}getComputedItemType(){return this.#i?this.#i.getComputedType():this.getComputedType()}getJsonType(){return this.get("anyOf")?this.get("anyOf").map((e=>e.getJsonType())):this.get("type")||T(this.getComputedType())}getTarget(){return this.#o}getName(){return this.get("name")||((0,d.isClass)(this.#o)?(0,d.nameOf)((0,d.classOf)(this.getComputedType())):"")}clone(){return new $(this)}setManyOf(e,t){let r=t.filter((e=>"null"!==e?.type||(this.nullable(!0),!1))).map(C);if(!(1!==r.length||t[0]instanceof $||this.isNullable)){if(!r[0].hasDiscriminator)return this.type(t[0]);const e=r[0].discriminator().children();if(!e.length)return this.type(t[0]);r=e.map(C)}super.set(e,r);const s=r[0];if(s.isDiscriminator){const e=s.discriminatorAncestor.discriminator(),{propertyName:t}=e;super.set("discriminator",{propertyName:t}),this.isDiscriminator=!0,this.#t=e}}}function M(e){return t=>{f.set(e,t)}}let w=class extends y{children=new Map;get path(){return this.store.get("path","/")}set path(e){this.store.set("path",e)}build(){this._type||this.buildType(this.target),this._type=this._type||Object,this._schema=$.from({type:this.type})}};w=g([M(d.DecoratorTypes.CLASS)],w);let _=class extends y{parent=y.from(this.target);get required(){return this.parent.schema.isRequired(this.propertyKey)}set required(e){e?this.parent.schema.addRequired(this.propertyKey):this.parent.schema.removeRequired(this.propertyKey)}get allowedRequiredValues(){return this.schema.$allow}discriminatorKey(){return this.parent.schema.discriminatorKey(String(this.propertyKey)),this.itemSchema.isDiscriminatorKey=!0,this}isDiscriminatorKey(){return this.itemSchema.isDiscriminatorKey}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}build(){this._type||this.buildType(d.Metadata.getType((0,d.prototypeOf)(this.target),this.propertyKey)),this._type=this._type||Object;let e=this.parent.schema.get("properties")[this.propertyName];e||(this.parent.children.set(this.propertyName,this),e=$.from({type:this.collectionType||this.type}),this.collectionType&&e.itemSchema(this.type)),this.parent.schema.addProperty(this.propertyName,e),this._schema=e}static get(e,t){return y.from((0,d.prototypeOf)(e),t)}};_=g([M(d.DecoratorTypes.PROP)],_);const N=_;class I extends Map{$kind="map";$isJsonDocument=!0;constructor(e={}){super(),this.assign(e)}assign(e={}){return Object.entries(e).forEach((([e,t])=>{(0,d.isFunction)(this[e])?this[e](t):this.set(e,t)})),this}toJSON(e){return u("map",[this],e)}}var D;function L(e){return String(e).toLowerCase().replace("raw_","").replace("cookies","cookie")}function k(e){return Object.values(D).includes(L(e))}!function(e){e.BODY="body",e.PATH="path",e.QUERY="query",e.HEADER="header",e.COOKIES="cookie",e.FILES="files"}(D||(D={}));class j extends I{$kind="operationInParameter";nestedGenerics=[];groups;groupsName;$schema;expression;getName(){const e=this.get("name");return"files"===this.get("in")?e.split(".")[0]:e}name(e){return this.set("name",e),this}examples(e){return super.set("examples",e),this}description(e){return this.set("description",e),this}in(e,t=""){return this.set("in",L(e)),this.expression=t,this}required(e){return this.set("required",e),this}schema(e){return this.$schema=e,this}toJSON(e){return u("operationInParameter",[this],e)}}let H=class extends y{paramType;expression;dataPath;pipes;parameter=new j;parent=y.fromMethod(this.target,this.propertyKey);constructor(e){super(e),this.pipes=e.pipes||[],this.paramType=e.paramType||this.paramType,this.expression=e.expression||this.expression,this.dataPath=e.dataPath||this.dataPath}get nestedGenerics(){return this.parameter.nestedGenerics}set nestedGenerics(e){this.parameter.nestedGenerics=e}get required(){return!!this.parameter.get("required")}set required(e){this.parameter.required(e)}get allowedRequiredValues(){return this.schema.$allow}static getParams(e,t){const r=[],s=(0,d.ancestorsOf)(e).reverse().find((e=>(0,d.isMethodDescriptor)(e,t)&&y.fromMethod(e,t).children.size));return s?(y.fromMethod(s,t).children.forEach(((e,t)=>{r[+t]=e})),r):[]}static get(e,t,r){return y.from((0,d.prototypeOf)(e),t,r)}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}getSchema(e){return(0,d.isCollection)(e)||!(0,d.isClass)(e)?$.from({type:e}):y.from(e).schema}build(){if(!this._type){const e=d.Metadata.getParamTypes((0,d.prototypeOf)(this.target),this.propertyKey)[this.index];this.buildType(e)}this._type=this._type||Object,this._schema||(this.parent.children.set(this.index,this),this._schema=this.getSchema(this.collectionType||this.type),this.parameter.schema(this._schema),this.collectionType&&this._schema.itemSchema(this.getSchema(this.type)),this.parent.operation.addParameter(this.index,this.parameter))}};H=g([M(d.DecoratorTypes.PARAM),O("design:paramtypes",[Object])],H);const q=H,G=e=>Number(e)&&200<=Number(e)&&Number(e)<300,B=e=>Number(e)&&300<=Number(e)&&Number(e)<400;function U(e){return Object.keys(e).reduce(((t,r)=>{const s=e[r];let n=typeof s,i={example:s};return"object"===n&&(i=s,i.example=void 0===i.value?i.example:i.value,delete i.value,n=typeof i.example),i.type=i.type||n,t[r]=(0,d.cleanObject)(i),t}),{})}function K(e,t=I){return Object.entries(e).reduce(((e,[r,s])=>(e.set(r,new t(s)),e)),new I)}class J extends I{$kind="operationMedia";groups=[];groupsName;allowedGroups;schema(e){return this.set("schema",e),this}examples(e){return this.set("examples",e),this}}class F extends I{$kind="operationResponse";status;constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}headers(e){return this.set("headers",U(e)),this}content(e){return this.set("content",K(e,J)),this}getContent(){return this.get("content")}getMedia(e,t=!0){return t&&this.addMedia(e),this.getContent()?.get(e)}addMedia(e){const t=this.get("content");return t.has(e)||t.set(e,new J),this}isBinary(){return this.getContent().has("application/octet-stream")}}class V extends I{$kind="operation";operationPaths=new Map;#u;#h=!1;constructor(e={}){super({parameters:[],responses:new I,...e})}get response(){return this.getResponses().get(this.getStatus().toString())}get status(){return this.#u}tags(e){return super.set("tags",e),this}addTags(e){return e=(0,d.uniqBy)([...this.get("tags")||[],...e],"name"),this.tags(e)}summary(e){return super.set("summary",e),this}operationId(e){return this.set("operationId",e),this}responses(e){return this.set("responses",e),this}defaultStatus(e){return this.#u=e,this}getStatus(){return this.#u||200}setRedirection(e=302){return this.#h=!0,this.#u=e,this}isRedirection(e){return this.#h&&e?B(e):this.#h}addResponse(e,t){if((G(e)||B(e))&&!this.#u){const t=this.getResponseOf(200);this.getResponses().set(e.toString(),t).delete("200"),this.defaultStatus(Number(e))}const r="default"===e?this.getStatus().toString():e.toString(),s=this.getResponses().get(r);return s?(t.forEach(((e,t)=>{["content"].includes(t)||s.set(t,(0,d.deepMerge)(s.get(t),e))})),s.status=Number(r)):(t.status=Number(r),this.getResponses().set(r,t)),this}getResponses(){return this.get("responses")}getResponseOf(e){return("default"===e?this.response:this.getResponses().get(String(e)))||new F}ensureResponseOf(e){return this.addResponse(e,this.getResponseOf(e)),this.getResponseOf(e)}getHeadersOf(e){return this.getResponseOf(e).get("headers")||{}}getContentTypeOf(e){return[...this.getResponseOf(e).get("content").keys()].slice(-1)[0]}security(e){return this.set("security",e),this}addSecurityScopes(e,t){const r=this.get("security")||{};return r[e]=(0,d.uniq)([...r[e]||[],...t]),this.security(r)}description(e){return super.set("description",e),this}deprecated(e){return super.set("deprecated",e),this}parameters(e){return super.set("parameters",e),this}addParameter(e,t){-1===e&&(e=this.get("parameters").length),this.get("parameters")[e]=t}consumes(e){return super.set("consumes",e),this}produces(e){return super.set("produces",e),this}addProduce(e){const t=(0,d.uniq)([].concat(this.get("produces"),e)).filter(Boolean);this.set("produces",t)}addOperationPath(e,t,r={}){return this.operationPaths.set(String(e)+String(t),{...r,method:e,path:t}),this}getAllowedOperationPath(e){return e?[...this.operationPaths.values()].filter((({method:t})=>t&&e.includes(t.toUpperCase()))):[...this.operationPaths.values()]}}let W=class extends y{parent=y.from(this.target);middlewares=[];beforeMiddlewares=[];afterMiddlewares=[];operation=new V;children=new Map;constructor(e){super({store:d.Store.fromMethod(e.target,e.propertyKey),descriptor:(0,d.descriptorOf)(e.target,e.propertyKey),...e});const{beforeMiddlewares:t=[],middlewares:r=[],afterMiddlewares:s=[]}=e;this.after(s),this.before(t),this.use(r)}get params(){return this.parameters}get view(){return this.store.get("view")}set view(e){this.store.set("view",e)}get acceptMimes(){return this.store.get("acceptMimes",[])}set acceptMimes(e){this.store.set("acceptMimes",e)}get parameters(){return[...this.children.values()]}get operationPaths(){return this.operation.operationPaths}static get(e,t,r){return r=r||(0,d.descriptorOf)((0,d.prototypeOf)(e),t),y.from((0,d.prototypeOf)(e),t,r)}getResponseOptions(e,{contentType:t="application/json",includes:r}={}){const s=this.operation.getResponseOf(e).getMedia(t,!1);if(s&&s.has("schema")){const e=s.get("schema");let t=s.groups;return r&&s.allowedGroups?.size&&(t=[...t||[],...r.filter((e=>s.allowedGroups.has(e)))]),{type:e.getComputedItemType(),groups:t}}return{type:this.type}}before(e){return this.beforeMiddlewares=this.beforeMiddlewares.concat(e).filter(d.isFunction),this}after(e){return this.afterMiddlewares=this.afterMiddlewares.concat(e).filter(d.isFunction),this}use(e){return this.middlewares=this.middlewares.concat(e).filter(d.isFunction),this}get(e){const t=d.Store.from(this.target).get(e);return(0,d.deepMerge)(t,this.store.get(e))}getParamTypes(){return[...this.children.values()].reduce(((e,t)=>({...e,[t.paramType]:!0})),{})}build(){if(!this._type){let e=d.Metadata.getReturnType(this.target,this.propertyKey);e=(0,d.isPromise)(e)?void 0:e,this.buildType(e)}this._type=this._type||Object,this.parent.children.set(this.propertyName,this),(0,d.isCollection)(this._type)&&(this.collectionType=this._type,delete this._type),this._schema=$.from({type:this.collectionType||this.type}),this.collectionType&&this._schema.itemSchema(this.type),this.parent.schema.addProperty(this.propertyName,this.schema)}};W=g([M(d.DecoratorTypes.METHOD),O("design:paramtypes",[Object])],W);const X=W;function z(...e){return y.from(...e)}f.set(d.DecoratorTypes.CLASS,w),f.set(d.DecoratorTypes.PROP,_),f.set(d.DecoratorTypes.PARAM,H),f.set(d.DecoratorTypes.METHOD,W);class Q extends Map{$kind="operationPaths";$isJsonDocument=!0;setOperationPath(e){const t=this.getKey(e.method,e.path);this.set(t,e)}getKey=(e,t)=>`${e}-${t}`}function Y(e){const t=e.isStore?e:z(e);return t.$inherited||(t.$inherited=(0,d.ancestorsOf)(t.target).reverse().reduce(((e,t)=>e.set(t,z(t))),new Map)),t.$inherited}function Z(e){const t=e.isStore?e:z(e);if(!t.$operations){const e=new Q;t.$operations=new Map,Y(t).forEach((e=>{e.children.forEach((e=>{e instanceof W&&!t.$operations.has(e.propertyKey)&&t.$operations.set(e.propertyKey,e)}))})),t.$operations.forEach((t=>{t.operation.operationPaths.forEach((t=>{e.setOperationPath(t)}))})),e.clear()}return t.$operations}function ee(e){return!e.store.get("hidden")}const te=[e.PUBLISH,e.SUBSCRIBE];function re(e,{channels:r,rootPath:s,...n}){const i=m(s+z(e).path);return n={...n,ctrlRootPath:i},[...Z(e).values()].filter(ee).flatMap((e=>{const t=e.operation.getAllowedOperationPath(te);return 0===t.length?[]:t.map((t=>({operationPath:t,operationStore:e})))})).reduce(function(e){return(r,{operationPath:s,operationStore:n})=>{const i=e.ctrlRootPath||"/",o=s.method.toLowerCase(),a=(0,t.camelCase)(`${o.toLowerCase()} ${n.parent.schema.getName()}`),c=u("message",[n,s],e);return{...r,[i]:{...r[i],[o]:{...r[i]?.[o],operationId:a,message:{oneOf:[...r[i]?.[o]?.message?.oneOf||[],c]}}}}}}(n),r)}var se;function ne(e,t){return t.length?1===t.length?t[0]:{[e]:t}:null}function ie(t,r,{tags:s=[],defaultTags:n=[],...i}={}){const{path:o,method:a}=r,c=String(o);let p=(0,d.getValue)(i.components,"messages."+o,(0,d.cleanObject)({description:t.operation.get("description"),summary:t.operation.get("summary")}));if(a.toUpperCase()===e.PUBLISH){const s=u("payload",[t,r],i);s&&(p.payload=s);const n=t.operation.getAllowedOperationPath([e.SUBSCRIBE]).map((e=>u("message",[t,e],i))).filter(Boolean),o=ne("oneOf",n);o&&(p["x-response"]=o)}else{const e=u("response",[t,r],i);e&&(p["x-response"]=e)}return i.components.messages=i.components.messages||{},i.components.messages[c]=p,{$ref:`#/components/messages/${c}`}}function oe(e,t){return e.reduce(((e,r,s)=>e.set(r,t[s])),new Map)}function ae(e){if(e.genericLabels&&e.genericTypes){const{genericLabels:t,genericTypes:r,...s}=e;return{...s,generics:oe(t,r)}}return e}function ce(e){const[t,...r]=e.nestedGenerics;return{genericTypes:t,nestedGenerics:r}}function pe(e,r,s){const n=e.operation.get("parameters").filter((e=>k(e.get("in")))),i=(0,t.pascalCase)([r.path,r.method,"Payload"].join(" "));(0,d.setValue)(s,`components.schemas.${i}`,{});const o=n.map((e=>{const t=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,s),r=u("item",[e.$schema],{...t,...ce(e)});switch(e.get("in")){case D.BODY:return r;case D.QUERY:case D.PATH:case D.HEADER:return{type:"object",properties:{[e.get("name")]:r}}}return r}),{}).filter(Boolean);return ne("allOf",o)}function ue(e,r,s){const n=e.operation.getResponses(),i=[],o=[],a=[],c=[];[...n.entries()].forEach((([e,t])=>{const r=u("map",[t],s);if(i.push(+e),o.push(r.description),204!=+e){const{content:e}=r,t=e[Object.keys(e)[0]];a.push(t)}}));const p=(0,t.pascalCase)([r.path,r.method,"Response"].join(" ")),h={type:"object",properties:{status:{type:"number",enum:i},statusText:{type:"string",enum:o}},required:["status"]},l=ne("oneOf",a);l&&(0,d.setValue)(h,"properties.data",l);const m=ne("oneOf",c);return c.length&&(0,d.setValue)(h,"properties.error",m),(0,d.setValue)(s,`components.schemas.${p}`,h),{$ref:`#/components/schemas/${p}`}}c("channels",re),function(e){e.JSON="jsonschema",e.SWAGGER="swagger2",e.OPENAPI="openapi3",e.ASYNCAPI="asyncapi2"}(se||(se={})),c("generate",(function(e,t){const r={channels:u("channels",[e],t)};return r.tags=(0,d.uniqBy)(t.tags,"name"),t.components?.schemas&&Object.keys(t.components.schemas).length&&(r.components={...t.components,schemas:t.components.schemas}),r}),se.ASYNCAPI),c("message",ie,se.ASYNCAPI),c("payload",pe,se.ASYNCAPI),c("response",ue,se.ASYNCAPI);class he{getType;isLazyRef=!0;constructor(e){this.getType=e}get target(){return this.getType()}get schema(){return z(this.getType()).schema}get name(){return(0,d.nameOf)(this.getType())}}function le(e,r){return r.groups&&r.groups.length?(0,t.pascalCase)(`${e} ${r.groupsName||r.groups.join(" ")}`):e}function me(e,t,r){const s=function(e){const{host:t="#/"+([se.OPENAPI,se.ASYNCAPI].includes(e.specType)?"components/schemas":"definitions")}=e;return t}(r),n={$ref:`${s}/${e}`},i=t.isReadOnly,o=t.isWriteOnly;return(0,d.cleanObject)({readOnly:!!i||void 0,writeOnly:!!o||void 0,...i||o?{anyOf:[n]}:n})}function de(e,t,r){const s=le(e.getName(),r);return(0,d.setValue)(r,`components.schemas.${s}`,t),me(s,e,r)}function fe(e,t={}){if("object"!=typeof e||null===e)return e;if(e instanceof he)return u("lazyRef",[e],t);if(e instanceof $&&e.get("enum")instanceof $){const r=e.get("enum");return de(r,r.toJSON(t),t)}if(e.$kind&&e.$isJsonDocument){const r=u(l([e.$kind,"map"],t),[e],ae(t));return e.canRef?de(e,r,t):r}return u("object",[e],t)}function ye(e,t){const r=y.from(e.class),s=le(r.schema.getName()||e.getName(),t);if(e.hasGenerics){const{type:s,properties:n,additionalProperties:i,items:o,...a}=e.toJSON(t),c={...u("any",[r.schema],{...t,...ce(e),root:!1}),...a};if(c.title){const r=le(c.title,t);return(0,d.setValue)(t.components,`schemas.${r}`,c),delete c.title,me(r,e,t)}return c}return(0,d.getValue)(t,`components.schemas.${s}`)||((0,d.setValue)(t,`components.schemas.${s}`,{}),t.components.schemas[s]=u("any",[r.schema],ae({...t,root:!1}))),me(s,e,t)}function ge(e,t){const{generics:r}=t;if(r&&e.$ref&&r.has(e.$ref)){let s=r.get(e.$ref);if((0,d.isPrimitiveClass)(s))return{type:T(s)};if(s===Date)return{type:"string",format:"date-time"};if(s.toJSON)return s.toJSON({...t,generics:void 0});if(s===Object)return{type:"object"};if((0,d.isClass)(s)){const e={class:s};return 0===t.nestedGenerics.length?u("class",[e],{...t,generics:void 0}):u("schema",[y.from(e.class).schema],{...t,...ce(t),root:!1})}}return e}function Oe(e,{target:t,...r}){const s=Array.from(Y(t).entries()).filter((([e])=>(0,d.classOf)(e)!==(0,d.classOf)(t)));if(s.length){const t=s.reduce(((e,[,t])=>(0,d.deepMerge)(e,u("schema",[t.schema],r))),{});e=(0,d.deepMerge)(t,e)}return e}function Se(e,t,r){return r.inlineEnums&&e.enum?.$isJsonDocument&&(e.enum=e.enum.toJSON().enum),e.enum&&(e.type="object"===e.type||void 0===e.type?"string":e.type),e}function be(e,t){return e&&e.isClass?u("class",[e],t):u("any",[e],t)}function Re(e,t){const r=e.name;if(t.$refs?.find((t=>t===e.target)))return me(r,e.schema,t);t.$refs=[...t.$refs||[],e.target];const s=e.getType()&&u("schema",[e.schema],ae(t));return de(e.schema,s,t)}function Te(e,{ignore:t=[],...r}={}){return r=ae(r),Array.from(e.entries()).reduce(((e,[s,n])=>(t.includes(s)||(e[s]=u("item",[n],r)),e)),{})}c("any",fe),c("class",ye),c("generics",ge),c("inheritedClass",Oe),c("inlineEnums",Se),c("item",be),c("lazyRef",Re),c("map",Te);const Ae=["oneOf","allOf","anyOf"],Ee=["minLength","maxLength","pattern","format"],Pe=[],ve=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"],xe=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains"],Ce=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains","patternProperties","dependencies"],$e=["const","enum"];function Me(e,t){return t?.isNullable?(e.discriminator||(e.$ref?e=(0,d.cleanObject)({...e,$ref:void 0,anyOf:[{type:"null"},{$ref:e.$ref}]}):Ae.some((t=>{if(e[t])if(e[t]=e[t].filter((e=>"null"!==e.type)),1===e[t].length){const r=e[t];e=(0,d.cleanObject)({...e,...r[0],[t]:void 0,type:["null",Number.isInteger(e.multipleOf)?"integer":r[0].type]})}else e[t]=[{type:"null"}].concat(e[t]).map((e=>(Number.isInteger(e.multipleOf)&&(e.type="integer"),e))),delete e.type}))),e):e}function we(e,t){if((0,d.isBoolean)(e.$ignore)&&e.$ignore)return!0;let r=e?.$hooks?.alter("ignore",!1,[t]);return r||(!1!==t.groups?e?.$hooks?.alter("groups",!1,[t.groups]):r)}function _e(e,t){const{specType:r,operationIdFormatter:s,root:n,components:i,genericTypes:o,nestedGenerics:a,useAlias:c,genericLabels:p,...h}=t;return Object.entries(e).reduce(((r,[s,n])=>{if(!1!==t.withIgnoredProps&&!we(n,h)){const i={...t,groups:e?.$forwardGroups||n?.$forwardGroups?t.groups:void 0};r[s]=u("item",[n],i),r[s]=u("nullable",[r[s],n],i)}return r}),(0,d.isArray)(e)?[]:{})}function Ne(e,t,r){return e.map((e=>u("item",[e],{...t,genericLabels:r.genericLabels})))}function Ie(e,t,r){return e.isClass?u("class",[e],t):u("any",[e],{...t,genericLabels:r.genericLabels})}function De(e,t,r){return!1!==r.groups?t?.$hooks?.alter("requiredGroups",e,[r.groups]):e}function Le(e,t,r){if(r.groups&&r.groups.includes("partial"))return e.discriminator?{...e,required:[e.discriminator.propertyName]}:e;let s=function(e,t,r){let s=e.required||[];return s=[...s,...t.$required],t.get("properties")&&(s=Object.entries(t.get("properties")).reduce(((e,[t,r])=>r&&void 0!==r.$selfRequired?r.$selfRequired?e.concat(t):e.filter((e=>e===t)):e),s)),De((0,d.uniq)(s),t,r)}(e,t,r);return s=(0,d.uniq)(s).reduce(function(e,t,r={}){const{useAlias:s}=r,n=Object.keys(e.properties||{});return(e,r)=>{const i=s&&t.alias.get(r)||r;return n.includes(i)?e.concat(i):e}}(e,t,r),[]),e.discriminator&&s.push(e.discriminator.propertyName),s.length?{...e,required:s}:e}function ke(e,t){return Object.entries(e).reduce(((e,[r,s])=>(e[r=t.get(r)||r]=s,e)),{})}c("nullable",Me),c("object",_e),c("anyOf",Ne),c("allOf",Ne),c("oneOf",Ne),c("properties",Ie),c("items",Ie),c("additionalProperties",Ie),c("propertyNames",Ie),c("contains",Ie),c("dependencies",Ie),c("patternProperties",Ie),c("additionalItems",Ie),c("not",Ie),c("definitions",Ie),c("required",Le);const je={string:{properties:Ee,is:d.isString},number:{properties:ve,is:d.isNumber},boolean:{properties:Pe,is:d.isBoolean},array:{properties:xe,is:()=>!1},object:{properties:Ce,is:()=>!1}};function He(e,t,r){const s=function(e){return Ae.find((t=>e[t]))}(e);return s&&(e[s].forEach((t=>{!function(e,t,r){const s=je[e];s?.properties.concat($e).forEach((e=>{void 0!==t[e]&&($e.includes(e)?r[e]=t[e].filter(s.is):(r[e]=t[e],delete t[e]))}))}(t.type,e,t)})),Ae.forEach((s=>{e[s]&&!1!==r.groups&&t.$hooks.has(s)&&(e={...e,[s]:t.$hooks.alter(s,e[s],[r.groups])})})),delete e.const,delete e.enum,e.items||e.properties||delete e.type),e}const qe=["name","$required","$hooks","_nestedGenerics",se.OPENAPI,se.SWAGGER,se.JSON],Ge=["const"];function Be(e,t){const{options:r,addDef:s}=function(e){let t=!1;e||(t=!0,e={components:{schemas:{}},inlineEnums:!0});const{useAlias:r=!0,components:s={schemas:{}}}=e;return{addDef:t,options:e={...e,useAlias:r,components:s}}}(t),n=function(e,t){let r=function(e,t){const{useAlias:r}=t;return[...e.keys()].filter((e=>!function(e,{specType:t=se.JSON,customKeys:r=!1}){return qe.includes(e)||e.startsWith("#")&&(!1===r||t!==se.JSON)||t!==se.JSON&&Ge.includes(e)}(e,t))).reduce(((s,n)=>{let i=e.get(n);if("type"===(n=n.replace(/^#/,"")))return{...s,[n]:e.getJsonType()};if(function(e,t,r){return"examples"===e&&(0,d.isObject)(t)&&[se.OPENAPI,se.ASYNCAPI].includes(r.specType)}(n,i,t)&&(n="example",i=Object.values(i)[0]),i&&"object"==typeof i&&h(n)){if(i=u(n,[i],t,e),function(e,t){return"object"==typeof t&&["items","properties","additionalProperties"].includes(e)&&0===Object.keys(t).length}(n,i))return s;(function(e,t,r){return"object"==typeof t&&r&&["properties","additionalProperties"].includes(e)})(n,i,r)&&(i=ke(i,e.alias))}return{...s,[n]:i}}),{})}(e,t);return e.isClass&&(r=u("inheritedClass",[r],{...t,root:!1,target:e.getComputedType()})),r=u("generics",[r],{...t,root:!1}),e.has(t.specType)&&(r={...r,...e.get(t.specType).toJSON(t)}),r=u("required",[r,e],t),r=u("nullable",[r,e],t),r=He(r,e,t),r=u("inlineEnums",[r,e],t),r}(e,r);return s&&Object.keys((0,d.getValue)(r,"components.schemas",{})).length&&(n.definitions=r.components.schemas),n}function Ue(e,t){const r={paths:u("paths",[e],t={...t,specType:se.OPENAPI})};return r.tags=(0,d.uniqBy)(t.tags,"name"),Object.keys((0,d.getValue)(t,"components.schemas",{})).length&&(r.components={schemas:t.components.schemas}),r}function Ke(e,t){return t?.isNullable?e.$ref?(0,d.cleanObject)({...e,...e.$ref&&{anyOf:[{$ref:e.$ref}],type:void 0},nullable:!0,$ref:void 0}):(0,d.cleanObject)({...e,...1===e.anyOf?.length?{...e.anyOf[0],anyOf:void 0,type:Number.isInteger(e.multipleOf)?"integer":e.anyOf[0]?.type}:{type:e.anyOf?.length>1?void 0:e.type,anyOf:e.anyOf?.map((e=>(Number.isInteger(e.multipleOf)&&(e.type="integer"),e)))},nullable:!0}):e}function Je(e,{jsonSchema:t}){const r={type:"string",format:"binary",oneOf:void 0};return"array"===t.type?(t.items=(0,d.cleanObject)({...t.items,...r}),e.schema=t,e):(e.schema=(0,d.cleanObject)({...t,...r}),e)}function Fe(e,r){const s=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,r),n={...s.components?.schemas||{}},{type:i,schema:o,...a}=u("map",[e],s),c=u("item",[e.$schema],{...s,...ce(e)});a.required=a.required||e.get("in")===D.PATH;const p={...s,jsonSchema:c,jsonParameter:e,oldSchemas:n},l=(0,t.camelCase)(`operationIn ${e.get("in")}`);return h(l)?u(l,[a],p):(a.schema=c,a)}function Ve(e,t){return e.flatMap((e=>u("operationInParameter",[e],t))).filter(Boolean)}function We(e,t){if(!t)return;let r=!1;const s=Object.entries(t).reduce(((t,[s,{value:n,description:i,...o}])=>void 0===n[e]?t:(r=!0,{...t,[s]:{...o,value:n[e],description:i}})),{});return r?s:void 0}function Xe(e,{jsonSchema:t,jsonParameters:r,...s}){if(t.$ref){if(!e.name)return function(e,{jsonParameter:t,...r}){const s=le(t.$schema.getName(),r),n=r.components?.schemas?.[s];return n&&!r.oldSchemas?.[s]&&delete r.components.schemas[t.$schema.getName()],Object.entries(n?.properties||{}).reduce(((t,[r,{description:s,...i}])=>[...t,(0,d.cleanObject)({...e,name:r,required:(n?.required||[]).includes(r),description:s,schema:i,style:i.$ref?"deepObject":void 0,examples:We(r,e.examples)})]),[])}(e,s);e.style="deepObject"}return e.schema=t,e}c("schema",Be),c("generate",Ue,se.OPENAPI),c("generate",Ue,se.SWAGGER),c("nullable",Ke,se.OPENAPI),c("nullable",Ke,se.SWAGGER),c("operationInFiles",Je),c("operationInParameter",Fe),c("operationInParameters",Ve),c("operationInQuery",Xe);var ze=n(203),Qe=n.n(ze);const Ye=Qe().codes.reduce(((e,r)=>{const s=String(Qe()(r));return{...e,[String(r)]:{label:s,code:(0,t.constantCase)(s)}}}),{});function Ze(e){return Ye[e]?.code}function et(e){return Ye[e]?.label}function tt(e,{tags:t=[],defaultTags:r=[],...s}={}){const{consumes:n,produces:i,...o}=u("map",[e],{...s,ignore:["parameters"]});o.security&&(o.security=[].concat(o.security)),0===e.get("responses").size&&(o.responses={200:{description:et(200)}});const a={...s,consumes:e.get("consumes")?.length?e.get("consumes"):["application/json"]},[c,p]=function(e,t){return e.get("parameters").filter((e=>k(e.get("in")))).reduce(((e,t)=>{const[r,s]=e;return[D.BODY,D.FILES].includes(t.get("in"))?[r,[...s,t]]:[[...r,t],s]}),[[],[]])}(e);o.parameters=u("operationInParameters",[c],s),p.length&&(o.requestBody=u("operationRequestBody",[p],a));const h=o.tags?.length?o.tags:r;return h.length&&(o.tags=h.map((({name:e})=>e))),t.push(...h),o}function rt(e,t){return u("map",[e],{...t,groups:[...e.groups||[]],groupsName:e.groupsName})}Ye[200].label="Success",Ye[200].code="SUCCESS",c("operation",tt),c("operationMedia",rt);class st extends I{$kind="operationRequestBody";constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}content(e){return this.set("content",K(e)),this}addContent(e,t,r){const s=this.get("content"),n=new I;return n.set("schema",t),r&&n.set("examples",r),s.set(e,n),this}required(e){return this.set("required",e),this}}function nt(e,{consumes:t,...r}){const{schema:s,examples:n,in:i,...o}=function(e,t){let r=new $;const s={},n=[];let i=0;const o=e.some((e=>"files"===e.get("in")));return e.forEach((e=>{const a=e.getName();[...e.entries()].filter((([e])=>!["in","name"].includes(e))).forEach((([e,t])=>{void 0===s[e]&&(s[e]=t)}));const c=u("operationInParameter",[e],t);if(a){const t={...c.schema||{type:c.type}};o&&c.description&&(t.description=c.description),r.addProperty(a,t),e.get("required")&&r.addRequired(a),i++}else n.push(c)})),i||1!==n.length?(r.type("object"),s.description&&o&&delete s.description,{schema:r.toJSON(t),required:!1,...s}):n[0]}(e,r),a=new st(o);return t.forEach((e=>{a.addContent(e,s,n)})),u("map",[a],r)}function it(e,t={}){const r=u("map",[e],t);return 204===e.status&&delete r.content,r.headers&&Object.entries(r.headers).forEach((([e,{type:t,...s}])=>{r.headers[e]={...s,schema:{type:t}}})),r}function ot(e,t){return e.map((e=>t.parameters.find((t=>t.in===e.in&&t.name===e.name))||e)).concat(...t.parameters.filter((e=>"path"!==e.in)))}function at(e,t=""){t instanceof RegExp&&(t=t.toString().replace(/^\//g,"").replace(/\/$/g,"").replace(/\\/g,""));const r=[],s=[];let n=!1,i="";return function(e){let t=0;return e.split("").filter((e=>{"("===e&&t++;const r=0===t;return")"===e&&t--,r})).join("").split("/").filter((e=>!!e))}(`${e}${t}`).map((e=>{const t=e.replace(":","").replace("?","");if(e.includes(":")){const o=e.includes("?");o&&!n&&(n=!0,s.push({path:i,parameters:[].concat(r)}));const{prefix:a,name:c,postfix:p}=function(e){const[t,r]=e.split("="),s=(r||t).split(".");return{prefix:r&&t?`${t}=`:"",name:s.splice(0,1)[0],postfix:s.length?`.${s.join(".")}`:""}}(t);i+=`/${a}{${c}}${p}`,r.push({in:"path",name:c,type:"string",required:!0}),o&&n&&s.push({path:i,parameters:[].concat(r)})}else i+=`/${e}`})),s.length?s:[{path:i,parameters:[].concat(r)}]}function ct(e=""){const r=new Map;return(s,n,i="")=>{const o=((r,s)=>{const n=(e||"%c.%m").replace(/%c/,r).replace(/%m/,s);return""===e?(0,t.camelCase)(n):n})(s,n),a=s+n;if(!r.has(a))return r.set(a,0),o;const c=i.match(/{(\w+)}/gi);if(c){const e=s+n+c[0];if(!r.has(e))return r.set(e,0),(0,t.camelCase)(`${o} By ${c}`)}const p=r.get(a)+1;return r.set(a,p),`${o}_${p}`}}function pt(e,{store:t,operationIdFormatter:r}){return r(t.parent.schema.get("name")||t.parent.targetName,t.propertyName,e)}c("operationRequestBody",nt),c("operationResponse",it);const ut=[e.ALL,e.GET,e.POST,e.PUT,e.PATCH,e.HEAD,e.OPTIONS,e.DELETE,e.TRACE];function ht(e,{path:t,method:r,operation:s}){return{...e,[t]:{...e[t],[r.toLowerCase()]:s}}}function lt(e,{paths:t,rootPath:r,...s}){const n=m(r+z(e).path);return s={...s,ctrlRootPath:n},[...Z(e).values()].filter(ee).filter((e=>e.operation.getAllowedOperationPath(ut).length>0)).flatMap(function(e){return t=>{const r=t.operation.getAllowedOperationPath(ut);if(0===r.length)return[];const s=u("operation",[t.operation],e);return r.map((e=>({operationPath:e,operation:s,operationStore:t})))}}(s)).flatMap(function(e){return({operationPath:t,operation:r,operationStore:s})=>{const{path:n,method:i}=t;return at(e.ctrlRootPath,n).map((({path:t,parameters:n})=>(t=t||"/",n=ot(n.map((({type:e,...t})=>({...t,schema:{type:e}}))),r),{operation:{...r,parameters:n,operationId:r.operationId||pt(t,{...e,store:s})},method:i,path:t})))}}(s)).reduce(ht,t)}function mt(e){return(...t)=>{const r=e(z(...t),t);"function"==typeof r&&r(...t)}}function dt(...e){return mt((t=>{t.store.set("childrenControllers",e),e.forEach((e=>{d.Store.from(e).set("parentController",t.token)}))}))}function ft(e,...r){return mt((s=>{e=e||(0,t.snakeCase)(s.targetName),s.discriminatorAncestor&&s.schema.discriminatorValue(e,...r)}))}function yt(e,t){if(!e)throw new Error("A type is required on `@CollectionOf(type)` decorator. Please give a type or wrap it inside an arrow function if you have a circular reference.");const r={};let s=!1;const n=(...n)=>{const i=y.from(...n);t&&(i.collectionType=t,i.schema.type(t)),i.type=e,i.itemSchema.type(e),i.schema.assign(r),i.isArray&&s&&(i.schema.set("contains",i.schema.get("items")),i.schema.delete("items"))};return n.MinItems=e=>(r.minItems=e,n),n.MaxItems=e=>(r.maxItems=e,n),n.MinProperties=e=>(r.minProperties=e,n),n.MaxProperties=e=>(r.maxProperties=e,n),n.Contains=()=>(s=!0,n),n.UniqueItems=(e=!0)=>(r.uniqueItems=e,n),n}function gt(e){return yt(e,Array)}function Ot(e){return yt(e,Map)}function St(e){return yt(e).Contains()}function bt(e,t){const r={};return(...s)=>{const n=(0,d.useDecorators)(t(...s));return n.Error=t=>(r.message=t,(0,d.useDecorators)(n,r.message&&mt((r=>{const s=r.parentSchema.get("#errorMessage")||{};"required"===e?r.parentSchema.customKey("errorMessage",(0,d.deepMerge)(s,{[e]:{[r.propertyName]:t}})):r.itemSchema.customKey("errorMessage",(0,d.deepMerge)(s,{[e]:t}))})))),n}}c("paths",lt);const Rt=bt("maxItems",(e=>{if(e<0)throw new Error("The value of maxItems MUST be a non-negative integer.");return mt((t=>{t.schema.maxItems(e)}))})),Tt=bt("maxProperties",(e=>{if(e<0)throw new Error("The value of maxProperties MUST be a non-negative integer.");return mt((t=>{t.isCollection?t.schema.maxProperties(e):t.itemSchema.maxProperties(e)}))})),At=bt("minItems",(e=>{if(e<0)throw new Error("The value of minItems MUST be a non-negative integer.");return mt((t=>{t.schema.minItems(e)}))})),Et=bt("minProperties",(e=>{if(e<0)throw new Error("The value of minProperties MUST be a non-negative integer.");return mt((t=>{t.isCollection?t.schema.minProperties(e):t.itemSchema.minProperties(e)}))})),Pt=bt("uniqueItems",((e=!0)=>mt((t=>{t.schema.uniqueItems(e)}))));function vt(e){return mt(((t,r)=>{t.itemSchema.additionalProperties(e)}))}function xt(...e){return mt((t=>{t.itemSchema.allOf(e)}))}function Ct(e){return mt((t=>{e&&(((0,d.isClass)(e)||(0,d.isArrowFn)(e))&&(t.type=e),t.itemSchema.type(e))}))}function $t(...e){const t=e.find((e=>(0,d.isClass)(e)));return(0,d.useDecorators)(t&&Ct(t),mt(((t,r)=>{t.decoratorType===d.DecoratorTypes.PARAM&&(t.required=!0),t.decoratorType===d.DecoratorTypes.PROP&&t.parentSchema.addRequired(t.propertyName),t.schema.allow(...e)})))}function Mt(...e){return mt((t=>{t.itemSchema.any(...e)}))}function wt(...e){return mt((t=>{t.itemSchema.anyOf(e)}))}function _t(e){return mt((t=>{t.itemSchema.const(e)}))}function Nt(e,t){return mt((r=>{r.itemSchema.customKey(e,t)}))}function It(e){return mt((t=>{Object.entries(e).forEach((([e,r])=>{t.itemSchema.customKey(e,r)}))}))}function Dt(e){return mt((t=>{t.itemSchema.default(e)}))}function Lt(e){return mt((t=>{const r=t.parentSchema.get("#errorMessage")||{};t.parentSchema.customKey("errorMessage",{...r,...e})}))}function kt(e){return(0,d.useDecorators)(Lt({_:e}))}function jt(e){return mt(((t,r)=>{switch((0,d.decoratorTypeOf)(r)){case d.DecoratorTypes.PROP:case d.DecoratorTypes.CLASS:t.schema.description(e);break;case d.DecoratorTypes.PARAM:t.parameter.description(e);break;case d.DecoratorTypes.METHOD:t.operation?.description(e)}}))}function Ht(){return(0,d.useDecorators)(Ct(),mt((e=>{e.discriminatorKey()})))}const qt=bt("enum",(function(e,...t){return mt((r=>{r.itemSchema.enum(e,...t)}))}));function Gt(...e){return mt((t=>{t.schema.examples(e)}))}function Bt(e){return mt((t=>{t.parameter.examples(e)}))}const Ut=bt("maximum",((e,t=!1)=>mt((r=>{t?r.itemSchema.exclusiveMaximum(e):r.itemSchema.maximum(e)})))),Kt=Ut,Jt=bt("exclusiveMaximum",((e,t=!0)=>Ut(e,t))),Ft=bt("minimum",((e,t=!1)=>mt((r=>{t?r.itemSchema.exclusiveMinimum(e):r.itemSchema.minimum(e)})))),Vt=Ft,Wt=bt("exclusiveMinimum",((e,t=!0)=>Ft(e,t)));var Xt;!function(e){e.DATE_TIME="date-time",e.DATE="date",e.TIME="time",e.EMAIL="email",e.HOSTNAME="hostname",e.IPV4="ipv4",e.IPV6="ipv6",e.URI="uri",e.URL="url",e.URI_REF="uri-reference",e.URI_TEMPLATE="uri-template",e.JSON_POINTER="json-pointer",e.RELATIVE_JSON_POINTER="relative-json-pointer",e.UUID="uuid",e.REGEX="regex"}(Xt||(Xt={}));const zt=bt("format",(e=>mt((t=>{t.itemSchema.format(e)})))),Qt=bt("format",(()=>zt(Xt.EMAIL))),Yt=bt("format",(()=>zt(Xt.DATE_TIME))),Zt=bt("format",(()=>zt(Xt.DATE))),er=bt("format",(()=>zt(Xt.TIME))),tr=bt("format",(()=>zt(Xt.URI))),rr=bt("format",(()=>zt(Xt.URL)));function sr(e=!0){return mt((t=>{t.schema.$forwardGroups=e}))}var nr=n(133),ir=n.n(nr);function or(e,t){t=[].concat(t),e=[].concat(e);let r=new Set,s=new Set,n=new Set,i=0,o=e=>{n.add(e.output)};for(let n=0;n<t.length;n++){let a=ir()(String(t[n]),{onResult:o},!0),c=a.state.negated||a.state.negatedExtglob;c&&i++;for(let t of e){let e=a(t,!0);(c?!e.isMatch:e.isMatch)&&(c?r.add(e.output):(r.delete(e.output),s.add(e.output)))}}return!!(i===t.length?[...n]:[...s]).filter((e=>!r.has(e))).length}function ar(e,t=[]){const r=e.filter((e=>e.startsWith("!"))).map((e=>e.replace("!",""))),s=e.filter((e=>!e.startsWith("!")));return!!(r.length&&t.length&&or(r,t))||!!s.length&&!or(e.filter((e=>!e.startsWith("!"))),t)}function cr(...e){return mt((t=>{switch(t.decoratorType){case d.DecoratorTypes.CLASS:!function(e,t){const r=Object.entries(e[0]);t.children.forEach((e=>{cr(...r.filter((([,t])=>t.includes(e.propertyName))).map((([e])=>e)))(e.target,e.propertyKey)}))}(e,t);break;case d.DecoratorTypes.PROP:Nt("x-groups",e)(t.target,t.propertyKey),t.schema.$hooks.on("groups",((t,r)=>!(t||!ar(e,r))||t));break;case d.DecoratorTypes.PARAM:let r="";2==e.length&&(0,d.isArray)(e[1])&&(r=e[0],e=e[1]),t.parameter.groups=e,t.parameter.groupsName=r}}))}function pr(){return(0,d.StoreSet)("hidden",!0)}function ur(e=!0){return mt((t=>{t.schema.ignore(e)}))}function hr(){return mt((e=>{e.itemSchema.type("integer")}))}const lr=bt("maxLength",(e=>{if(e<0)throw new Error("The value of maxLength MUST be a non-negative integer.");return mt((t=>{t.itemSchema.maxLength(e)}))})),mr=bt("minLength",(e=>{if(e<0)throw new Error("The value of minLength MUST be a non-negative integer.");return mt((t=>{t.itemSchema.minLength(e)}))})),dr=bt("multipleOf",(e=>{if(e<=0)throw new Error("The value of multipleOf MUST be a number, strictly greater than 0.");return mt((t=>{t.itemSchema.multipleOf(e)}))}));function fr(e){return mt(((t,r)=>{switch((0,d.decoratorTypeOf)(r)){case d.DecoratorTypes.CLASS:t.schema.name(e);break;case d.DecoratorTypes.PARAM:t.parameter.name(e);break;default:t.parent.schema.addAlias(r[1],e)}}))}function yr(e,...t){return t=[e,...t],(0,d.useDecorators)(1===t.length&&Ct(t[0]),Mt(null,...t))}function gr(...e){return mt((t=>{t.itemSchema.oneOf(e),t.type=Object}))}function Or(){return mt((e=>{switch(e.decoratorType){case d.DecoratorTypes.PARAM:e.required=!1;break;case d.DecoratorTypes.PROP:e.parentSchema.removeRequired(e.propertyName)}}))}const Sr=bt("pattern",(e=>mt((t=>{t.itemSchema.pattern(e)}))));function br(e=!0){return mt((t=>{t.itemSchema.readOnly(e)}))}function Rr(e){return mt((t=>{t.schema.assign(e)}))}function Tr(e,t){return mt((r=>{r.schema.set(e,t)}))}function Ar(e,...t){return Rr({properties:{...t.reduce(((t,r)=>({...t,[r]:e})),{})}})}const Er=bt("required",((e=!0,...t)=>e?$t(...t):Or()));function Pr(...e){return mt((t=>{t.parent.schema.$hooks.on("requiredGroups",((r,s)=>ar(e,s)?r.filter((e=>e!==t.propertyKey)):r))}))}function vr(e){return mt((t=>{t.schema.title(e)}))}function xr(e){return mt((()=>(0,d.useDecorators)(Lt({type:e}))))}function Cr(e=!0){return mt((t=>{t.itemSchema.writeOnly(e)}))}function $r(e=Object){if((0,d.isClass)(e)){const{schema:t}=z(e);return t.properties=function(t){return Object.entries(t).forEach((([t,r])=>{z(e.prototype,t).schema.assign(r)})),this},t}return $.from({type:e})}function Mr(){return $r(Number)}function wr(){return $r(Number).integer()}function _r(){return $r(String)}function Nr(){return $r(Boolean)}function Ir(){return $r(Date).format(Xt.DATE)}function Dr(){return $r(Date).format(Xt.DATE_TIME)}function Lr(){return $r(Date).format(Xt.TIME)}function kr(){return $r(String).format(Xt.EMAIL)}function jr(){return $r(String).format(Xt.URI)}function Hr(){return $r(String).format(Xt.URL)}function qr(){return $r(Array)}function Gr(){return $r(Map).unknown(!0)}function Br(){return $r(Array).uniqueItems(!0)}function Ur(e={}){return $r(Object).properties(e)}function Kr(...e){return $r().any(...e)}function Jr(...e){return $r().anyOf(e)}function Fr(...e){return $r().oneOf(e)}function Vr(...e){return $r().allOf(e)}function Wr(e){try{if(e())return y.from(e()).schema}catch(e){}return new he(e)}function Xr(e){const t=_r().enum(e);return S.set(e,t),t}function zr(...e){const t=[e.map((e=>function(e){return(0,d.isObject)(e)&&!("toJSON"in e)}(e)?_r().enum(Object.values(e)):e))],r=(...e)=>{y.from(...e).nestedGenerics=t};return r.Nested=(...e)=>(t.push(e),r),r}function Qr(...e){return t=>{y.from(t).schema.genericLabels=e}}function Yr(...e){return mt(((t,r)=>{switch(t.decoratorType){case d.DecoratorTypes.METHOD:t.operation.produces(e);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],Yr(...e));break;default:throw new d.UnsupportedDecoratorType(Yr,r)}}))}function Zr(...e){return(0,d.useDecorators)(Yr(...e),(0,d.StoreSet)("acceptMimes",e))}function es(...e){return mt(((t,r)=>{switch(t.decoratorType){case d.DecoratorTypes.METHOD:t.operation.consumes(e);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],es(...e));break;default:throw new d.UnsupportedDecoratorType(es,r)}}))}class ts extends Map{methods;decoratorType;entity;actions=[];constructor(e={}){super(),Object.entries(e).forEach((([e,t])=>{this.set(e,t)}))}addAction(e){return this.actions.push(e),this}build(){const e=(...t)=>this.bind(t,e),r=t=>{return r=(...e)=>{t in this?this[t](...e):this.set(t,e[0])},(...t)=>(r(...t),e);var r};return this.methods.forEach((s=>{e[(0,t.pascalCase)(s)]=r(s)})),e}toObject(){return[...this.entries()].reduce(((e,[t,r])=>({...e,[t]:r})),{})}getMergedKey(e,t){let r=this.get(e)||t;if(r)return this.decoratorType===d.DecoratorTypes.CLASS&&(r={...r,...t||{}}),{...t||{},...r}}bind(e,t){this.entity=y.from(...e),this.beforeInit(),this.onInit(e,t),this.afterInit()}onInit(e,t){this.forEach(((e,t)=>{this.onMapKey(t,e)}))}onMapKey(e,t){this.entity.set(e,t)}runActions(){return this.actions.forEach((e=>{e(this)})),this}beforeInit(){}afterInit(){}}const rs=new Map;function ss(e,t){rs.set(e,t)}function ns(e){return rs.get(e)}function is(e){return e.map((e=>function(e){return(0,d.isObject)(e)&&!("toJSON"in e)}(e)?_r().enum(Object.values(e)):e))}class os extends ts{methods=["contentType","description","examples","type","status","of","ofInteger","oneOf","allOf","anyOf","nested","header","headers","schema","title","groups","allowedGroups","location","binary"];hasOfTypes;constructor({status:e,model:t}){super(),this.model(t),this.status(e)}type(e){return this.model(e)}model(e){return e&&this.set("model",e),this}status(e){return this.set("status",e),e&&et(e)&&!this.get("description")&&(this.set("description",et(e)),this.get("model")||this.model(ns(+e))),this}headers(e){return this.set("headers",{...this.get("headers")||{},...U(e)}),this}header(e,t){return void 0===t&&(0,d.isString)(e)?this.headers({[e]:{type:"string"}}):this.headers({[e]:t})}location(e,t={}){return this.headers({Location:{...t,value:e}}),this}groups(...e){return 2===e.length&&(0,d.isArray)(e[1])?(this.set("groupsName",e[0]),this.set("groups",e[1])):this.set("groups",e),this}allowedGroups(...e){return this.set("allowedGroups",new Set(e)),this}nested(...e){const t=this.get("model");return this.checkPrimitive(t),this.checkCollection(t),this.addAction((t=>{this.get("schema").nestedGenerics.push(is(e))})),this}of(...e){const t=this.get("model");return this.checkPrimitive(t),this.addAction((()=>{const r=this.get("schema");(0,d.isCollection)(t)?r?.itemSchema({type:e[0]}):r?.nestedGenerics.push(is(e))})),this}ofInteger(){return this.of("integer")}oneOf(...e){return this.manyOf("oneOf",e)}allOf(...e){return this.manyOf("allOf",e)}anyOf(...e){return this.manyOf("anyOf",e)}schema(e){return this.addAction((()=>{this.get("schema").assign(e)})),this}examples(e){return this.set("examples",(0,d.isString)(e)?[e]:e),this}title(e){return this.schema({title:e})}binary(){return this.type(String),this.set("contentType","application/octet-stream"),this.schema({format:"binary"}),this}checkPrimitive(e){if((0,d.isPrimitiveOrPrimitiveClass)(e))throw new Error("Returns.Of cannot be used with the following primitive classes: String, Number, Boolean")}checkCollection(e){if((0,d.isCollection)(e))throw new Error("Returns.Nested cannot be used with the following classes: Map, Set, Array, String, Number, Boolean")}getContentType(){const e=this.get("model");let t=this.get("contentType");return(e&&!(0,d.isPlainObject)(e)&&!(0,d.isPrimitiveOrPrimitiveClass)(e)||this.hasOfTypes)&&(t=t||"application/json"),t}getStatus(){return this.get("status")||"default"}onInit(e,t){switch((0,d.decoratorTypeOf)(e)){case d.DecoratorTypes.METHOD:this.entity=y.from(...e),this.entity.operation&&this.map();break;case d.DecoratorTypes.CLASS:this.decoratorType=d.DecoratorTypes.CLASS,(0,d.decorateMethodsOf)(e[0],t)}}map(){const e=this.get("model"),{entity:t,decoratorType:r}=this,s=this.entity.operation,n=this.getStatus(),i=s.ensureResponseOf(n),o=this.getContentType();let{description:a=i.get("description")}=this.toObject();a&&(a=r===d.DecoratorTypes.CLASS&&i.get("description")||a,i.description(a));const c=this.getMergedKey("headers",i.get("headers"));return c&&i.headers(c),this.mapMedia(i),(G(this.get("status"))||"default"===n)&&e&&(t.type=e),o&&s.addProduce(o),this.runActions()}mapMedia(e){const t=this.getContentType(),r=this.get("model"),s=e.getMedia(t||"*/*"),n=s.get("schema")||new $({type:r}),i=this.get("groups"),o=this.get("groupsName"),a=this.get("allowedGroups"),c=this.entity.operation;if(r&&((0,d.isArray)(r)?n.oneOf(r.map((e=>({type:e})))):n.type(r)),this.set("schema",n),s.schema(n),s.groups=i,s.groupsName=o,a){s.allowedGroups=a;const e=new j;e.in("query").name("includes"),e.schema($.from({type:"array",items:{type:"string",enum:[...a]}})),c.addParameter(-1,e)}const p=this.get("examples");return p&&s.examples(p),s}manyOf(e,t){const r=this.get("model");return this.hasOfTypes=!0,this.addAction((()=>{const s=this.get("schema");(0,d.isCollection)(r)?(s.type(r||Object),s.itemSchema().set(e,t)):s.set(e,t)})),this}}function as(e,t){return new os({status:e,model:t}).build()}function cs(e){return as().ContentType(e)}function ps(e=!0){return mt(((t,r)=>{switch((0,d.decoratorTypeOf)(r)){case d.DecoratorTypes.METHOD:t.operation.deprecated(e);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],ps(e));break;case d.DecoratorTypes.PARAM:t.parameter.set("deprecated",e);break;case d.DecoratorTypes.PROP:t.schema.set("deprecated",e);break;default:throw new d.UnsupportedDecoratorType(ps,r)}}))}function us(e,t){return void 0!==t&&(e={[e]:t}),void 0===t&&(0,d.isString)(e)&&(e={[e]:{type:"string"}}),as().Headers(e)}function hs(e){const t=new j,r={},s=(n,i,o)=>{const a=y.from(n,i,o);switch(a.decoratorType){case d.DecoratorTypes.PARAM:a.parameter.in(e);break;case d.DecoratorTypes.METHOD:t.in(e),a.operation.addParameter(-1,t),t.schema($.from(r));break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(n,s);break;default:throw new d.UnsupportedDecoratorType(hs,[n,i,o])}};return s.Type=e=>(r.type=e,s),s.Name=e=>(t.name(e),s),s.Description=e=>(t.description(e),s),s.Required=(e=!0)=>(t.required(e),s),s.Pattern=e=>s.Schema({pattern:e.toString()}),s.Schema=e=>(Object.assign(r,e.toJSON?e.toJSON():e),s),s}function ls(e){return(...t)=>{const[r,s,n]=t,i=d.Metadata.getParamTypes(r,s)[n]===Array,o=[e="object"==typeof e?void 0:e,!i&&"0"].filter(Boolean).join(".");(0,d.useDecorators)(hs(D.FILES),fr(o),(0,d.useMethodDecorators)(as(400).Description("<File too long | Too many parts | Too many files | Field name too long | Field value too long | Too many fields | Unexpected field> [fieldName] Example: File too long file1"),es("multipart/form-data")))(...t)}}function ms(e,t){return as().Location(e,t)}const ds=new Set([...Object.keys(e).filter((t=>t!==e.CUSTOM)).map((e=>e.toLowerCase()))]);function fs(e){let t,r;const s=e.filter((e=>"string"==typeof e&&ds.has(e.toLowerCase())?(t=e.toLocaleUpperCase(),!1):"string"==typeof e||e instanceof RegExp?(r=e||"/",!1):!!e));return{path:r,method:t,use:s}}class ys extends ts{methods=["name","description","summary","method","id","use","useAfter","useBefore"];beforeInit(){const t=this.get("path"),r=e[this.get("method")]||e.CUSTOM;t&&this.entity.operation.addOperationPath(r,t)}onMapKey(e,t){switch(e){case"name":case"id":return void this.entity.operation.operationId(t);case"summary":return void this.entity.operation.summary(t);case"description":return void this.entity.operation.description(t);case"use":return void this.entity.use(t);case"useAfter":return void this.entity.after(t);case"useBefore":return void this.entity.before(t)}return super.onMapKey(e,t)}}function gs(...e){const t=fs(e);return new ys(t).build()}function Os(e){return mt(((t,r)=>{if(t.decoratorType!==d.DecoratorTypes.METHOD)throw new d.UnsupportedDecoratorType(Os,r);t.operation.operationId(e)}))}function Ss(e,t="/"){return mt(((r,s)=>{if(r.decoratorType!==d.DecoratorTypes.METHOD)throw new d.UnsupportedDecoratorType(Ss,s);r.operation.addOperationPath(e.toUpperCase(),t)}))}function bs(){return cr("partial")}function Rs(e){return mt(((t,r)=>{if(t.decoratorType!==d.DecoratorTypes.CLASS)throw new d.UnsupportedDecoratorType(Rs,r);t.path=e}))}function Ts(t){return gs(e.PUBLISH,t)}function As(...e){const{status:t,url:r,meta:s}=e.reduce(((e,t)=>(0,d.isNumber)(t)?(e.status=t,e):(0,d.isString)(t)?(e.url=t,e):(e.meta=t,e)),{status:302,url:"",meta:{}});return(0,d.useDecorators)(as(t).Location(r,s),mt((e=>{e.operation?.setRedirection(t)})))}const Es=gs;function Ps(t="/",...r){return gs(...[e.ALL,t].concat(r))}function vs(t="/",...r){return gs(...[e.GET,t].concat(r))}function xs(t="/",...r){return gs(...[e.POST,t].concat(r))}function Cs(t="/",...r){return gs(...[e.PUT,t].concat(r))}function $s(t="/",...r){return gs(...[e.DELETE,t].concat(r))}function Ms(t="/",...r){return gs(...[e.HEAD,t].concat(r))}function ws(t="/",...r){return gs(...[e.PATCH,t].concat(r))}function _s(t="/",...r){return gs(...[e.OPTIONS,t].concat(r))}function Ns(e,...t){return mt(((r,s)=>{switch(r.decoratorType){case d.DecoratorTypes.METHOD:r.operation.addSecurityScopes(e,t);break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(s[0],Ns(e,...t));break;default:throw new d.UnsupportedDecoratorType(Ns,s)}}))}function Is(e,t){return as(e,t)}function Ds(t){return gs(e.SUBSCRIBE,t)}function Ls(e){return mt(((t,r)=>{if(t.decoratorType!==d.DecoratorTypes.METHOD)throw new d.UnsupportedDecoratorType(Ls,r);t.operation.summary(e)}))}function ks(...e){return mt(((t,r)=>{switch(t.decoratorType){case d.DecoratorTypes.METHOD:t.operation.addTags(function(e){return e.map((e=>"string"==typeof e?{name:e}:e))}(e));break;case d.DecoratorTypes.CLASS:(0,d.decorateMethodsOf)(r[0],ks(...e));break;default:throw new d.UnsupportedDecoratorType(ks,r)}}))}function js(e,t){return(0,d.StoreSet)("view",{path:e,options:t})}function Hs(e,t){if(e instanceof RegExp||t instanceof RegExp){if(!e)return t;if(!t)return e;const r=e instanceof RegExp?e:new RegExp(e,"gi"),s=t instanceof RegExp?t:new RegExp(t,"gi");return new RegExp(r.source+s.source,(r.global?"g":"")+(r.ignoreCase?"i":"")+(r.multiline?"m":""))}e&&t&&e.endsWith("/")&&t.startsWith("/")&&(t=t.slice(1));const r=(e||"")+(t||"");return r.endsWith("/")&&r.length>1?r.slice(0,-1):r}class qs{token;endpoint;operationPath;basePath;paramsTypes;constructor(e){Object.assign(this,e),this.paramsTypes=this.endpoint.getParamTypes()}get url(){return this.fullPath}get path(){return this.operationPath?.path}get fullPath(){return Hs(this.basePath,this.path)}get method(){return this.operationPath?.method||"USE"}get name(){return`${this.endpoint.targetName}.${this.methodClassName}()`}get className(){return this.endpoint.targetName}get methodClassName(){return this.propertyKey}get parameters(){return this.endpoint.parameters}get propertyKey(){return String(this.endpoint.propertyKey)}get propertyName(){return this.endpoint.propertyName}get store(){return this.endpoint.store}get operation(){return this.endpoint.operation}get operationId(){return this.operation.get("operationId")||this.endpoint.propertyKey}has(e){return this.paramsTypes[e]}}const Gs=(0,d.mergeReducerBuilder)(((e,t)=>e.type&&e.type&&e.type===t.type&&"array"===t.type?JSON.stringify(e.items)===JSON.stringify(t.items):e.type&&e.type===t.type||e.$ref&&e.$ref===t.$ref)),Bs=(0,d.mergeReducerBuilder)(((e,t)=>e.in===t.in&&e.name===t.name)),Us=(0,d.mergeReducerBuilder)(((e,t)=>!!Object.keys(t).find((t=>!!e[t])))),Ks=(0,d.mergeReducerBuilder)(((e,t)=>e.name===t.name)),Js={security:Us,parameters:Bs,oneOf:Gs,anyOf:Gs,allOf:Gs,tags:Ks};function Fs(e,t){return(0,d.deepMerge)(e,t,{reducers:Js,cleanUndefinedProps:!0})}const Vs=new Map;function Ws(e,t={}){if(t={specType:se.OPENAPI,...t,tags:[],paths:{},channels:{},components:{},operationIdFormatter:t.operationIdFormatter||ct(t.operationIdPattern),root:!1},(0,d.isArray)(e)){let r={};return t={...t,append(e){r=Fs(r,e)}},e.forEach((({token:e,...r})=>{const s=Ws(e,{...t,...r});t.append(s)})),r}return function(e,t,r){Vs.has(e)||Vs.set(e,new Map);const s=Vs.get(e),n=JSON.stringify(t);return s.has(n)||s.set(n,r()),s.get(n)}(e,t,(()=>function(e,t){const r=z(e),{rootPath:s="/"}=t;return t={...t,rootPath:s,defaultTags:[(0,d.cleanObject)({name:r.schema.getName(),description:r.schema.get("description")})]},u("generate",[r],t)}(e,t)))}function Xs(e){return e.startsWith("3.")?se.OPENAPI:se.SWAGGER}function zs(e){return"openapi"in e?se.OPENAPI:se.SWAGGER}function Qs(e){const{title:t,description:r,version:s,termsOfService:n,contact:i,license:o}=e;return(0,d.cleanObject)({version:s,title:t,description:r,termsOfService:n,contact:i,license:o})}function Ys(e,{version:t,specVersion:r,acceptMimes:s=["application/json"]}){const{paths:n,security:i,tags:o,host:a,basePath:c,schemes:p,consumes:u=[],produces:h=["application/json"],definitions:l,parameters:m,responses:f,securityDefinitions:y,externalDocs:g}=e;return{swagger:r,consumes:(0,d.uniq)([...s,...u]),produces:(0,d.uniq)([...h]),info:Qs((0,d.getValue)(e,"info",{})),paths:n,host:a,basePath:c,schemes:p,definitions:l,parameters:m,responses:f,security:i,securityDefinitions:y,tags:o,externalDocs:g}}function Zs(e,{specVersion:t}){const{servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}=e;return{openapi:t,info:Qs((0,d.getValue)(e,"info",{})),servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}}function en(e,{fileSpec:t,acceptMimes:r,specVersion:s,version:n}){const i={specVersion:s=s||(0,d.getValue)(e,"openapi",(0,d.getValue)(e,"swagger","2.0")),acceptMimes:r};switch(Xs(s)){case se.OPENAPI:e=Zs(e,i),t=t?Zs(t,i):t;break;default:case se.SWAGGER:e=Ys(e,i),t=t?Ys(t,i):t}return e=Fs(e,t),(0,d.setValue)(e,"info.title",(0,d.getValue)(e,"info.title","Api documentation")),(0,d.setValue)(e,"info.version",(0,d.getValue)(e,"info.version",n)),e}const tn=["get","put","post","delete","options","head","patch","trace"],rn=["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],sn=["type","items"],nn=/^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/,on={APPLICATION_X_WWW_URLENCODED:"application/x-www-form-urlencoded",MULTIPART_FORM_DATA:"multipart/form-data"};function an(e){if(Array.isArray(e))e.forEach(an);else if("object"==typeof e)for(let t in e)"$ref"===t?e.$ref=e.$ref.replace("#/components/schemas/","#/definitions/").replace("#/components/","#/x-components/"):an(e[t])}function cn(e){return new RegExp(nn,"i").test(e)}function pn(e){const t=Object.keys(on).map((e=>on[e]));return Object.keys(e).filter((e=>t.indexOf(e)>-1||cn(e)))}function un(e){function t(e){const{scheme:t,type:r,name:s,bearerFormat:n,flows:i,...o}=e;switch(r){case"http":if("basic"===t)return{...o,type:t};if("bearer"===t)return{...o,type:"apiKey",name:"Authorization",in:"header"};break;case"oauth2":const e=Object.keys(i)[0],s=i[e];let n=e;return"clientCredentials"===n?n="application":"authorizationCode"===n&&(n="accessCode"),{type:r,flow:n,authorizationUrl:s.authorizationUrl,tokenUrl:s.tokenUrl,scopes:s.scopes}}}return Object.entries(e).reduce(((e,[r,s])=>({...e,[r]:t(s)})),{})}function hn(e){let t=e.url;const r=e.variables||{};for(const e in r){const s=r[e]||{};if(s.default){const r=RegExp(`{${e}}`,"g");t=t.replace(r,s.default)}}const s=new URL(t);return{host:s.host?s.host:void 0,basePath:s.pathname,schemes:null!==s.protocol?[s.protocol.substring(0,s.protocol.length-1)]:void 0}}class ln{spec;constructor(e){this.spec=JSON.parse(JSON.stringify(e))}convertInfos(){const e=this.spec.servers&&this.spec.servers[0];return e?hn(e):{}}resolveReference(e,t,r){if(!t||!t.$ref)return t;const s=t.$ref;if(s.startsWith("#")){const t=s.split("/").map((e=>e.replace(/~1/g,"/").replace(/~0/g,"~")));t.shift();let n=e;return t.forEach((e=>{n=n[e]})),r?JSON.parse(JSON.stringify(n)):n}}convert(){const e={swagger:"2.0",...this.convertInfos(),paths:this.spec.paths?this.convertOperations(this.spec.paths,this.spec):void 0};return this.spec.components&&(this.convertSchemas(),this.convertSecurityDefinitions(),this.spec["x-components"]=this.spec.components,delete this.spec.components,an(this.spec)),delete this.spec.servers,delete this.spec.openapi,delete this.spec["x-components"],(0,d.cleanObject)({...e,...this.spec})}convertOperations(e,t){return Object.entries(e).reduce(((e,[r,s])=>{const n=e[r]=this.resolveReference({...t,paths:e},s,!0);return this.convertParameters(n),Object.keys(n).forEach((r=>{if(tn.indexOf(r)>=0){const s=n[r]=this.resolveReference({...t,paths:e},n[r],!0);this.convertOperationParameters(s),this.convertResponses(s)}})),e}),e)}convertOperationParameters(e){let t,r,s,n;if(e.parameters=e.parameters||[],e.requestBody){let i=this.resolveReference(this.spec,e.requestBody,!0);if(e.requestBody.content){const t=pn(e.requestBody.content)[0],r={content:{}},s=e.requestBody.content[t];s&&s.schema&&s.schema.$ref&&!s.schema.$ref.startsWith("#")&&(i=this.resolveReference(this.spec,s.schema,!0),r.content[`${t}`]={schema:i},i=r)}if(i.name="body",t=i.content,t&&Object.keys(t).length){if(s=Object.keys(t).filter((e=>e.indexOf("/")>0)),n=s.filter((e=>e.indexOf("*")<0)),r=pn(t)[0],delete i.content,[on.APPLICATION_X_WWW_URLENCODED,on.MULTIPART_FORM_DATA].includes(r))if(e.consumes=n,i.in="formData",i.schema=t[r].schema,i.schema=this.resolveReference(this.spec,i.schema,!0),"object"===i.schema.type&&i.schema.properties){const t=i.schema.required||[];Object.keys(i.schema.properties).forEach((r=>{const s=i.schema.properties[r];if(!s.readOnly){const n={name:r,in:"formData",schema:s};t.indexOf(r)>=0&&(n.required=!0),e.parameters?.push(n)}}))}else e.parameters.push(i);else r?(e.consumes=n,i.in="body",i.schema=t[r].schema,e.parameters.push(i)):s&&(e.consumes=n||["application/octet-stream"],i.in="body",i.name=i.name||"file",delete i.type,i.schema=t[s[0]].schema||{type:"string",format:"binary"},e.parameters.push(i));i.schema&&this.convertSchema(i.schema,"request")}delete e.requestBody}this.convertParameters(e)}convertParameters(e){void 0!==e.parameters&&(e.parameters=e.parameters||[],(e.parameters||[]).forEach(((t,r)=>{if("body"!==(t=e.parameters[r]=this.resolveReference(this.spec,t,!1)).in){if(this.copySchemaProperties(t,rn),this.copySchemaProperties(t,sn),this.copySchemaXProperties(t),!t.description){const e=this.resolveReference(this.spec,t.schema,!1);e&&e.description&&(t.description=e.description)}void 0!==t.example&&(t["x-example"]=t.example),delete t.schema,delete t.allowReserved,delete t.example}if("array"===t.type)switch(t.style||("query"===t.in||"cookie"===t.in?"form":"simple")){case"matrix":t.collectionFormat=t.explode?void 0:"csv";break;case"label":t.collectionFormat=void 0;break;case"simple":t.collectionFormat="csv";break;case"spaceDelimited":t.collectionFormat="ssv";break;case"pipeDelimited":t.collectionFormat="pipes";break;case"deepOpbject":t.collectionFormat="multi";break;case"form":t.collectionFormat=!1===t.explode?"csv":"multi"}delete t.style,delete t.explode})))}copySchemaProperties(e,t){let r=this.resolveReference(this.spec,e.schema,!0);r&&t.forEach((t=>{const s=r[t];"additionalProperties"===t&&"boolean"==typeof s||void 0!==s&&(e[t]=s)}))}copySchemaXProperties(e){let t=this.resolveReference(this.spec,e.schema,!0);t&&Object.keys(t).forEach((r=>{Reflect.hasOwnProperty.call(t,r)&&!Reflect.hasOwnProperty.call(e,r)&&r.startsWith("x-")&&(e[r]=t[r])}))}convertResponses(e){Object.keys(e.responses||{}).forEach((t=>{const r=e.responses[t]=this.resolveReference(this.spec,e.responses[t],!0);if(r.content){let t=null,s=null;if(Object.keys(r.content).forEach((n=>{const i=n.indexOf("*")<0?n:"application/octet-stream";e.produces?e.produces.indexOf(i)<0&&e.produces.push(i):e.produces=[i];const o=r.content[n];t=t||o.schema,!s&&cn(i)&&(s=o.schema),o.example&&(r.examples=r.examples||{},r.examples[i]=o.example)})),t){r.schema=s||t;const e=this.resolveReference(this.spec,r.schema,!0);e&&r.schema.$ref&&!r.schema.$ref.startsWith("#")&&(r.schema=e),this.convertSchema(r.schema,"response")}}Object.keys(r.headers||{}).forEach((e=>{const t=this.resolveReference(this.spec,r.headers[e],!0);t.schema&&(t.type=t.schema.type,t.format=t.schema.format,delete t.schema),r.headers[e]=t})),delete r.content}))}convertSchema(e,t){if(e.oneOf&&(delete e.oneOf,e.discriminator&&delete e.discriminator),e.anyOf&&(delete e.anyOf,e.discriminator&&delete e.discriminator),e.allOf)for(const r in e.allOf)this.convertSchema(e.allOf[r],t);switch(e.discriminator&&(e.discriminator.mapping&&this.convertDiscriminatorMapping(e.discriminator.mapping),e.discriminator=e.discriminator.propertyName),e.type){case"object":e.properties&&Object.keys(e.properties).forEach((r=>{!0===e.properties[r].writeOnly&&"response"===t?delete e.properties[r]:(this.convertSchema(e.properties[r],t),delete e.properties[r].writeOnly)}));break;case"array":e.items&&this.convertSchema(e.items,t)}e.nullable&&(e["x-nullable"]=!0,delete e.nullable),void 0!==e.deprecated&&(void 0===e["x-deprecated"]&&(e["x-deprecated"]=e.deprecated),delete e.deprecated)}convertSchemas(){this.spec.definitions=this.spec.components.schemas,Object.keys(this.spec.definitions||{}).forEach((e=>{this.convertSchema(this.spec.definitions[e])})),delete this.spec.components.schemas}convertDiscriminatorMapping(e){Object.keys(e).forEach((t=>{const r=e[t];if("string"!=typeof r)return void console.warn(`Ignoring ${r} for ${t} in discriminator.mapping.`);let s;if(/^[a-zA-Z0-9._-]+$/.test(r))try{s=this.resolveReference(this.spec,{$ref:`#/components/schemas/${r}`},!1)}catch(e){console.debug(`Error resolving ${r} for ${t} as schema name in discriminator.mapping: ${e}`)}if(!s)try{s=this.resolveReference(this.spec,{$ref:r},!1)}catch(e){console.debug(`Error resolving ${r} for ${t} in discriminator.mapping: ${e}`)}s?(s["x-discriminator-value"]=t,s["x-ms-discriminator-value"]=t):console.warn(`Unable to resolve ${r} for ${t} in discriminator.mapping.`)}))}convertSecurityDefinitions(){this.spec.components.securitySchemes&&(this.spec.securityDefinitions=un(this.spec.components.securitySchemes),delete this.spec.components.securitySchemes)}}function mn(e){return new ln(e).convert()}async function dn({tokens:e,...t}){const{version:r="1.0.0",acceptMimes:s,specPath:n,specVersion:i}=t,o=en((0,d.getValue)(t,"spec",{}),{fileSpec:{},version:r,specVersion:i,acceptMimes:s}),a=zs(o),c=Fs(o,Ws(e,t));return a===se.SWAGGER?mn(c):c}const fn="$cache:schemes";function yn(e,t={}){const r=z(e),s=t.specType||se.JSON;return t={endpoint:!0,groups:[],inlineEnums:s===se.JSON,...t,specType:s,components:{schemas:{}}},"parameter"===r.decoratorType&&(t={...t,genericTypes:r.nestedGenerics[0],nestedGenerics:r.nestedGenerics,groups:r.parameter?.groups}),function(e,t){const r=e.store.get(fn)||new Map,s=function(e){return JSON.stringify(e)}(t);if(!r.has(s)){const n=u("schema",[e.schema],t);Object.keys((0,d.getValue)(t,"components.schemas",{})).length&&(n.definitions=t.components.schemas),r.set(s,n)}return e.store.set(fn,r),r.get(s)}(r,t)}function gn(e,t={}){const r=e.isStore?e:z(e),s=Hs(t.basePath,r.path);let n=[];return t.withChildren&&(n=r.get("childrenControllers",[]).reduce(((e,r)=>e.concat(gn(r,{...t,basePath:s}))),n)),[...Z(e).values()].reduce(((r,n)=>{const{operation:i}=n;return i&&i.getAllowedOperationPath(t.allowedVerbs).forEach((t=>{r.push(new qs({basePath:s,token:e,endpoint:n,operationPath:t}))})),r}),n)}function On(e){const t=e.isStore?e:z(e);if(!t.$properties){const e=Y(t);t.$properties=new Map,e.forEach((e=>{e.children.forEach((e=>{t.$properties.has(e.propertyKey)||t.$properties.set(e.propertyKey,e)}))}))}return t.$properties}function Sn(e,t={}){const r=On(e),s=new Map;return r.forEach(((e,r)=>{!t.withIgnoredProps&&we(e.itemSchema,t)||s.set(r,e)})),s}})(),i})()));
3
3
  //# sourceMappingURL=schema.umd.min.js.map