@tsed/schema 8.3.4 → 8.3.5

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"),require("@tsed/hooks")):"function"==typeof define&&define.amd?define(["change-case","@tsed/core","@tsed/hooks"],t):"object"==typeof exports?exports["@tsed/schema"]=t(require("change-case"),require("@tsed/core"),require("@tsed/hooks")):e["@tsed/schema"]=t(e["change-case"],e["@tsed/core"],e["@tsed/hooks"])}(self,((e,t,r)=>(()=>{"use strict";var s={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],g=r.capture?"":"?:",y=s.globChars(r.windows),O=s.extglobChars(y),{DOT_LITERAL:S,PLUS_LITERAL:b,SLASH_LITERAL:R,ONE_CHAR:A,DOTS_SLASH:E,NO_DOT:T,NO_DOT_SLASH:P,NO_DOTS_SLASH:v,QMARK:C,QMARK_NO_DOT:x,STAR:$,START_ANCHOR:M}=y,w=e=>`(${g}(?:(?!${M}${e.dot?E:S}).)*?)`,_=r.dot?"":T,N=r.dot?C:x;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,G=d;const q=()=>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"===G.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,-G.output.length),G.type="star",G.value="*",G.output=I,D.output+=G.output)}if(L.length&&"paren"!==e.type&&!O[e.value]&&(L[L.length-1].inner+=e.value),(e.value||e.output)&&F(e),G&&"text"===G.type&&"text"===e.type)return G.value+=e.value,void(G.output=(G.output||"")+e.value);e.prev=G,f.push(e),G=e},Y=(e,t)=>{const s={...O[t],conditions:1,inner:""};s.prev=G,s.parens=D.parens,s.output=D.output;const n=(r.capture?"(":"")+s.open;W("parens"),z({type:e,value:t,output:D.output?"":A}),z({type:"paren",extglob:!0,value:U(),output:n}),L.push(s)},Q=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||q()||/^\)+$/.test(K()))&&(t=e.close=`)$))${s}`),"bos"===e.prev.type&&q()&&(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?C.repeat(i.length):""):0===o?N+(i?C.repeat(i.length):""):C.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(;!q();){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||"["===G.value||"[^"===G.value)){if(!1!==r.posix&&":"===H){const e=G.value.slice(1);if(e.includes("[")&&(G.posix=!0,e.includes(":"))){const e=G.value.lastIndexOf("["),t=G.value.slice(0,e),r=G.value.slice(e+2),s=o[r];if(s){G.value=t+s,D.backtrack=!0,U(),d.output||1!==f.indexOf(G)||(d.output=A);continue}}}("["===H&&":"!==B()||"-"===H&&"]"===B())&&(H=`\\${H}`),"]"!==H||"["!==G.value&&"[^"!==G.value||(H=`\\${H}`),!0===r.posix&&"!"===H&&"["===G.value&&(H="^"),G.value+=H,F({value:H});continue}if(1===D.quotes&&'"'!==H){H=n.escapeRegex(H),G.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){Q(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||G&&"bracket"===G.type&&1===G.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=G.value.slice(1);if(!0===G.posix||"^"!==e[0]||e.includes("/")||(H=`/${H}`),G.value+=H,F({value:H}),!1===r.literalBrackets||n.hasRegexChars(e))continue;const t=n.escapeRegex(G.value);if(D.output=D.output.slice(0,-G.value.length),!0===r.literalBrackets){D.output+=t,G.value=t;continue}G.value=`(${g}${t}|${G.value})`,D.output+=G.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"===G.type&&D.index===D.start+1){D.start=D.index+1,D.consumed="",D.output="",f.pop(),G=d;continue}z({type:"slash",value:H,output:R});continue}if("."===H){if(D.braces>0&&"dot"===G.type){"."===G.value&&(G.output=S);const e=k[k.length-1];G.type="dots",G.output+=H,G.value+=H,e.dots=!0;continue}if(D.braces+D.parens===0&&"bos"!==G.type&&"slash"!==G.type){z({type:"text",value:H,output:S});continue}z({type:"dot",value:H,output:S});continue}if("?"===H){if((!G||"("!==G.value)&&!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Y("qmark",H);continue}if(G&&"paren"===G.type){const e=B();let t=H;if("<"===e&&!n.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===G.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),z({type:"text",value:H,output:t});continue}if(!0!==r.dot&&("slash"===G.type||"bos"===G.type)){z({type:"qmark",value:H,output:x});continue}z({type:"qmark",value:H,output:C});continue}if("!"===H){if(!0!==r.noextglob&&"("===B()&&("?"!==B(2)||!/[!=<:]/.test(B(3)))){Y("negate",H);continue}if(!0!==r.nonegate&&0===D.index){V();continue}}if("+"===H){if(!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Y("plus",H);continue}if(G&&"("===G.value||!1===r.regex){z({type:"plus",value:H,output:b});continue}if(G&&("bracket"===G.type||"paren"===G.type||"brace"===G.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(G&&("globstar"===G.type||!0===G.star)){G.type="star",G.star=!0,G.value+=H,G.output=I,D.backtrack=!0,D.globstar=!0,J(H);continue}let t=K();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Y("star",H);continue}if("star"===G.type){if(!0===r.noglobstar){J(H);continue}const s=G.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&&q()){G.type="globstar",G.value+=H,G.output=w(r),D.output=G.output,D.globstar=!0,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&!o&&q()){D.output=D.output.slice(0,-(s.output+G.output).length),s.output=`(?:${s.output}`,G.type="globstar",G.output=w(r)+(r.strictSlashes?")":"|$)"),G.value+=H,D.globstar=!0,D.output+=s.output+G.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+G.output).length),s.output=`(?:${s.output}`,G.type="globstar",G.output=`${w(r)}${R}|${R}${e})`,G.value+=H,D.output+=s.output+G.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}if("bos"===s.type&&"/"===t[0]){G.type="globstar",G.value+=H,G.output=`(?:^|${R}|${w(r)}${R})`,D.output=G.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}D.output=D.output.slice(0,-G.output.length),G.type="globstar",G.output=w(r),G.value+=H,D.output+=G.output,D.globstar=!0,J(H);continue}const s={type:"star",value:H,output:I};!0!==r.bash?!G||"bracket"!==G.type&&"paren"!==G.type||!0!==r.regex?(D.index!==D.start&&"slash"!==G.type&&"dot"!==G.type||("dot"===G.type?(D.output+=P,G.output+=P):!0===r.dot?(D.output+=v,G.output+=v):(D.output+=_,G.output+=_),"*"!==B()&&(D.output+=A,G.output+=A)),z(s)):(s.output=H,z(s)):(s.output=".*?","bos"!==G.type&&"slash"!==G.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"!==G.type&&"bracket"!==G.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:g,START_ANCHOR:y}=s.globChars(r.windows),O=r.dot?d:m,S=r.dot?f:m,b=r.capture?"":"?:";let R=!0===r.bash?".*?":g;r.capture&&(R=`(${R})`);const A=e=>!0===e.noglobstar?R:`(${b}(?:(?!${y}${e.dot?l:c}).)*?)`,E=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+A(r);case"**/*":return`(?:${O}${A(r)}${u})?${S}${h}${R}`;case"**/*.*":return`(?:${O}${A(r)}${u})?${S}${R}${c}${h}${R}`;case"**/.*":return`(?:${O}${A(r)}${u})?${c}${h}${R}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=E(t[1]);if(!r)return;return r+c+t[2]}}},T=n.removePrefix(e,{negated:!1,prefix:""});let P=E(T);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:g,CHAR_RIGHT_PARENTHESES:y,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,A=!0===r.parts||!0===r.scanToEnd,E=[],T=[],P=[];let v,C,x=e,$=-1,M=0,w=0,_=!1,N=!1,I=!1,D=!1,L=!1,k=!1,j=!1,H=!1,G=!1,q=0,B={value:"",depth:0,isGlob:!1};const U=()=>$>=R,K=()=>(v=C,x.charCodeAt(++$));for(;$<R;){let e;if(C=K(),C!==o){if(!0===k||C===h){for(q++;!0!==U()&&(C=K());)if(C!==o)if(C!==h){if(!0!==k&&C===c&&(C=K())===c){if(_=B.isBrace=!0,I=B.isGlob=!0,G=!0,!0===A)continue;break}if(!0!==k&&C===a){if(_=B.isBrace=!0,I=B.isGlob=!0,G=!0,!0===A)continue;break}if(C===g&&(q--,0===q)){k=!1,_=B.isBrace=!0,G=!0;break}}else q++;else j=B.backslashes=!0,K();if(!0===A)continue;break}if(C!==u){if(!0!==r.noext&&!0==(C===d||C===i||C===n||C===f||C===p)&&x.charCodeAt($+1)===l){if(I=B.isGlob=!0,D=B.isExtglob=!0,G=!0,!0===A){for(;!0!==U()&&(C=K());)if(C!==o){if(C===y){I=B.isGlob=!0,G=!0;break}}else j=B.backslashes=!0,C=K();continue}break}if(C===n){if(v===n&&(L=B.isGlobstar=!0),I=B.isGlob=!0,G=!0,!0===A)continue;break}if(C===f){if(I=B.isGlob=!0,G=!0,!0===A)continue;break}if(C===m)for(;!0!==U()&&(e=K());)if(e!==o){if(e===O){if(N=B.isBracket=!0,I=B.isGlob=!0,G=!0,!0===A)continue;break}}else j=B.backslashes=!0,K();if(!0===r.nonegate||C!==p||$!==M){if(!0!==r.noparen&&C===l){if(I=B.isGlob=!0,!0===A){for(;!0!==U()&&(C=K());)if(C!==l){if(C===y){G=!0;break}}else j=B.backslashes=!0,C=K();continue}break}if(!0===I){if(G=!0,!0===A)continue;break}}else H=B.negated=!0,M++}else{if(E.push($),T.push(B),B={value:"",depth:0,isGlob:!1},!0===G)continue;if(v===c&&$===M+1){M+=2;continue}w=$+1}}else j=B.backslashes=!0,C=K(),C===h&&(k=!0)}!0===r.noext&&(D=!1,I=!1);let J=x,F="",V="";M>0&&(F=x.slice(0,M),x=x.slice(M),w-=M),J&&!0===I&&w>0?(J=x.slice(0,w),V=x.slice(w)):!0===I?(J="",V=x):J=x,J&&""!==J&&"/"!==J&&J!==x&&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(C)||T.push(B),W.tokens=T),!0===r.parts||!0===r.tokens){let t;for(let s=0;s<E.length;s++){const n=t?t+1:M,i=E[s],o=e.slice(n,i);r.tokens&&(0===s&&0!==M?(T[s].isPrefix=!0,T[s].value=F):T[s].value=o,b(T[s]),W.maxDepth+=T[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&&(T[T.length-1].value=s,b(T[T.length-1]),W.maxDepth+=T[T.length-1].depth)}W.slashes=E,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},488:e=>{e.exports=r},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"}')}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={exports:{}};return s[e](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{i.r(o),i.d(o,{ARRAY_PROPERTIES:()=>$e,AcceptMime:()=>jr,AdditionalProperties:()=>$t,All:()=>ps,AllOf:()=>Mt,Allow:()=>_t,Any:()=>Nt,AnyOf:()=>It,ArrayOf:()=>bt,BOOLEAN_PROPERTIES:()=>Ce,COMMON_PROPERTIES:()=>we,Children:()=>yt,CollectionContains:()=>At,CollectionOf:()=>St,Const:()=>Dt,Consumes:()=>Hr,ContentType:()=>Vr,Converter:()=>fn,CustomKey:()=>Lt,CustomKeys:()=>kt,DateFormat:()=>rr,DateTime:()=>tr,DecoratorContext:()=>Gr,Default:()=>jt,DefaultMsg:()=>Gt,Delete:()=>ms,Deprecated:()=>Wr,Description:()=>qt,Discriminator:()=>C,DiscriminatorKey:()=>Bt,DiscriminatorValue:()=>Ot,Email:()=>er,EndpointMetadata:()=>q,Enum:()=>Ut,ErrorMsg:()=>Ht,Example:()=>Kt,Examples:()=>Jt,ExclusiveMaximum:()=>Wt,ExclusiveMinimum:()=>Yt,For:()=>vr,Format:()=>Zt,ForwardGroups:()=>or,GenericOf:()=>Dr,Generics:()=>Lr,Get:()=>us,Groups:()=>hr,HTTP_STATUS_MESSAGES:()=>tt,Head:()=>ds,Header:()=>Xr,Hidden:()=>lr,Ignore:()=>mr,In:()=>zr,InFile:()=>Yr,Integer:()=>dr,JSON_TYPES:()=>A,JsonClassStore:()=>w,JsonEntitiesContainer:()=>g,JsonEntityComponent:()=>O,JsonEntityFn:()=>gt,JsonEntityStore:()=>y,JsonFormatTypes:()=>Qt,JsonLazyRef:()=>he,JsonMap:()=>I,JsonMedia:()=>k,JsonMethodStore:()=>G,JsonOperation:()=>H,JsonOperationPathsMap:()=>Y,JsonOperationRoute:()=>Ts,JsonParameter:()=>J,JsonParameterStore:()=>F,JsonParameterTypes:()=>B,JsonPropertyStore:()=>W,JsonRequestBody:()=>ot,JsonResponse:()=>j,JsonSchema:()=>M,LabelledAs:()=>fr,Location:()=>Qr,MANY_OF_PROPERTIES:()=>Pe,MapOf:()=>Rt,Max:()=>Vt,MaxItems:()=>Tt,MaxLength:()=>gr,MaxProperties:()=>Pt,Maximum:()=>Ft,Min:()=>zt,MinItems:()=>vt,MinLength:()=>yr,MinProperties:()=>Ct,Minimum:()=>Xt,MultipleOf:()=>Or,NUMBER_PROPERTIES:()=>xe,Name:()=>Sr,Nullable:()=>br,OBJECT_PROPERTIES:()=>Me,OPERATION_HTTP_VERBS:()=>r,OPERATION_WS_VERBS:()=>s,OneOf:()=>Rr,Operation:()=>rs,OperationId:()=>ss,OperationPath:()=>ns,OperationVerbs:()=>e,Optional:()=>Ar,Options:()=>gs,ParamMetadata:()=>V,Partial:()=>is,Patch:()=>fs,Path:()=>os,Pattern:()=>Er,Post:()=>hs,Produces:()=>kr,Property:()=>wt,PropertyMetadata:()=>X,Publish:()=>as,Put:()=>ls,ReadOnly:()=>Tr,RecordOf:()=>Cr,Redirect:()=>cs,Required:()=>xr,RequiredGroups:()=>$r,Returns:()=>Fr,STRING_PROPERTIES:()=>ve,Schema:()=>Pr,Security:()=>ys,SpecTypes:()=>se,Status:()=>Os,Subscribe:()=>Ss,Summary:()=>bs,Tags:()=>Rs,TimeFormat:()=>sr,Title:()=>Mr,TypeError:()=>wr,UniqueItems:()=>xt,Uri:()=>nr,Url:()=>ir,View:()=>As,WriteOnly:()=>_r,allOf:()=>Ps,alterIgnore:()=>Ne,alterOneOf:()=>qe,alterRequiredGroups:()=>ke,any:()=>vs,anyMapper:()=>fe,anyOf:()=>Cs,array:()=>$s,boolean:()=>xs,buildPath:()=>l,channelsMapper:()=>re,classMapper:()=>ge,concatParameters:()=>pt,concatPath:()=>Es,createRef:()=>me,createRefName:()=>le,date:()=>_s,datetime:()=>Ns,defineStatusModel:()=>Br,discriminatorMappingMapper:()=>ye,email:()=>Ds,enums:()=>Ls,enumsMapper:()=>Oe,enumsRegistry:()=>b,execMapper:()=>p,execOneOfMapper:()=>h,formatParameterType:()=>U,from:()=>Nr,generateSpec:()=>yn,genericsMapper:()=>Se,getComputedType:()=>R,getGenericsMap:()=>oe,getInheritedStores:()=>Q,getJsonEntityStore:()=>z,getJsonPathParameters:()=>ut,getJsonSchema:()=>Sn,getJsonSchemaMapper:()=>c,getJsonType:()=>E,getOperationId:()=>lt,getOperationsRoutes:()=>bn,getOperationsStores:()=>Z,getProperties:()=>An,getPropertiesStores:()=>Rn,getSpec:()=>Ys,getSpecType:()=>Qs,getSpecTypeFromSpec:()=>Zs,getStatusConstant:()=>rt,getStatusMessage:()=>st,getStatusModel:()=>Ur,hasMapper:()=>u,inheritedClassMapper:()=>Re,integer:()=>ks,isParameterType:()=>K,isRedirectionStatus:()=>N,isSuccessStatus:()=>_,itemMapper:()=>Ae,lazyRef:()=>js,lazyRefMapper:()=>Ee,makeOf:()=>ne,map:()=>Ms,mapAliasedProperties:()=>He,mapGenericsOptions:()=>ae,mapHeaders:()=>D,mapMapper:()=>Te,mapOpenSpec:()=>sn,mapOpenSpec2:()=>tn,mapOpenSpec3:()=>rn,mapOpenSpecInfo:()=>en,mapOperationOptions:()=>es,matchGroups:()=>ur,mergeSpec:()=>Xs,messageMapper:()=>ie,nullableMapper:()=>_e,nullableMapperOpenApi:()=>Ve,number:()=>Hs,object:()=>Gs,objectMapper:()=>Ie,ofMapper:()=>De,oneOf:()=>qs,operationIdFormatter:()=>ht,operationInFilesMapper:()=>We,operationInParameterMapper:()=>Xe,operationInParametersMapper:()=>ze,operationInQueryMapper:()=>Qe,operationMapper:()=>nt,operationMediaMapper:()=>it,operationRequestBodyMapper:()=>at,operationResponseMapper:()=>ct,parameters:()=>Js,pathsMapper:()=>ft,payloadMapper:()=>pe,popGenerics:()=>ce,propertiesMapper:()=>Le,registerJsonSchemaMapper:()=>a,removeHiddenOperation:()=>ee,requiredMapper:()=>je,responsePayloadMapper:()=>ue,schemaMapper:()=>Ke,schemesReducer:()=>Ks,security:()=>Fs,serializeEnum:()=>T,serializeEnumValues:()=>P,set:()=>ws,string:()=>Ir,tagsReducer:()=>Vs,time:()=>Is,toJsonMapCollection:()=>L,toJsonRegex:()=>v,toRef:()=>de,transformInformation:()=>dn,transformSecurity:()=>mn,transformToOS2:()=>gn,uri:()=>Bs,url:()=>Us,withErrorMsg:()=>Et,wrapEnumsMapper:()=>Je});var e,t=i(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],n=new Map;function a(e,t,r){return n.set(r?`${r}:${e}`:e,t)}function c(e,t){const r=n.get(`${t?.specType}:${e}`)||n.get(e);if(r)return r;throw new Error(`JsonSchema ${e} mapper doesn't exists`)}function p(e,t,r,s){return c(e,r)(...t,r,s)}function u(e){return n.has(e)}function h(e,t){return e.find((e=>n.has(`${t?.specType}:${e}`)))||e.find((e=>n.has(e)))}function l(e){return e.split("/").filter(Boolean).join("/")}var m=i(803);function d(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 f(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;const g=new Map;class y{constructor(e){this.isStore=!0;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,m.nameOf)(this.token)}get isCollection(){return!!this.collectionType}get isArray(){return(0,m.isArrayOrArrayClass)(this.collectionType)}get discriminatorAncestor(){const e=(0,m.ancestorsOf)(this.target).find((e=>y.from(e).schema.isDiscriminator));return e&&y.from(e)}get isPrimitive(){return(0,m.isPrimitiveOrPrimitiveClass)(this._type)}get isDate(){return(0,m.isDate)(this.computedType)}get isObject(){return(0,m.isObject)(this.computedType)}get isClass(){return(0,m.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,m.prototypeOf)(e[0]));const r=m.Store.from(...e);if(!r.has("JsonEntityStore")){const s=(0,m.decoratorTypeOf)(e),n=new(g.get(s))({store:r,decoratorType:s,target:(0,m.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,m.descriptorOf)(e,t))}static get(e,t,r){return y.from((0,m.prototypeOf)(e),t,r)}isGetterOnly(){return(0,m.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,m.isCollection)(e)?this.collectionType=e:(this._type=e,this._type&&(0,m.isPlainObject)(this._type)&&(this._type=String))}getBestType(){return this.itemSchema.hasDiscriminator?this.itemSchema.discriminator().base:(0,m.isClassObject)(this.type)?this.itemSchema.getTarget():(0,m.isArrowFn)(this.type)?this.type():this.type}}function O(e){return t=>{g.set(e,t)}}var S=i(488);const b=new Map;function R(e){return(0,m.isPromise)(e)||e===Function?Object:(0,m.isClass)(e)||(0,m.isSymbol)(e)||(0,m.isPrimitiveOrPrimitiveClass)(e)||(0,m.isClassObject)(e)||(0,m.isDate)(e)||(0,m.isCollection)(e)?(0,m.classOf)(e):(0,m.isArrowFn)(e)?e():e}const A=["string","number","integer","boolean","object","array","null","any"];function E(e){return null===e?"null":(0,m.isPrimitiveOrPrimitiveClass)(e)?A.indexOf(e)>-1?e:"string"==typeof e?"file"===e?"file":"generic":(0,m.primitiveOf)(e):e===Array?"array":(0,m.isArray)(e)?e.map(E):e===Set?"array":(0,m.isDate)(e)||(0,m.isBuffer)(e)?"string":"object"}const T=e=>(0,m.isObject)(e)&&null!==e?Object.entries(e).reduce(((e,[t,r])=>isNaN(+t)?e.concat(r):e),[]):e;function P(e){const t=e.reduce(((e,t)=>e.concat(T(t))),[]),r=t.reduce(((e,t)=>e.add((e=>null===e?"null":typeof e)(t))),new Set);return{values:(0,m.uniq)(t),types:r}}function v(e){return String(e).replace(/^(\/)(.*)(\/)$/,"$2")}class C{constructor({base:e,propertyName:t,types:r,values:s}={}){this.values=new Map,this.types=new Map,Object.assign(this,(0,m.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 M?e:Object.entries(e).reduce(((e,[t,r])=>(e[v(t)]=$(r),e)),{})}function $(e){return(0,m.isArray)(e)?e.map($):e.isStore||e.$isJsonDocument||e.isLazyRef?e:(0,m.classOf)(e)!==Object&&(0,m.isClass)(e)?y.from(e).schema:(0,m.isObject)(e)?M.from(e):(0,m.isPrimitiveClass)(e)?M.from({type:e}):e}class M extends Map{#e;#t;#r;#s;#n;#i;#o;#a;#c;#p;constructor(e={}){super(),this.$kind="schema",this.$isJsonDocument=!0,this.$hooks=new S.Hooks,this.$required=new Set,this.$allow=[],this.$forwardGroups=!1,this.$ignore=!1,this.isDiscriminatorKey=!1,this.isDiscriminator=!1,this.#e=!1,this.#t=null,this.#s=[],this.#n=new Map,this.#a=!1,this.#c=!1,this.#p=!1,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,m.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,m.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 M(e)}nullable(e){this.#e=e}itemSchema(e={}){return this.#i=this.#i||$(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 C({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 M({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",$(e)),this}contains(e){return super.set("contains",$(e)),this}examples(e){return super.set("examples",e),this}example(...e){return this.examples(e)}items(e){return super.set("items",this.#i=$(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,m.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",$(e)),this}unknown(e=!0){return this.additionalProperties(e)}dependencies(e){return super.set("dependencies",x(e)),this}propertyNames(e){return super.set("propertyNames",$(e)),this}enum(e,...t){if(b.has(e))return this.enum(b.get(e));if(e instanceof M)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}=P([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",$(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",v(e)),this}format(e){return super.set("format",e),this}type(e){switch(e){case"map":case Map:super.set("type",E(e)),this.#o=e,this.#c=!0,this.has("additionalProperties")||super.set("additionalProperties",this.itemSchema({}));break;case"array":case Array:super.set("type",E(e)),this.#o=e,this.#c=!0,this.has("items")||super.set("items",this.itemSchema({}));break;case"set":case Set:super.set("type",E(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",E(e)),this.#o=e,this.has("properties")||super.set("properties",{});break;default:if((0,m.isClass)(e)||(0,m.isFunction)(e))super.set("type",void 0),this.#o=e,this.has("properties")||super.set("properties",{});else{const t=E(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,m.uniq)(e).map((e=>(0,m.isClass)(e)?e:{type:E(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 p("schema",[this],e)}assign(e={}){return(e instanceof M?[...e.entries()]:Object.entries(e)).forEach((([e,t])=>{this.set(e,t)})),e instanceof M&&(this.$selfRequired=e.$selfRequired,this.$allow.push(...e.$allow),e.$required.forEach((e=>{this.$required.add(e)})),this.#t=this.#t?new C(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,m.isFunction)(this[e])&&this[e](t):super.set(e,t),this}getComputedType(){return R(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")||E(this.getComputedType())}getTarget(){return this.#o}getName(){return this.get("name")||((0,m.isClass)(this.#o)?(0,m.nameOf)((0,m.classOf)(this.getComputedType())):"")}clone(){return new M(this)}setManyOf(e,t){let r=t.filter((e=>"null"!==e?.type||(this.nullable(!0),!1))).map($);if(!(1!==r.length||t[0]instanceof M||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($)}super.set(e,r);const s=r[0];if(s.isDiscriminator){const e=s.discriminatorAncestor.discriminator(),{propertyName:t}=e;super.set("discriminator",{propertyName:t,mapping:r.reduce(((t,r)=>(e.types.get(r.getTarget())?.forEach((e=>{t[e]=r})),t)),{})}),this.isDiscriminator=!0,this.#t=e}}}let w=class extends y{constructor(){super(...arguments),this.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=M.from({type:this.type})}};w=d([O(m.DecoratorTypes.CLASS)],w);const _=e=>Number(e)&&200<=Number(e)&&Number(e)<300,N=e=>Number(e)&&300<=Number(e)&&Number(e)<400;class I extends Map{constructor(e={}){super(),this.$kind="map",this.$isJsonDocument=!0,this.assign(e)}assign(e={}){return Object.entries(e).forEach((([e,t])=>{(0,m.isFunction)(this[e])?this[e](t):this.set(e,t)})),this}toJSON(e){return p("map",[this],e)}}function D(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,m.cleanObject)(i),t}),{})}function L(e,t=I){return Object.entries(e).reduce(((e,[r,s])=>(e.set(r,new t(s)),e)),new I)}class k extends I{constructor(){super(...arguments),this.$kind="operationMedia",this.groups=[]}schema(e){return this.set("schema",e),this}examples(e){return this.set("examples",e),this}}class j extends I{constructor(e={}){super(e),this.$kind="operationResponse",this.content(e.content||{})}description(e){return this.set("description",e),this}headers(e){return this.set("headers",D(e)),this}content(e){return this.set("content",L(e,k)),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 k),this}isBinary(){return this.getContent().has("application/octet-stream")}}class H extends I{#u;#h;constructor(e={}){super({parameters:[],responses:new I,...e}),this.$kind="operation",this.operationPaths=new Map,this.#h=!1}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,m.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?N(e):this.#h}addResponse(e,t){if((_(e)||N(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,m.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 j}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,m.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,m.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 G=class extends y{constructor(e){super({store:m.Store.fromMethod(e.target,e.propertyKey),descriptor:(0,m.descriptorOf)(e.target,e.propertyKey),...e}),this.parent=y.from(this.target),this.middlewares=[],this.beforeMiddlewares=[],this.afterMiddlewares=[],this.operation=new H,this.children=new Map;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,m.descriptorOf)((0,m.prototypeOf)(e),t),y.from((0,m.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(m.isFunction),this}after(e){return this.afterMiddlewares=this.afterMiddlewares.concat(e).filter(m.isFunction),this}use(e){return this.middlewares=this.middlewares.concat(e).filter(m.isFunction),this}get(e){const t=m.Store.from(this.target).get(e);return(0,m.deepMerge)(t,this.store.get(e))}getParamTypes(){return[...this.children.values()].reduce(((e,t)=>({...e,[t.paramType]:!0})),{})}build(){if(!this._type){let e=m.Metadata.getReturnType(this.target,this.propertyKey);e=(0,m.isPromise)(e)?void 0:e,this.buildType(e)}this._type=this._type||Object,this.parent.children.set(this.propertyName,this),(0,m.isCollection)(this._type)&&(this.collectionType=this._type,delete this._type),this._schema=M.from({type:this.collectionType||this.type}),this.collectionType&&this._schema.itemSchema(this.type),this.parent.schema.addProperty(this.propertyName,this.schema)}};G=d([O(m.DecoratorTypes.METHOD),f("design:paramtypes",[Object])],G);const q=G;var B;function U(e){return String(e).toLowerCase().replace("raw_","").replace("cookies","cookie")}function K(e){return Object.values(B).includes(U(e))}!function(e){e.BODY="body",e.PATH="path",e.QUERY="query",e.HEADER="header",e.COOKIES="cookie",e.FILES="files"}(B||(B={}));class J extends I{constructor(){super(...arguments),this.$kind="operationInParameter",this.nestedGenerics=[]}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",U(e)),this.expression=t,this}required(e){return this.set("required",e),this}schema(e){return this.$schema=e,this}toJSON(e){return p("operationInParameter",[this],e)}}let F=class extends y{constructor(e){super(e),this.parameter=new J,this.parent=y.fromMethod(this.target,this.propertyKey),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,m.ancestorsOf)(e).reverse().find((e=>(0,m.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,m.prototypeOf)(e),t,r)}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}getSchema(e){return(0,m.isCollection)(e)||!(0,m.isClass)(e)?M.from({type:e}):y.from(e).schema}build(){if(!this._type){const e=m.Metadata.getParamTypes((0,m.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))}};F=d([O(m.DecoratorTypes.PARAM),f("design:paramtypes",[Object])],F);const V=F;let W=class extends y{constructor(){super(...arguments),this.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(m.Metadata.getType((0,m.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=M.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,m.prototypeOf)(e),t)}};W=d([O(m.DecoratorTypes.PROP)],W);const X=W;function z(...e){return y.from(...e)}g.set(m.DecoratorTypes.CLASS,w),g.set(m.DecoratorTypes.PROP,W),g.set(m.DecoratorTypes.PARAM,F),g.set(m.DecoratorTypes.METHOD,G);class Y extends Map{constructor(){super(...arguments),this.$kind="operationPaths",this.$isJsonDocument=!0,this.getKey=(e,t)=>`${e}-${t}`}setOperationPath(e){const t=this.getKey(e.method,e.path);this.set(t,e)}}function Q(e){const t=e.isStore?e:z(e);return t.$inherited||(t.$inherited=(0,m.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 Y;t.$operations=new Map,Q(t).forEach((e=>{e.children.forEach((e=>{e instanceof G&&!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=l(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=p("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 u=(0,m.getValue)(i.components,"messages."+o,(0,m.cleanObject)({description:t.operation.get("description"),summary:t.operation.get("summary")}));if(a.toUpperCase()===e.PUBLISH){const s=p("payload",[t,r],i);s&&(u.payload=s);const n=t.operation.getAllowedOperationPath([e.SUBSCRIBE]).map((e=>p("message",[t,e],i))).filter(Boolean),o=ne("oneOf",n);o&&(u["x-response"]=o)}else{const e=p("response",[t,r],i);e&&(u["x-response"]=e)}return i.components.messages=i.components.messages||{},i.components.messages[c]=u,{$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,m.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=p("item",[e.$schema],{...t,...ce(e)});switch(e.get("in")){case B.BODY:return r;case B.QUERY:case B.PATH:case B.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=p("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 u=(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,m.setValue)(h,"properties.data",l);const d=ne("oneOf",c);return c.length&&(0,m.setValue)(h,"properties.error",d),(0,m.setValue)(s,`components.schemas.${u}`,h),{$ref:`#/components/schemas/${u}`}}a("channels",re),function(e){e.JSON="jsonschema",e.SWAGGER="swagger2",e.OPENAPI="openapi3",e.ASYNCAPI="asyncapi2"}(se||(se={})),a("generate",(function(e,t){const r={channels:p("channels",[e],t)};return r.tags=(0,m.uniqBy)(t.tags,"name"),t.components?.schemas&&Object.keys(t.components.schemas).length&&(r.components={...t.components,schemas:t.components.schemas}),r}),se.ASYNCAPI),a("message",ie,se.ASYNCAPI),a("payload",pe,se.ASYNCAPI),a("response",ue,se.ASYNCAPI);class he{constructor(e){this.getType=e,this.isLazyRef=!0}get target(){return this.getType()}get schema(){return z(this.getType()).schema}get name(){return(0,m.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,m.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 t&&(0,m.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 p("lazyRef",[e],t);if(e instanceof M&&e.get("enum")instanceof M){const r=e.get("enum");return de(r,r.toJSON(t),t)}if(e.$kind&&e.$isJsonDocument){const r=p(h([e.$kind,"map"],t),[e],ae(t));return e.canRef?de(e,r,t):r}return p("object",[e],t)}function ge(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={...p("any",[r.schema],{...t,...ce(e),root:!1}),...a};if(c.title){const r=le(c.title,t);return(0,m.setValue)(t.components,`schemas.${r}`,c),delete c.title,me(r,e,t)}return c}return(0,m.getValue)(t,`components.schemas.${s}`)||((0,m.setValue)(t,`components.schemas.${s}`,{}),t.components.schemas[s]=p("any",[r.schema],ae({...t,root:!1}))),me(s,e,t)}function ye(e,t,r){if(e.discriminator?.mapping){const t=Object.entries(e.discriminator.mapping),s={};for(const[e,n]of t)s[e]=(0,m.isString)(n)?n:de(n,null,r).$ref;e.discriminator.mapping=s}return e}function Oe(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 Se(e,t){const{generics:r}=t;if(r&&e.$ref&&r.has(e.$ref)){let s=r.get(e.$ref);if((0,m.isPrimitiveClass)(s))return{type:E(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,m.isClass)(s)){const e={class:s};return 0===t.nestedGenerics.length?p("class",[e],{...t,generics:void 0}):p("schema",[y.from(e.class).schema],{...t,...ce(t),root:!1})}}return e}function be(e,t){if(t?.type&&t?.$ref){const{$ref:e,...r}=t;t={allOf:[{$ref:e},r]}}return t}function Re(e,{target:t,...r}){const s=Array.from(Q(t).entries()).filter((([e])=>(0,m.classOf)(e)!==(0,m.classOf)(t)));if(s.length){const t=s.reduce(((e,[,t])=>(0,m.deepMerge)(e,p("schema",[t.schema],r),{alter:be})),{});return(0,m.deepMerge)(t,e,{alter:be})}return e}function Ae(e,t){return e&&e.isClass?p("class",[e],t):p("any",[e],t)}function Ee(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()&&p("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]=p("item",[n],r)),e)),{})}a("any",fe),a("class",ge),a("discriminatorMapping",(function(e){return e.discriminator?.mapping&&delete e.discriminator.mapping,e})),a("enums",Oe),a("generics",Se),a("inheritedClass",Re),a("item",Ae),a("lazyRef",Ee),a("map",Te);const Pe=["oneOf","allOf","anyOf"],ve=["minLength","maxLength","pattern","format"],Ce=[],xe=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"],$e=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains"],Me=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains","patternProperties","dependencies"],we=["const","enum"];function _e(e,t){return t?.isNullable?(e.discriminator||(e.$ref?e=(0,m.cleanObject)({...e,$ref:void 0,anyOf:[{type:"null"},{$ref:e.$ref}]}):Pe.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,m.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 Ne(e,t){if((0,m.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 Ie(e,t){const{specType:r,operationIdFormatter:s,root:n,components:i,genericTypes:o,nestedGenerics:a,useAlias:c,genericLabels:u,...h}=t;return Object.entries(e).reduce(((r,[s,n])=>{if(!1!==t.withIgnoredProps&&!Ne(n,h)){const i={...t,groups:e?.$forwardGroups||n?.$forwardGroups?t.groups:void 0};r[s]=p("item",[n],i),r[s]=p("nullable",[r[s],n],i)}return r}),(0,m.isArray)(e)?[]:{})}function De(e,t,r){return e.map((e=>p("item",[e],{...t,genericLabels:r.genericLabels})))}function Le(e,t,r){return e.isClass?p("class",[e],t):p("any",[e],{...t,genericLabels:r.genericLabels})}function ke(e,t,r){return!1!==r.groups?t?.$hooks?.alter("requiredGroups",e,[r.groups]):e}function je(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)),ke((0,m.uniq)(s),t,r)}(e,t,r);return s=(0,m.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 He(e,t){return Object.entries(e).reduce(((e,[r,s])=>(e[r=t.get(r)||r]=s,e)),{})}a("nullable",_e),a("object",Ie),a("anyOf",De),a("allOf",De),a("oneOf",De),a("properties",Le),a("items",Le),a("additionalProperties",Le),a("propertyNames",Le),a("contains",Le),a("dependencies",Le),a("patternProperties",Le),a("additionalItems",Le),a("not",Le),a("definitions",Le),a("required",je);const Ge={string:{properties:ve,is:m.isString},number:{properties:xe,is:m.isNumber},boolean:{properties:Ce,is:m.isBoolean},array:{properties:$e,is:()=>!1},object:{properties:Me,is:()=>!1}};function qe(e,t,r){const s=function(e){return Pe.find((t=>e[t]))}(e);return s&&(e[s].forEach((t=>{!function(e,t,r){const s=Ge[e];s?.properties.concat(we).forEach((e=>{void 0!==t[e]&&(we.includes(e)?r[e]=t[e].filter(s.is):(r[e]=t[e],delete t[e]))}))}(t.type,e,t)})),Pe.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 Be=["name","$required","$hooks","_nestedGenerics",se.OPENAPI,se.SWAGGER,se.JSON],Ue=[];function Ke(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 Be.includes(e)||e.startsWith("#")&&(!1===r||t!==se.JSON)||t!==se.JSON&&Ue.includes(e)}(e,t))).reduce(((s,n)=>{let i=e.get(n);if("type"===(n=n.replace(/^#/,"")))return s[n]=e.getJsonType(),s;if(function(e,t,r){return"examples"===e&&(0,m.isObject)(t)&&[se.OPENAPI,se.ASYNCAPI].includes(r.specType)}(n,i,t)&&(n="example",i=Object.values(i)[0]),i&&"object"==typeof i&&u(n)){if(i=p(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=He(i,e.alias))}return s[n]=i,s}),{})}(e,t);return e.isClass&&(r=p("inheritedClass",[r],{...t,root:!1,target:e.getComputedType()})),r=p("generics",[r],{...t,root:!1}),e.has(t.specType)&&(r={...r,...e.get(t.specType).toJSON(t)}),r=p("required",[r,e],t),r=p("nullable",[r,e],t),r=qe(r,e,t),r=p("enums",[r,e],t),r=p("discriminatorMapping",[r,e],t),r}(e,r);return s&&Object.keys((0,m.getValue)(r,"components.schemas",{})).length&&(n.definitions=r.components.schemas),n}function Je(e,t,r){return(e=Oe(e,0,r)).const&&(e.enum=[e.const],delete e.const),e}function Fe(e,t){const r={paths:p("paths",[e],t={...t,specType:se.OPENAPI})};return r.tags=(0,m.uniqBy)(t.tags,"name"),Object.keys((0,m.getValue)(t,"components.schemas",{})).length&&(r.components={schemas:t.components.schemas}),r}function Ve(e,t){return t?.isNullable?e.$ref?(0,m.cleanObject)({...e,...e.$ref&&{anyOf:[{$ref:e.$ref}],type:void 0},nullable:!0,$ref:void 0}):(0,m.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 We(e,{jsonSchema:t}){const r={type:"string",format:"binary",oneOf:void 0};return"array"===t.type?(t.items=(0,m.cleanObject)({...t.items,...r}),e.schema=t,e):(e.schema=(0,m.cleanObject)({...t,...r}),e)}function Xe(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}=p("map",[e],s),c=p("item",[e.$schema],{...s,...ce(e)});a.required=a.required||e.get("in")===B.PATH;const h={...s,jsonSchema:c,jsonParameter:e,oldSchemas:n},l=(0,t.camelCase)(`operationIn ${e.get("in")}`);return u(l)?p(l,[a],h):(a.schema=c,a)}function ze(e,t){return e.flatMap((e=>p("operationInParameter",[e],t))).filter(Boolean)}function Ye(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 Qe(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,m.cleanObject)({...e,name:r,required:(n?.required||[]).includes(r),description:s,schema:i,style:i.$ref?"deepObject":void 0,examples:Ye(r,e.examples)})]),[])}(e,s);e.style="deepObject"}return e.schema=t,e}a("schema",Ke),a("discriminatorMapping",ye,se.OPENAPI),a("discriminatorMapping",ye,se.SWAGGER),a("discriminatorMapping",ye,se.ASYNCAPI),a("enums",Je,se.OPENAPI),a("enums",Je,se.SWAGGER),a("enums",Je,se.ASYNCAPI),a("generate",Fe,se.OPENAPI),a("generate",Fe,se.SWAGGER),a("nullable",Ve,se.OPENAPI),a("nullable",Ve,se.SWAGGER),a("operationInFiles",We),a("operationInParameter",Xe),a("operationInParameters",ze),a("operationInQuery",Qe);var Ze=i(203),et=i.n(Ze);const tt=et().codes.reduce(((e,r)=>{const s=String(et()(r));return{...e,[String(r)]:{label:s,code:(0,t.constantCase)(s)}}}),{});function rt(e){return tt[e]?.code}function st(e){return tt[e]?.label}function nt(e,{tags:t=[],defaultTags:r=[],...s}={}){const{consumes:n,produces:i,...o}=p("map",[e],{...s,ignore:["parameters"]});o.security&&(o.security=[].concat(o.security)),0===e.get("responses").size&&(o.responses={200:{description:st(200)}});const a={...s,consumes:e.get("consumes")?.length?e.get("consumes"):["application/json"]},[c,u]=function(e,t){return e.get("parameters").filter((e=>K(e.get("in")))).reduce(((e,t)=>{const[r,s]=e;return[B.BODY,B.FILES].includes(t.get("in"))?[r,[...s,t]]:[[...r,t],s]}),[[],[]])}(e);o.parameters=p("operationInParameters",[c],s),u.length&&(o.requestBody=p("operationRequestBody",[u],a));const h=o.tags?.length?o.tags:r;return h.length&&(o.tags=h.map((({name:e})=>e))),t.push(...h),o}function it(e,t){return p("map",[e],{...t,groups:[...e.groups||[]],groupsName:e.groupsName})}tt[200].label="Success",tt[200].code="SUCCESS",a("operation",nt),a("operationMedia",it);class ot extends I{constructor(e={}){super(e),this.$kind="operationRequestBody",this.content(e.content||{})}description(e){return this.set("description",e),this}content(e){return this.set("content",L(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 at(e,{consumes:t,...r}){const{schema:s,examples:n,in:i,...o}=function(e,t){let r=new M;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=p("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 ot(o);return t.forEach((e=>{a.addContent(e,s,n)})),p("map",[a],r)}function ct(e,t={}){const r=p("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 pt(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 ut(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 ht(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 lt(e,{store:t,operationIdFormatter:r}){return r(t.parent.schema.get("name")||t.parent.targetName,t.propertyName,e)}a("operationRequestBody",at),a("operationResponse",ct);const mt=[e.ALL,e.GET,e.POST,e.PUT,e.PATCH,e.HEAD,e.OPTIONS,e.DELETE,e.TRACE];function dt(e,{path:t,method:r,operation:s}){return{...e,[t]:{...e[t],[r.toLowerCase()]:s}}}function ft(e,{paths:t,rootPath:r,...s}){const n=l(r+z(e).path);return s={...s,ctrlRootPath:n},[...Z(e).values()].filter(ee).filter((e=>e.operation.getAllowedOperationPath(mt).length>0)).flatMap(function(e){return t=>{const r=t.operation.getAllowedOperationPath(mt);if(0===r.length)return[];const s=p("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 ut(e.ctrlRootPath,n).map((({path:t,parameters:n})=>(t=t||"/",n=pt(n.map((({type:e,...t})=>({...t,schema:{type:e}}))),r),{operation:{...r,parameters:n,operationId:r.operationId||lt(t,{...e,store:s})},method:i,path:t})))}}(s)).reduce(dt,t)}function gt(e){return(...t)=>{const r=e(z(...t),t);"function"==typeof r&&r(...t)}}function yt(...e){return gt((t=>{t.store.set("childrenControllers",e),e.forEach((e=>{m.Store.from(e).set("parentController",t.token)}))}))}function Ot(e,...r){return gt((s=>{e=e||(0,t.snakeCase)(s.targetName),s.discriminatorAncestor&&s.schema.discriminatorValue(e,...r)}))}function St(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 bt(e){return St(e,Array)}function Rt(e){return St(e,Map)}function At(e){return St(e).Contains()}function Et(e,t){const r={};return(...s)=>{const n=(0,m.useDecorators)(t(...s));return n.Error=t=>(r.message=t,(0,m.useDecorators)(n,r.message&&gt((r=>{const s=r.parentSchema.get("#errorMessage")||{};"required"===e?r.parentSchema.customKey("errorMessage",(0,m.deepMerge)(s,{[e]:{[r.propertyName]:t}})):r.itemSchema.customKey("errorMessage",(0,m.deepMerge)(s,{[e]:t}))})))),n}}a("paths",ft);const Tt=Et("maxItems",(e=>{if(e<0)throw new Error("The value of maxItems MUST be a non-negative integer.");return gt((t=>{t.schema.maxItems(e)}))})),Pt=Et("maxProperties",(e=>{if(e<0)throw new Error("The value of maxProperties MUST be a non-negative integer.");return gt((t=>{t.isCollection?t.schema.maxProperties(e):t.itemSchema.maxProperties(e)}))})),vt=Et("minItems",(e=>{if(e<0)throw new Error("The value of minItems MUST be a non-negative integer.");return gt((t=>{t.schema.minItems(e)}))})),Ct=Et("minProperties",(e=>{if(e<0)throw new Error("The value of minProperties MUST be a non-negative integer.");return gt((t=>{t.isCollection?t.schema.minProperties(e):t.itemSchema.minProperties(e)}))})),xt=Et("uniqueItems",((e=!0)=>gt((t=>{t.schema.uniqueItems(e)}))));function $t(e){return gt(((t,r)=>{t.itemSchema.additionalProperties(e)}))}function Mt(...e){return gt((t=>{t.itemSchema.allOf(e)}))}function wt(e){return gt((t=>{e&&(((0,m.isClass)(e)||(0,m.isArrowFn)(e))&&(t.type=e),t.itemSchema.type(e))}))}function _t(...e){const t=e.find((e=>(0,m.isClass)(e)));return(0,m.useDecorators)(t&&wt(t),gt(((t,r)=>{t.decoratorType===m.DecoratorTypes.PARAM&&(t.required=!0),t.decoratorType===m.DecoratorTypes.PROP&&t.parentSchema.addRequired(t.propertyName),t.schema.allow(...e)})))}function Nt(...e){return gt((t=>{t.itemSchema.any(...e)}))}function It(...e){return gt((t=>{t.itemSchema.anyOf(e)}))}function Dt(e){return gt((t=>{t.itemSchema.const(e)}))}function Lt(e,t){return gt((r=>{r.itemSchema.customKey(e,t)}))}function kt(e){return gt((t=>{Object.entries(e).forEach((([e,r])=>{t.itemSchema.customKey(e,r)}))}))}function jt(e){return gt((t=>{t.itemSchema.default(e)}))}function Ht(e){return gt((t=>{const r=t.parentSchema.get("#errorMessage")||{};t.parentSchema.customKey("errorMessage",{...r,...e})}))}function Gt(e){return(0,m.useDecorators)(Ht({_:e}))}function qt(e){return gt(((t,r)=>{switch((0,m.decoratorTypeOf)(r)){case m.DecoratorTypes.PROP:case m.DecoratorTypes.CLASS:t.schema.description(e);break;case m.DecoratorTypes.PARAM:t.parameter.description(e);break;case m.DecoratorTypes.METHOD:t.operation?.description(e)}}))}function Bt(){return(0,m.useDecorators)(wt(),gt((e=>{e.discriminatorKey()})))}const Ut=Et("enum",(function(e,...t){return gt((r=>{r.itemSchema.enum(e,...t)}))}));function Kt(...e){return gt((t=>{t.schema.examples(e)}))}function Jt(e){return gt((t=>{t.parameter.examples(e)}))}const Ft=Et("maximum",((e,t=!1)=>gt((r=>{t?r.itemSchema.exclusiveMaximum(e):r.itemSchema.maximum(e)})))),Vt=Ft,Wt=Et("exclusiveMaximum",((e,t=!0)=>Ft(e,t))),Xt=Et("minimum",((e,t=!1)=>gt((r=>{t?r.itemSchema.exclusiveMinimum(e):r.itemSchema.minimum(e)})))),zt=Xt,Yt=Et("exclusiveMinimum",((e,t=!0)=>Xt(e,t)));var Qt;!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"}(Qt||(Qt={}));const Zt=Et("format",(e=>gt((t=>{t.itemSchema.format(e)})))),er=Et("format",(()=>Zt(Qt.EMAIL))),tr=Et("format",(()=>Zt(Qt.DATE_TIME))),rr=Et("format",(()=>Zt(Qt.DATE))),sr=Et("format",(()=>Zt(Qt.TIME))),nr=Et("format",(()=>Zt(Qt.URI))),ir=Et("format",(()=>Zt(Qt.URL)));function or(e=!0){return gt((t=>{t.schema.$forwardGroups=e}))}var ar=i(133),cr=i.n(ar);function pr(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=cr()(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 ur(e,t=[]){const r=e.filter((e=>e.startsWith("!"))).map((e=>e.replace("!",""))),s=e.filter((e=>!e.startsWith("!")));return!!(r.length&&t.length&&pr(r,t))||!!s.length&&!pr(e.filter((e=>!e.startsWith("!"))),t)}function hr(...e){return gt((t=>{switch(t.decoratorType){case m.DecoratorTypes.CLASS:!function(e,t){const r=Object.entries(e[0]);t.children.forEach((e=>{hr(...r.filter((([,t])=>t.includes(e.propertyName))).map((([e])=>e)))(e.target,e.propertyKey)}))}(e,t);break;case m.DecoratorTypes.PROP:Lt("x-groups",e)(t.target,t.propertyKey),t.schema.$hooks.on("groups",((t,r)=>!(t||!ur(e,r))||t));break;case m.DecoratorTypes.PARAM:let r="";2==e.length&&(0,m.isArray)(e[1])&&(r=e[0],e=e[1]),t.parameter.groups=e,t.parameter.groupsName=r}}))}function lr(){return(0,m.StoreSet)("hidden",!0)}function mr(e=!0){return gt((t=>{t.schema.ignore(e)}))}function dr(){return gt((e=>{e.itemSchema.type("integer")}))}function fr(e,t=!1){return gt((r=>{t?r.schema.label(e):r.itemSchema.label(e)}))}const gr=Et("maxLength",(e=>{if(e<0)throw new Error("The value of maxLength MUST be a non-negative integer.");return gt((t=>{t.itemSchema.maxLength(e)}))})),yr=Et("minLength",(e=>{if(e<0)throw new Error("The value of minLength MUST be a non-negative integer.");return gt((t=>{t.itemSchema.minLength(e)}))})),Or=Et("multipleOf",(e=>{if(e<=0)throw new Error("The value of multipleOf MUST be a number, strictly greater than 0.");return gt((t=>{t.itemSchema.multipleOf(e)}))}));function Sr(e){return gt(((t,r)=>{switch((0,m.decoratorTypeOf)(r)){case m.DecoratorTypes.CLASS:t.schema.name(e);break;case m.DecoratorTypes.PARAM:t.parameter.name(e);break;default:t.parent.schema.addAlias(r[1],e)}}))}function br(e,...t){return t=[e,...t],(0,m.useDecorators)(1===t.length&&wt(t[0]),Nt(null,...t))}function Rr(...e){return gt((t=>{t.itemSchema.oneOf(e),t.type=Object}))}function Ar(){return gt((e=>{switch(e.decoratorType){case m.DecoratorTypes.PARAM:e.required=!1;break;case m.DecoratorTypes.PROP:e.parentSchema.removeRequired(e.propertyName)}}))}const Er=Et("pattern",(e=>gt((t=>{t.itemSchema.pattern(e)}))));function Tr(e=!0){return gt((t=>{t.itemSchema.readOnly(e)}))}function Pr(e){return gt((t=>{t.schema.assign(e)}))}function vr(e,t){return gt((r=>{r.schema.set(e,t)}))}function Cr(e,...t){return Pr({properties:{...t.reduce(((t,r)=>({...t,[r]:e})),{})}})}const xr=Et("required",((e=!0,...t)=>e?_t(...t):Ar()));function $r(...e){return gt((t=>{t.parent.schema.$hooks.on("requiredGroups",((r,s)=>ur(e,s)?r.filter((e=>e!==t.propertyKey)):r))}))}function Mr(e){return gt((t=>{t.schema.title(e)}))}function wr(e){return gt((()=>(0,m.useDecorators)(Ht({type:e}))))}function _r(e=!0){return gt((t=>{t.itemSchema.writeOnly(e)}))}function Nr(e=Object){if((0,m.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 M.from({type:e})}function Ir(){return Nr(String)}function Dr(...e){const t=[e.map((e=>function(e){return(0,m.isObject)(e)&&!("toJSON"in e)}(e)?Ir().enum(Object.values(e)):e))],r=(...e)=>{y.from(...e).nestedGenerics=t};return r.Nested=(...e)=>(t.push(e),r),r}function Lr(...e){return t=>{y.from(t).schema.genericLabels=e}}function kr(...e){return gt(((t,r)=>{switch(t.decoratorType){case m.DecoratorTypes.METHOD:t.operation.produces(e);break;case m.DecoratorTypes.CLASS:(0,m.decorateMethodsOf)(r[0],kr(...e));break;default:throw new m.UnsupportedDecoratorType(kr,r)}}))}function jr(...e){return(0,m.useDecorators)(kr(...e),(0,m.StoreSet)("acceptMimes",e))}function Hr(...e){return gt(((t,r)=>{switch(t.decoratorType){case m.DecoratorTypes.METHOD:t.operation.consumes(e);break;case m.DecoratorTypes.CLASS:(0,m.decorateMethodsOf)(r[0],Hr(...e));break;default:throw new m.UnsupportedDecoratorType(Hr,r)}}))}class Gr extends Map{constructor(e={}){super(),this.actions=[],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===m.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 qr=new Map;function Br(e,t){qr.set(e,t)}function Ur(e){return qr.get(e)}function Kr(e){return e.map((e=>function(e){return(0,m.isObject)(e)&&!("toJSON"in e)}(e)?Ir().enum(Object.values(e)):e))}class Jr extends Gr{constructor({status:e,model:t}){super(),this.methods=["contentType","description","examples","type","status","of","ofInteger","oneOf","allOf","anyOf","nested","header","headers","schema","title","groups","allowedGroups","location","binary"],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&&st(e)&&!this.get("description")&&(this.set("description",st(e)),this.get("model")||this.model(Ur(+e))),this}headers(e){return this.set("headers",{...this.get("headers")||{},...D(e)}),this}header(e,t){return void 0===t&&(0,m.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,m.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(Kr(e))})),this}of(...e){const t=this.get("model");return this.checkPrimitive(t),this.addAction((()=>{const r=this.get("schema");(0,m.isCollection)(t)?r?.itemSchema({type:e[0]}):r?.nestedGenerics.push(Kr(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,m.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,m.isPrimitiveOrPrimitiveClass)(e))throw new Error("Returns.Of cannot be used with the following primitive classes: String, Number, Boolean")}checkCollection(e){if((0,m.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,m.isPlainObject)(e)&&!(0,m.isPrimitiveOrPrimitiveClass)(e)||this.hasOfTypes)&&(t=t||"application/json"),t}getStatus(){return this.get("status")||"default"}onInit(e,t){switch((0,m.decoratorTypeOf)(e)){case m.DecoratorTypes.METHOD:this.entity=y.from(...e),this.entity.operation&&this.map();break;case m.DecoratorTypes.CLASS:this.decoratorType=m.DecoratorTypes.CLASS,(0,m.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===m.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),(_(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 M({type:r}),i=this.get("groups"),o=this.get("groupsName"),a=this.get("allowedGroups"),c=this.entity.operation;if(r&&((0,m.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(M.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,m.isCollection)(r)?(s.type(r||Object),s.itemSchema().set(e,t)):s.set(e,t)})),this}}function Fr(e,t){return new Jr({status:e,model:t}).build()}function Vr(e){return Fr().ContentType(e)}function Wr(e=!0){return gt(((t,r)=>{switch((0,m.decoratorTypeOf)(r)){case m.DecoratorTypes.METHOD:t.operation.deprecated(e);break;case m.DecoratorTypes.CLASS:(0,m.decorateMethodsOf)(r[0],Wr(e));break;case m.DecoratorTypes.PARAM:t.parameter.set("deprecated",e);break;case m.DecoratorTypes.PROP:t.schema.set("deprecated",e);break;default:throw new m.UnsupportedDecoratorType(Wr,r)}}))}function Xr(e,t){return void 0!==t&&(e={[e]:t}),void 0===t&&(0,m.isString)(e)&&(e={[e]:{type:"string"}}),Fr().Headers(e)}function zr(e){const t=new J,r={},s=(n,i,o)=>{const a=y.from(n,i,o);switch(a.decoratorType){case m.DecoratorTypes.PARAM:a.parameter.in(e);break;case m.DecoratorTypes.METHOD:t.in(e),a.operation.addParameter(-1,t),t.schema(M.from(r));break;case m.DecoratorTypes.CLASS:(0,m.decorateMethodsOf)(n,s);break;default:throw new m.UnsupportedDecoratorType(zr,[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 Yr(e){return(...t)=>{const[r,s,n]=t,i=m.Metadata.getParamTypes(r,s)[n]===Array,o=[e="object"==typeof e?void 0:e,!i&&"0"].filter(Boolean).join(".");(0,m.useDecorators)(zr(B.FILES),Sr(o),(0,m.useMethodDecorators)(Fr(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"),Hr("multipart/form-data")))(...t)}}function Qr(e,t){return Fr().Location(e,t)}const Zr=new Set([...Object.keys(e).filter((t=>t!==e.CUSTOM)).map((e=>e.toLowerCase()))]);function es(e){let t,r;const s=e.filter((e=>"string"==typeof e&&Zr.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 ts extends Gr{constructor(){super(...arguments),this.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 rs(...e){const t=es(e);return new ts(t).build()}function ss(e){return gt(((t,r)=>{if(t.decoratorType!==m.DecoratorTypes.METHOD)throw new m.UnsupportedDecoratorType(ss,r);t.operation.operationId(e)}))}function ns(e,t="/"){return gt(((r,s)=>{if(r.decoratorType!==m.DecoratorTypes.METHOD)throw new m.UnsupportedDecoratorType(ns,s);r.operation.addOperationPath(e.toUpperCase(),t)}))}function is(){return hr("partial")}function os(e){return gt(((t,r)=>{if(t.decoratorType!==m.DecoratorTypes.CLASS)throw new m.UnsupportedDecoratorType(os,r);t.path=e}))}function as(t){return rs(e.PUBLISH,t)}function cs(...e){const{status:t,url:r,meta:s}=e.reduce(((e,t)=>(0,m.isNumber)(t)?(e.status=t,e):(0,m.isString)(t)?(e.url=t,e):(e.meta=t,e)),{status:302,url:"",meta:{}});return(0,m.useDecorators)(Fr(t).Location(r,s),gt((e=>{e.operation?.setRedirection(t)})))}function ps(t="/",...r){return rs(...[e.ALL,t].concat(r))}function us(t="/",...r){return rs(...[e.GET,t].concat(r))}function hs(t="/",...r){return rs(...[e.POST,t].concat(r))}function ls(t="/",...r){return rs(...[e.PUT,t].concat(r))}function ms(t="/",...r){return rs(...[e.DELETE,t].concat(r))}function ds(t="/",...r){return rs(...[e.HEAD,t].concat(r))}function fs(t="/",...r){return rs(...[e.PATCH,t].concat(r))}function gs(t="/",...r){return rs(...[e.OPTIONS,t].concat(r))}function ys(e,...t){return gt(((r,s)=>{switch(r.decoratorType){case m.DecoratorTypes.METHOD:Array.isArray(e)?r.operation.security(e):r.operation.addSecurityScopes(e,t);break;case m.DecoratorTypes.CLASS:Array.isArray(e)?(0,m.decorateMethodsOf)(s[0],ys(e)):(0,m.decorateMethodsOf)(s[0],ys(e,...t));break;default:throw new m.UnsupportedDecoratorType(ys,s)}}))}function Os(e,t){return Fr(e,t)}function Ss(t){return rs(e.SUBSCRIBE,t)}function bs(e){return gt(((t,r)=>{if(t.decoratorType!==m.DecoratorTypes.METHOD)throw new m.UnsupportedDecoratorType(bs,r);t.operation.summary(e)}))}function Rs(...e){return gt(((t,r)=>{switch(t.decoratorType){case m.DecoratorTypes.METHOD:t.operation.addTags(function(e){return e.map((e=>"string"==typeof e?{name:e}:e))}(e));break;case m.DecoratorTypes.CLASS:(0,m.decorateMethodsOf)(r[0],Rs(...e));break;default:throw new m.UnsupportedDecoratorType(Rs,r)}}))}function As(e,t){return(0,m.StoreSet)("view",{path:e,options:t})}function Es(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 Ts{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 Es(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]}}function Ps(...e){return Nr().allOf(e)}function vs(...e){return Nr().any(...e)}function Cs(...e){return Nr().anyOf(e)}function xs(){return Nr(Boolean)}function $s(){return Nr(Array)}function Ms(){return Nr(Map).unknown(!0)}function ws(){return Nr(Array).uniqueItems(!0)}function _s(){return Nr(Date).format(Qt.DATE)}function Ns(){return Nr(Date).format(Qt.DATE_TIME)}function Is(){return Nr(Date).format(Qt.TIME)}function Ds(){return Nr(String).format(Qt.EMAIL)}function Ls(e){const t=Ir().enum(e);return b.set(e,t),t}function ks(){return Nr(Number).integer()}function js(e){try{if(e())return y.from(e()).schema}catch(e){}return new he(e)}function Hs(){return Nr(Number)}function Gs(e={}){return Nr(Object).properties(e)}function qs(...e){return Nr().oneOf(e)}function Bs(){return Nr(String).format(Qt.URI)}function Us(){return Nr(String).format(Qt.URL)}const Ks=(0,m.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)),Js=(0,m.mergeReducerBuilder)(((e,t)=>e.in===t.in&&e.name===t.name)),Fs=(0,m.mergeReducerBuilder)(((e,t)=>!!Object.keys(t).find((t=>!!e[t])))),Vs=(0,m.mergeReducerBuilder)(((e,t)=>e.name===t.name)),Ws={security:Fs,parameters:Js,oneOf:Ks,anyOf:Ks,allOf:Ks,tags:Vs};function Xs(e,t){return(0,m.deepMerge)(e,t,{reducers:Ws,cleanUndefinedProps:!0})}const zs=new Map;function Ys(e,t={}){if(t={specType:se.OPENAPI,...t,tags:[],paths:{},channels:{},components:{},operationIdFormatter:t.operationIdFormatter||ht(t.operationIdPattern),root:!1},(0,m.isArray)(e)){let r={};return t={...t,append(e){r=Xs(r,e)}},e.forEach((({token:e,...r})=>{const s=Ys(e,{...t,...r});t.append(s)})),r}return function(e,t,r){zs.has(e)||zs.set(e,new Map);const s=zs.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,m.cleanObject)({name:r.schema.getName(),description:r.schema.get("description")})]},p("generate",[r],t)}(e,t)))}function Qs(e){return e.startsWith("3.")?se.OPENAPI:se.SWAGGER}function Zs(e){return"openapi"in e?se.OPENAPI:se.SWAGGER}function en(e){const{title:t,description:r,version:s,termsOfService:n,contact:i,license:o}=e;return(0,m.cleanObject)({version:s,title:t,description:r,termsOfService:n,contact:i,license:o})}function tn(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:d,responses:f,securityDefinitions:g,externalDocs:y}=e;return{swagger:r,consumes:(0,m.uniq)([...s,...u]),produces:(0,m.uniq)([...h]),info:en((0,m.getValue)(e,"info",{})),paths:n,host:a,basePath:c,schemes:p,definitions:l,parameters:d,responses:f,security:i,securityDefinitions:g,tags:o,externalDocs:y}}function rn(e,{specVersion:t}){const{servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}=e;return{openapi:t,info:en((0,m.getValue)(e,"info",{})),servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}}function sn(e,{fileSpec:t,acceptMimes:r,specVersion:s,version:n}){const i={specVersion:s=s||(0,m.getValue)(e,"openapi",(0,m.getValue)(e,"swagger","2.0")),acceptMimes:r};switch(Qs(s)){case se.OPENAPI:e=rn(e,i),t=t?rn(t,i):t;break;default:case se.SWAGGER:e=tn(e,i),t=t?tn(t,i):t}return e=Xs(e,t),(0,m.setValue)(e,"info.title",(0,m.getValue)(e,"info.title","Api documentation")),(0,m.setValue)(e,"info.version",(0,m.getValue)(e,"info.version",n)),e}const nn=["get","put","post","delete","options","head","patch","trace"],on=["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],an=["type","items"],cn=/^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/,pn={APPLICATION_X_WWW_URLENCODED:"application/x-www-form-urlencoded",MULTIPART_FORM_DATA:"multipart/form-data"};function un(e){if(Array.isArray(e))e.forEach(un);else if("object"==typeof e)for(let t in e)"$ref"===t?e.$ref=e.$ref.replace("#/components/schemas/","#/definitions/").replace("#/components/","#/x-components/"):un(e[t])}function hn(e){return new RegExp(cn,"i").test(e)}function ln(e){const t=Object.keys(pn).map((e=>pn[e]));return Object.keys(e).filter((e=>t.indexOf(e)>-1||hn(e)))}function mn(e){return Object.entries(e).reduce(((e,[t,r])=>{const s=function(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}}}(r);return s&&(e[t]=s),e}),{})}function dn(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 fn{constructor(e){this.spec=JSON.parse(JSON.stringify(e))}convertInfos(){const e=this.spec.servers&&this.spec.servers[0];return e?dn(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,un(this.spec)),delete this.spec.servers,delete this.spec.openapi,delete this.spec["x-components"],(0,m.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(nn.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=ln(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=ln(t)[0],delete i.content,[pn.APPLICATION_X_WWW_URLENCODED,pn.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,on),this.copySchemaProperties(t,an),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&&hn(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=mn(this.spec.components.securitySchemes),delete this.spec.components.securitySchemes)}}function gn(e){return new fn(e).convert()}function yn({tokens:e,...t}){const{version:r="1.0.0",acceptMimes:s,fileSpec:n={},specVersion:i}=t,o=sn((0,m.getValue)(t,"spec",{}),{fileSpec:n,version:r,specVersion:i,acceptMimes:s}),a=Zs(o),c=Xs(o,Ys(e,t));return t.sortPaths&&(c.paths=Object.fromEntries(Object.entries(c.paths).sort((([e],[t])=>e.localeCompare(t))))),a===se.SWAGGER?gn(c):c}const On="$cache:schemes";function Sn(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(On)||new Map,s=function(e){return JSON.stringify(e)}(t);if(!r.has(s)){const n=p("schema",[e.schema],t);Object.keys((0,m.getValue)(t,"components.schemas",{})).length&&(n.definitions=t.components.schemas),r.set(s,n)}return e.store.set(On,r),r.get(s)}(r,t)}function bn(e,t={}){const r=e.isStore?e:z(e),s=Es(t.basePath,r.path);let n=[];return t.withChildren&&(n=r.get("childrenControllers",[]).reduce(((e,r)=>e.concat(bn(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 Ts({basePath:s,token:e,endpoint:n,operationPath:t}))})),r}),n)}function Rn(e){const t=e.isStore?e:z(e);if(!t.$properties){const e=Q(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 An(e,t={}){const r=Rn(e),s=new Map;return r.forEach(((e,r)=>{!t.withIgnoredProps&&Ne(e.itemSchema,t)||s.set(r,e)})),s}})(),o})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("change-case"),require("@tsed/core"),require("@tsed/hooks")):"function"==typeof define&&define.amd?define(["change-case","@tsed/core","@tsed/hooks"],t):"object"==typeof exports?exports["@tsed/schema"]=t(require("change-case"),require("@tsed/core"),require("@tsed/hooks")):e["@tsed/schema"]=t(e["change-case"],e["@tsed/core"],e["@tsed/hooks"])}(self,((e,t,r)=>(()=>{"use strict";var s={14:(e,t,r)=>{e.exports=r(808)},91: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}},385:(e,t,r)=>{const s=r(91),n=r(227),{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],g=r.capture?"":"?:",y=s.globChars(r.windows),O=s.extglobChars(y),{DOT_LITERAL:S,PLUS_LITERAL:b,SLASH_LITERAL:R,ONE_CHAR:A,DOTS_SLASH:E,NO_DOT:T,NO_DOT_SLASH:P,NO_DOTS_SLASH:v,QMARK:C,QMARK_NO_DOT:x,STAR:$,START_ANCHOR:M}=y,w=e=>`(${g}(?:(?!${M}${e.dot?E:S}).)*?)`,_=r.dot?"":T,N=r.dot?C:x;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,G=d;const q=()=>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"===G.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,-G.output.length),G.type="star",G.value="*",G.output=I,D.output+=G.output)}if(L.length&&"paren"!==e.type&&!O[e.value]&&(L[L.length-1].inner+=e.value),(e.value||e.output)&&F(e),G&&"text"===G.type&&"text"===e.type)return G.value+=e.value,void(G.output=(G.output||"")+e.value);e.prev=G,f.push(e),G=e},Y=(e,t)=>{const s={...O[t],conditions:1,inner:""};s.prev=G,s.parens=D.parens,s.output=D.output;const n=(r.capture?"(":"")+s.open;W("parens"),z({type:e,value:t,output:D.output?"":A}),z({type:"paren",extglob:!0,value:U(),output:n}),L.push(s)},Q=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||q()||/^\)+$/.test(K()))&&(t=e.close=`)$))${s}`),"bos"===e.prev.type&&q()&&(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?C.repeat(i.length):""):0===o?N+(i?C.repeat(i.length):""):C.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(;!q();){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||"["===G.value||"[^"===G.value)){if(!1!==r.posix&&":"===H){const e=G.value.slice(1);if(e.includes("[")&&(G.posix=!0,e.includes(":"))){const e=G.value.lastIndexOf("["),t=G.value.slice(0,e),r=G.value.slice(e+2),s=o[r];if(s){G.value=t+s,D.backtrack=!0,U(),d.output||1!==f.indexOf(G)||(d.output=A);continue}}}("["===H&&":"!==B()||"-"===H&&"]"===B())&&(H=`\\${H}`),"]"!==H||"["!==G.value&&"[^"!==G.value||(H=`\\${H}`),!0===r.posix&&"!"===H&&"["===G.value&&(H="^"),G.value+=H,F({value:H});continue}if(1===D.quotes&&'"'!==H){H=n.escapeRegex(H),G.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){Q(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||G&&"bracket"===G.type&&1===G.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=G.value.slice(1);if(!0===G.posix||"^"!==e[0]||e.includes("/")||(H=`/${H}`),G.value+=H,F({value:H}),!1===r.literalBrackets||n.hasRegexChars(e))continue;const t=n.escapeRegex(G.value);if(D.output=D.output.slice(0,-G.value.length),!0===r.literalBrackets){D.output+=t,G.value=t;continue}G.value=`(${g}${t}|${G.value})`,D.output+=G.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"===G.type&&D.index===D.start+1){D.start=D.index+1,D.consumed="",D.output="",f.pop(),G=d;continue}z({type:"slash",value:H,output:R});continue}if("."===H){if(D.braces>0&&"dot"===G.type){"."===G.value&&(G.output=S);const e=k[k.length-1];G.type="dots",G.output+=H,G.value+=H,e.dots=!0;continue}if(D.braces+D.parens===0&&"bos"!==G.type&&"slash"!==G.type){z({type:"text",value:H,output:S});continue}z({type:"dot",value:H,output:S});continue}if("?"===H){if((!G||"("!==G.value)&&!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Y("qmark",H);continue}if(G&&"paren"===G.type){const e=B();let t=H;if("<"===e&&!n.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===G.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),z({type:"text",value:H,output:t});continue}if(!0!==r.dot&&("slash"===G.type||"bos"===G.type)){z({type:"qmark",value:H,output:x});continue}z({type:"qmark",value:H,output:C});continue}if("!"===H){if(!0!==r.noextglob&&"("===B()&&("?"!==B(2)||!/[!=<:]/.test(B(3)))){Y("negate",H);continue}if(!0!==r.nonegate&&0===D.index){V();continue}}if("+"===H){if(!0!==r.noextglob&&"("===B()&&"?"!==B(2)){Y("plus",H);continue}if(G&&"("===G.value||!1===r.regex){z({type:"plus",value:H,output:b});continue}if(G&&("bracket"===G.type||"paren"===G.type||"brace"===G.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(G&&("globstar"===G.type||!0===G.star)){G.type="star",G.star=!0,G.value+=H,G.output=I,D.backtrack=!0,D.globstar=!0,J(H);continue}let t=K();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Y("star",H);continue}if("star"===G.type){if(!0===r.noglobstar){J(H);continue}const s=G.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&&q()){G.type="globstar",G.value+=H,G.output=w(r),D.output=G.output,D.globstar=!0,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&!o&&q()){D.output=D.output.slice(0,-(s.output+G.output).length),s.output=`(?:${s.output}`,G.type="globstar",G.output=w(r)+(r.strictSlashes?")":"|$)"),G.value+=H,D.globstar=!0,D.output+=s.output+G.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+G.output).length),s.output=`(?:${s.output}`,G.type="globstar",G.output=`${w(r)}${R}|${R}${e})`,G.value+=H,D.output+=s.output+G.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}if("bos"===s.type&&"/"===t[0]){G.type="globstar",G.value+=H,G.output=`(?:^|${R}|${w(r)}${R})`,D.output=G.output,D.globstar=!0,J(H+U()),z({type:"slash",value:"/",output:""});continue}D.output=D.output.slice(0,-G.output.length),G.type="globstar",G.output=w(r),G.value+=H,D.output+=G.output,D.globstar=!0,J(H);continue}const s={type:"star",value:H,output:I};!0!==r.bash?!G||"bracket"!==G.type&&"paren"!==G.type||!0!==r.regex?(D.index!==D.start&&"slash"!==G.type&&"dot"!==G.type||("dot"===G.type?(D.output+=P,G.output+=P):!0===r.dot?(D.output+=v,G.output+=v):(D.output+=_,G.output+=_),"*"!==B()&&(D.output+=A,G.output+=A)),z(s)):(s.output=H,z(s)):(s.output=".*?","bos"!==G.type&&"slash"!==G.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"!==G.type&&"bracket"!==G.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:g,START_ANCHOR:y}=s.globChars(r.windows),O=r.dot?d:m,S=r.dot?f:m,b=r.capture?"":"?:";let R=!0===r.bash?".*?":g;r.capture&&(R=`(${R})`);const A=e=>!0===e.noglobstar?R:`(${b}(?:(?!${y}${e.dot?l:c}).)*?)`,E=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+A(r);case"**/*":return`(?:${O}${A(r)}${u})?${S}${h}${R}`;case"**/*.*":return`(?:${O}${A(r)}${u})?${S}${R}${c}${h}${R}`;case"**/.*":return`(?:${O}${A(r)}${u})?${c}${h}${R}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=E(t[1]);if(!r)return;return r+c+t[2]}}},T=n.removePrefix(e,{negated:!1,prefix:""});let P=E(T);return P&&!0!==r.strictSlashes&&(P+=`${u}?`),P},e.exports=l},808:(e,t,r)=>{const s=r(133),n=r(385),i=r(227),o=r(91),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},133:(e,t,r)=>{const s=r(227),{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:g,CHAR_RIGHT_PARENTHESES:y,CHAR_RIGHT_SQUARE_BRACKET:O}=r(91),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,A=!0===r.parts||!0===r.scanToEnd,E=[],T=[],P=[];let v,C,x=e,$=-1,M=0,w=0,_=!1,N=!1,I=!1,D=!1,L=!1,k=!1,j=!1,H=!1,G=!1,q=0,B={value:"",depth:0,isGlob:!1};const U=()=>$>=R,K=()=>(v=C,x.charCodeAt(++$));for(;$<R;){let e;if(C=K(),C!==o){if(!0===k||C===h){for(q++;!0!==U()&&(C=K());)if(C!==o)if(C!==h){if(!0!==k&&C===c&&(C=K())===c){if(_=B.isBrace=!0,I=B.isGlob=!0,G=!0,!0===A)continue;break}if(!0!==k&&C===a){if(_=B.isBrace=!0,I=B.isGlob=!0,G=!0,!0===A)continue;break}if(C===g&&(q--,0===q)){k=!1,_=B.isBrace=!0,G=!0;break}}else q++;else j=B.backslashes=!0,K();if(!0===A)continue;break}if(C!==u){if(!0!==r.noext&&!0==(C===d||C===i||C===n||C===f||C===p)&&x.charCodeAt($+1)===l){if(I=B.isGlob=!0,D=B.isExtglob=!0,G=!0,!0===A){for(;!0!==U()&&(C=K());)if(C!==o){if(C===y){I=B.isGlob=!0,G=!0;break}}else j=B.backslashes=!0,C=K();continue}break}if(C===n){if(v===n&&(L=B.isGlobstar=!0),I=B.isGlob=!0,G=!0,!0===A)continue;break}if(C===f){if(I=B.isGlob=!0,G=!0,!0===A)continue;break}if(C===m)for(;!0!==U()&&(e=K());)if(e!==o){if(e===O){if(N=B.isBracket=!0,I=B.isGlob=!0,G=!0,!0===A)continue;break}}else j=B.backslashes=!0,K();if(!0===r.nonegate||C!==p||$!==M){if(!0!==r.noparen&&C===l){if(I=B.isGlob=!0,!0===A){for(;!0!==U()&&(C=K());)if(C!==l){if(C===y){G=!0;break}}else j=B.backslashes=!0,C=K();continue}break}if(!0===I){if(G=!0,!0===A)continue;break}}else H=B.negated=!0,M++}else{if(E.push($),T.push(B),B={value:"",depth:0,isGlob:!1},!0===G)continue;if(v===c&&$===M+1){M+=2;continue}w=$+1}}else j=B.backslashes=!0,C=K(),C===h&&(k=!0)}!0===r.noext&&(D=!1,I=!1);let J=x,F="",V="";M>0&&(F=x.slice(0,M),x=x.slice(M),w-=M),J&&!0===I&&w>0?(J=x.slice(0,w),V=x.slice(w)):!0===I?(J="",V=x):J=x,J&&""!==J&&"/"!==J&&J!==x&&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(C)||T.push(B),W.tokens=T),!0===r.parts||!0===r.tokens){let t;for(let s=0;s<E.length;s++){const n=t?t+1:M,i=E[s],o=e.slice(n,i);r.tokens&&(0===s&&0!==M?(T[s].isPrefix=!0,T[s].value=F):T[s].value=o,b(T[s]),W.maxDepth+=T[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&&(T[T.length-1].value=s,b(T[T.length-1]),W.maxDepth+=T[T.length-1].depth)}W.slashes=E,W.parts=P}return W}},227:(e,t,r)=>{const{REGEX_BACKSLASH:s,REGEX_REMOVE_BACKSLASH:n,REGEX_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_GLOBAL:o}=r(91);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(/.*\//,"")},725:(e,t,r)=>{var s=r(880);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}},414:e=>{e.exports=t},171:e=>{e.exports=r},579:t=>{t.exports=e},880: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"}')}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={exports:{}};return s[e](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};i.r(o),i.d(o,{ARRAY_PROPERTIES:()=>Ie,AcceptMime:()=>Kr,AdditionalProperties:()=>Dt,All:()=>fs,AllOf:()=>Lt,Allow:()=>jt,Any:()=>Ht,AnyOf:()=>Gt,ArrayOf:()=>vt,BOOLEAN_PROPERTIES:()=>_e,COMMON_PROPERTIES:()=>Le,Children:()=>Et,CollectionContains:()=>xt,CollectionOf:()=>Pt,Const:()=>qt,Consumes:()=>Jr,ContentType:()=>Zr,Converter:()=>Rn,CustomKey:()=>Bt,CustomKeys:()=>Ut,DateFormat:()=>cr,DateTime:()=>ar,DecoratorContext:()=>Fr,Default:()=>Kt,DefaultMsg:()=>Ft,Delete:()=>Ss,Deprecated:()=>es,Description:()=>Vt,Discriminator:()=>_,DiscriminatorKey:()=>Wt,DiscriminatorValue:()=>Tt,Email:()=>or,EndpointMetadata:()=>F,Enum:()=>Xt,ErrorMsg:()=>Jt,Example:()=>zt,Examples:()=>Yt,ExclusiveMaximum:()=>er,ExclusiveMinimum:()=>sr,For:()=>_r,Format:()=>ir,ForwardGroups:()=>lr,GenericOf:()=>qr,Generics:()=>Br,Get:()=>gs,Groups:()=>yr,HTTP_STATUS_MESSAGES:()=>ot,Head:()=>bs,Header:()=>ts,Hidden:()=>Or,Ignore:()=>Sr,In:()=>rs,InFile:()=>ss,Integer:()=>br,JSON_TYPES:()=>C,JsonClassStore:()=>L,JsonEntitiesContainer:()=>R,JsonEntityComponent:()=>E,JsonEntityFn:()=>At,JsonEntityStore:()=>A,JsonFormatTypes:()=>nr,JsonLazyRef:()=>ge,JsonMap:()=>H,JsonMedia:()=>B,JsonMethodStore:()=>J,JsonOperation:()=>K,JsonOperationPathsMap:()=>re,JsonOperationRoute:()=>Ms,JsonParameter:()=>z,JsonParameterStore:()=>Y,JsonParameterTypes:()=>V,JsonPropertyStore:()=>Z,JsonRequestBody:()=>ht,JsonResponse:()=>U,JsonSchema:()=>D,LabelledAs:()=>Rr,Location:()=>ns,MANY_OF_PROPERTIES:()=>Me,MapOf:()=>Ct,Max:()=>Zt,MaxItems:()=>Mt,MaxLength:()=>Ar,MaxProperties:()=>wt,Maximum:()=>Qt,Min:()=>rr,MinItems:()=>_t,MinLength:()=>Er,MinProperties:()=>Nt,Minimum:()=>tr,MultipleOf:()=>Tr,NUMBER_PROPERTIES:()=>Ne,Name:()=>Pr,Nullable:()=>vr,OBJECT_PROPERTIES:()=>De,OPERATION_HTTP_VERBS:()=>p,OPERATION_WS_VERBS:()=>u,OneOf:()=>Cr,Operation:()=>cs,OperationId:()=>ps,OperationPath:()=>us,OperationVerbs:()=>a,Optional:()=>xr,Options:()=>As,ParamMetadata:()=>Q,Partial:()=>hs,Patch:()=>Rs,Path:()=>ls,Pattern:()=>$r,Post:()=>ys,Produces:()=>Ur,Property:()=>kt,PropertyMetadata:()=>ee,Publish:()=>ms,Put:()=>Os,ReadOnly:()=>Mr,RecordOf:()=>Nr,Redirect:()=>ds,Required:()=>Ir,RequiredGroups:()=>Dr,Returns:()=>Qr,STRING_PROPERTIES:()=>we,Schema:()=>wr,Security:()=>Es,SpecTypes:()=>ce,Status:()=>Ts,Subscribe:()=>Ps,Summary:()=>vs,Tags:()=>Cs,TimeFormat:()=>pr,Title:()=>Lr,TypeError:()=>kr,UniqueItems:()=>It,Uri:()=>ur,Url:()=>hr,View:()=>xs,WriteOnly:()=>jr,allOf:()=>ws,alterIgnore:()=>je,alterOneOf:()=>Fe,alterRequiredGroups:()=>Be,any:()=>_s,anyMapper:()=>be,anyOf:()=>Ns,array:()=>Ds,boolean:()=>Is,buildPath:()=>y,channelsMapper:()=>ae,classMapper:()=>Re,concatParameters:()=>dt,concatPath:()=>$s,createRef:()=>Oe,createRefName:()=>ye,date:()=>js,datetime:()=>Hs,defineStatusModel:()=>Wr,discriminatorMappingMapper:()=>Ae,email:()=>qs,enums:()=>Bs,enumsMapper:()=>Ee,enumsRegistry:()=>P,execMapper:()=>d,execOneOfMapper:()=>g,formatParameterType:()=>W,from:()=>Hr,generateSpec:()=>En,genericsMapper:()=>Te,getComputedType:()=>v,getGenericsMap:()=>he,getInheritedStores:()=>se,getJsonEntityStore:()=>te,getJsonPathParameters:()=>ft,getJsonSchema:()=>Pn,getJsonSchemaMapper:()=>m,getJsonType:()=>x,getOperationId:()=>Ot,getOperationsRoutes:()=>vn,getOperationsStores:()=>ne,getProperties:()=>xn,getPropertiesStores:()=>Cn,getSpec:()=>sn,getSpecType:()=>nn,getSpecTypeFromSpec:()=>on,getStatusConstant:()=>at,getStatusMessage:()=>ct,getStatusModel:()=>Xr,hasMapper:()=>f,inheritedClassMapper:()=>ve,integer:()=>Us,isParameterType:()=>X,isRedirectionStatus:()=>j,isSuccessStatus:()=>k,itemMapper:()=>Ce,lazyRef:()=>Ks,lazyRefMapper:()=>xe,makeOf:()=>pe,map:()=>Ls,mapAliasedProperties:()=>Ke,mapGenericsOptions:()=>le,mapHeaders:()=>G,mapMapper:()=>$e,mapOpenSpec:()=>un,mapOpenSpec2:()=>cn,mapOpenSpec3:()=>pn,mapOpenSpecInfo:()=>an,mapOperationOptions:()=>os,matchGroups:()=>gr,mergeSpec:()=>tn,messageMapper:()=>ue,nullableMapper:()=>ke,nullableMapperOpenApi:()=>Qe,number:()=>Js,object:()=>Fs,objectMapper:()=>He,ofMapper:()=>Ge,oneOf:()=>Vs,operationIdFormatter:()=>yt,operationInFilesMapper:()=>Ze,operationInParameterMapper:()=>et,operationInParametersMapper:()=>tt,operationInQueryMapper:()=>st,operationMapper:()=>pt,operationMediaMapper:()=>ut,operationRequestBodyMapper:()=>lt,operationResponseMapper:()=>mt,parameters:()=>Ys,pathsMapper:()=>Rt,payloadMapper:()=>de,popGenerics:()=>me,propertiesMapper:()=>qe,registerJsonSchemaMapper:()=>l,removeHiddenOperation:()=>ie,requiredMapper:()=>Ue,responsePayloadMapper:()=>fe,schemaMapper:()=>Xe,schemesReducer:()=>zs,security:()=>Qs,serializeEnum:()=>$,serializeEnumValues:()=>M,set:()=>ks,string:()=>Gr,tagsReducer:()=>Zs,time:()=>Gs,toJsonMapCollection:()=>q,toJsonRegex:()=>w,toRef:()=>Se,transformInformation:()=>bn,transformSecurity:()=>Sn,transformToOS2:()=>An,uri:()=>Ws,url:()=>Xs,withErrorMsg:()=>$t,wrapEnumsMapper:()=>ze});var a,c=i(579);!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"}(a||(a={}));const p=[a.ALL,a.GET,a.POST,a.PUT,a.PATCH,a.HEAD,a.DELETE,a.OPTIONS,a.TRACE,a.CUSTOM],u=[a.PUBLISH,a.SUBSCRIBE],h=new Map;function l(e,t,r){return h.set(r?`${r}:${e}`:e,t)}function m(e,t){const r=h.get(`${t?.specType}:${e}`)||h.get(e);if(r)return r;throw new Error(`JsonSchema ${e} mapper doesn't exists`)}function d(e,t,r,s){return m(e,r)(...t,r,s)}function f(e){return h.has(e)}function g(e,t){return e.find((e=>h.has(`${t?.specType}:${e}`)))||e.find((e=>h.has(e)))}function y(e){return e.split("/").filter(Boolean).join("/")}var O=i(414);function S(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 b(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;const R=new Map;class A{constructor(e){this.isStore=!0;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,O.nameOf)(this.token)}get isCollection(){return!!this.collectionType}get isArray(){return(0,O.isArrayOrArrayClass)(this.collectionType)}get discriminatorAncestor(){const e=(0,O.ancestorsOf)(this.target).find((e=>A.from(e).schema.isDiscriminator));return e&&A.from(e)}get isPrimitive(){return(0,O.isPrimitiveOrPrimitiveClass)(this._type)}get isDate(){return(0,O.isDate)(this.computedType)}get isObject(){return(0,O.isObject)(this.computedType)}get isClass(){return(0,O.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,O.prototypeOf)(e[0]));const r=O.Store.from(...e);if(!r.has("JsonEntityStore")){const s=(0,O.decoratorTypeOf)(e),n=new(R.get(s))({store:r,decoratorType:s,target:(0,O.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,O.descriptorOf)(e,t))}static get(e,t,r){return A.from((0,O.prototypeOf)(e),t,r)}isGetterOnly(){return(0,O.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,O.isCollection)(e)?this.collectionType=e:(this._type=e,this._type&&(0,O.isPlainObject)(this._type)&&(this._type=String))}getBestType(){return this.itemSchema.hasDiscriminator?this.itemSchema.discriminator().base:(0,O.isClassObject)(this.type)?this.itemSchema.getTarget():(0,O.isArrowFn)(this.type)?this.type():this.type}}function E(e){return t=>{R.set(e,t)}}var T=i(171);const P=new Map;function v(e){return(0,O.isPromise)(e)||e===Function?Object:(0,O.isClass)(e)||(0,O.isSymbol)(e)||(0,O.isPrimitiveOrPrimitiveClass)(e)||(0,O.isClassObject)(e)||(0,O.isDate)(e)||(0,O.isCollection)(e)?(0,O.classOf)(e):(0,O.isArrowFn)(e)?e():e}const C=["string","number","integer","boolean","object","array","null","any"];function x(e){return null===e?"null":(0,O.isPrimitiveOrPrimitiveClass)(e)?C.indexOf(e)>-1?e:"string"==typeof e?"file"===e?"file":"generic":(0,O.primitiveOf)(e):e===Array?"array":(0,O.isArray)(e)?e.map(x):e===Set?"array":(0,O.isDate)(e)||(0,O.isBuffer)(e)?"string":"object"}const $=e=>(0,O.isObject)(e)&&null!==e?Object.entries(e).reduce(((e,[t,r])=>isNaN(+t)?e.concat(r):e),[]):e;function M(e){const t=e.reduce(((e,t)=>e.concat($(t))),[]),r=t.reduce(((e,t)=>e.add((e=>null===e?"null":typeof e)(t))),new Set);return{values:(0,O.uniq)(t),types:r}}function w(e){return String(e).replace(/^(\/)(.*)(\/)$/,"$2")}class _{constructor({base:e,propertyName:t,types:r,values:s}={}){this.values=new Map,this.types=new Map,Object.assign(this,(0,O.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 N(e){return e instanceof D?e:Object.entries(e).reduce(((e,[t,r])=>(e[w(t)]=I(r),e)),{})}function I(e){return(0,O.isArray)(e)?e.map(I):e.isStore||e.$isJsonDocument||e.isLazyRef?e:(0,O.classOf)(e)!==Object&&(0,O.isClass)(e)?A.from(e).schema:(0,O.isObject)(e)?D.from(e):(0,O.isPrimitiveClass)(e)?D.from({type:e}):e}class D extends Map{#e;#t;#r;#s;#n;#i;#o;#a;#c;#p;constructor(e={}){super(),this.$kind="schema",this.$isJsonDocument=!0,this.$hooks=new T.Hooks,this.$required=new Set,this.$allow=[],this.$forwardGroups=!1,this.$ignore=!1,this.isDiscriminatorKey=!1,this.isDiscriminator=!1,this.#e=!1,this.#t=null,this.#s=[],this.#n=new Map,this.#a=!1,this.#c=!1,this.#p=!1,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,O.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,O.ancestorsOf)(this.#o).find((e=>A.from(e).schema.isDiscriminator));return e&&A.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 D(e)}nullable(e){this.#e=e}itemSchema(e={}){return this.#i=this.#i||I(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 _({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 D({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",I(e)),this}contains(e){return super.set("contains",I(e)),this}examples(e){return super.set("examples",e),this}example(...e){return this.examples(e)}items(e){return super.set("items",this.#i=I(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,O.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",N(e)),this}addProperty(e,t){const r=this.get("properties")||{};return r[e]=t,super.set("properties",N(r)),this}patternProperties(e){return super.set("patternProperties",N(e)),this}additionalProperties(e){return super.set("additionalProperties",I(e)),this}unknown(e=!0){return this.additionalProperties(e)}dependencies(e){return super.set("dependencies",N(e)),this}propertyNames(e){return super.set("propertyNames",I(e)),this}enum(e,...t){if(P.has(e))return this.enum(P.get(e));if(e instanceof D)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}=M([e,t].flat());super.set("enum",r).any(...s)}return this}definitions(e){return super.set("definitions",N(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",I(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",w(e)),this}format(e){return super.set("format",e),this}type(e){switch(e){case"map":case Map:super.set("type",x(e)),this.#o=e,this.#c=!0,this.has("additionalProperties")||super.set("additionalProperties",this.itemSchema({}));break;case"array":case Array:super.set("type",x(e)),this.#o=e,this.#c=!0,this.has("items")||super.set("items",this.itemSchema({}));break;case"set":case Set:super.set("type",x(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",x(e)),this.#o=e,this.has("properties")||super.set("properties",{});break;default:if((0,O.isClass)(e)||(0,O.isFunction)(e))super.set("type",void 0),this.#o=e,this.has("properties")||super.set("properties",{});else{const t=x(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,O.uniq)(e).map((e=>(0,O.isClass)(e)?e:{type:x(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 d("schema",[this],e)}assign(e={}){return(e instanceof D?[...e.entries()]:Object.entries(e)).forEach((([e,t])=>{this.set(e,t)})),e instanceof D&&(this.$selfRequired=e.$selfRequired,this.$allow.push(...e.$allow),e.$required.forEach((e=>{this.$required.add(e)})),this.#t=this.#t?new _(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,O.isFunction)(this[e])&&this[e](t):super.set(e,t),this}getComputedType(){return v(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")||x(this.getComputedType())}getTarget(){return this.#o}getName(){return this.get("name")||((0,O.isClass)(this.#o)?(0,O.nameOf)((0,O.classOf)(this.getComputedType())):"")}clone(){return new D(this)}setManyOf(e,t){let r=t.filter((e=>"null"!==e?.type||(this.nullable(!0),!1))).map(I);if(!(1!==r.length||t[0]instanceof D||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(I)}super.set(e,r);const s=r[0];if(s.isDiscriminator){const e=s.discriminatorAncestor.discriminator(),{propertyName:t}=e;super.set("discriminator",{propertyName:t,mapping:r.reduce(((t,r)=>(e.types.get(r.getTarget())?.forEach((e=>{t[e]=r})),t)),{})}),this.isDiscriminator=!0,this.#t=e}}}let L=class extends A{constructor(){super(...arguments),this.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=D.from({type:this.type})}};L=S([E(O.DecoratorTypes.CLASS)],L);const k=e=>Number(e)&&200<=Number(e)&&Number(e)<300,j=e=>Number(e)&&300<=Number(e)&&Number(e)<400;class H extends Map{constructor(e={}){super(),this.$kind="map",this.$isJsonDocument=!0,this.assign(e)}assign(e={}){return Object.entries(e).forEach((([e,t])=>{(0,O.isFunction)(this[e])?this[e](t):this.set(e,t)})),this}toJSON(e){return d("map",[this],e)}}function G(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,O.cleanObject)(i),t}),{})}function q(e,t=H){return Object.entries(e).reduce(((e,[r,s])=>(e.set(r,new t(s)),e)),new H)}class B extends H{constructor(){super(...arguments),this.$kind="operationMedia",this.groups=[]}schema(e){return this.set("schema",e),this}examples(e){return this.set("examples",e),this}}class U extends H{constructor(e={}){super(e),this.$kind="operationResponse",this.content(e.content||{})}description(e){return this.set("description",e),this}headers(e){return this.set("headers",G(e)),this}content(e){return this.set("content",q(e,B)),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 B),this}isBinary(){return this.getContent().has("application/octet-stream")}}class K extends H{#u;#h;constructor(e={}){super({parameters:[],responses:new H,...e}),this.$kind="operation",this.operationPaths=new Map,this.#h=!1}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,O.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?j(e):this.#h}addResponse(e,t){if((k(e)||j(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,O.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 U}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,O.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,O.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 J=class extends A{constructor(e){super({store:O.Store.fromMethod(e.target,e.propertyKey),descriptor:(0,O.descriptorOf)(e.target,e.propertyKey),...e}),this.parent=A.from(this.target),this.middlewares=[],this.beforeMiddlewares=[],this.afterMiddlewares=[],this.operation=new K,this.children=new Map;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,O.descriptorOf)((0,O.prototypeOf)(e),t),A.from((0,O.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(O.isFunction),this}after(e){return this.afterMiddlewares=this.afterMiddlewares.concat(e).filter(O.isFunction),this}use(e){return this.middlewares=this.middlewares.concat(e).filter(O.isFunction),this}get(e){const t=O.Store.from(this.target).get(e);return(0,O.deepMerge)(t,this.store.get(e))}getParamTypes(){return[...this.children.values()].reduce(((e,t)=>({...e,[t.paramType]:!0})),{})}build(){if(!this._type){let e=O.Metadata.getReturnType(this.target,this.propertyKey);e=(0,O.isPromise)(e)?void 0:e,this.buildType(e)}this._type=this._type||Object,this.parent.children.set(this.propertyName,this),(0,O.isCollection)(this._type)&&(this.collectionType=this._type,delete this._type),this._schema=D.from({type:this.collectionType||this.type}),this.collectionType&&this._schema.itemSchema(this.type),this.parent.schema.addProperty(this.propertyName,this.schema)}};J=S([E(O.DecoratorTypes.METHOD),b("design:paramtypes",[Object])],J);const F=J;var V;function W(e){return String(e).toLowerCase().replace("raw_","").replace("cookies","cookie")}function X(e){return Object.values(V).includes(W(e))}!function(e){e.BODY="body",e.PATH="path",e.QUERY="query",e.HEADER="header",e.COOKIES="cookie",e.FILES="files"}(V||(V={}));class z extends H{constructor(){super(...arguments),this.$kind="operationInParameter",this.nestedGenerics=[]}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",W(e)),this.expression=t,this}required(e){return this.set("required",e),this}schema(e){return this.$schema=e,this}toJSON(e){return d("operationInParameter",[this],e)}}let Y=class extends A{constructor(e){super(e),this.parameter=new z,this.parent=A.fromMethod(this.target,this.propertyKey),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,O.ancestorsOf)(e).reverse().find((e=>(0,O.isMethodDescriptor)(e,t)&&A.fromMethod(e,t).children.size));return s?(A.fromMethod(s,t).children.forEach(((e,t)=>{r[+t]=e})),r):[]}static get(e,t,r){return A.from((0,O.prototypeOf)(e),t,r)}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}getSchema(e){return(0,O.isCollection)(e)||!(0,O.isClass)(e)?D.from({type:e}):A.from(e).schema}build(){if(!this._type){const e=O.Metadata.getParamTypes((0,O.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))}};Y=S([E(O.DecoratorTypes.PARAM),b("design:paramtypes",[Object])],Y);const Q=Y;let Z=class extends A{constructor(){super(...arguments),this.parent=A.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(O.Metadata.getType((0,O.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=D.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 A.from((0,O.prototypeOf)(e),t)}};Z=S([E(O.DecoratorTypes.PROP)],Z);const ee=Z;function te(...e){return A.from(...e)}R.set(O.DecoratorTypes.CLASS,L),R.set(O.DecoratorTypes.PROP,Z),R.set(O.DecoratorTypes.PARAM,Y),R.set(O.DecoratorTypes.METHOD,J);class re extends Map{constructor(){super(...arguments),this.$kind="operationPaths",this.$isJsonDocument=!0,this.getKey=(e,t)=>`${e}-${t}`}setOperationPath(e){const t=this.getKey(e.method,e.path);this.set(t,e)}}function se(e){const t=e.isStore?e:te(e);return t.$inherited||(t.$inherited=(0,O.ancestorsOf)(t.target).reverse().reduce(((e,t)=>e.set(t,te(t))),new Map)),t.$inherited}function ne(e){const t=e.isStore?e:te(e);if(!t.$operations){const e=new re;t.$operations=new Map,se(t).forEach((e=>{e.children.forEach((e=>{e instanceof J&&!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 ie(e){return!e.store.get("hidden")}const oe=[a.PUBLISH,a.SUBSCRIBE];function ae(e,{channels:t,rootPath:r,...s}){const n=y(r+te(e).path);return s={...s,ctrlRootPath:n},[...ne(e).values()].filter(ie).flatMap((e=>{const t=e.operation.getAllowedOperationPath(oe);return 0===t.length?[]:t.map((t=>({operationPath:t,operationStore:e})))})).reduce(function(e){return(t,{operationPath:r,operationStore:s})=>{const n=e.ctrlRootPath||"/",i=r.method.toLowerCase(),o=(0,c.camelCase)(`${i.toLowerCase()} ${s.parent.schema.getName()}`),a=d("message",[s,r],e);return{...t,[n]:{...t[n],[i]:{...t[n]?.[i],operationId:o,message:{oneOf:[...t[n]?.[i]?.message?.oneOf||[],a]}}}}}}(s),t)}var ce;function pe(e,t){return t.length?1===t.length?t[0]:{[e]:t}:null}function ue(e,t,{tags:r=[],defaultTags:s=[],...n}={}){const{path:i,method:o}=t,c=String(i);let p=(0,O.getValue)(n.components,"messages."+i,(0,O.cleanObject)({description:e.operation.get("description"),summary:e.operation.get("summary")}));if(o.toUpperCase()===a.PUBLISH){const r=d("payload",[e,t],n);r&&(p.payload=r);const s=e.operation.getAllowedOperationPath([a.SUBSCRIBE]).map((t=>d("message",[e,t],n))).filter(Boolean),i=pe("oneOf",s);i&&(p["x-response"]=i)}else{const r=d("response",[e,t],n);r&&(p["x-response"]=r)}return n.components.messages=n.components.messages||{},n.components.messages[c]=p,{$ref:`#/components/messages/${c}`}}function he(e,t){return e.reduce(((e,r,s)=>e.set(r,t[s])),new Map)}function le(e){if(e.genericLabels&&e.genericTypes){const{genericLabels:t,genericTypes:r,...s}=e;return{...s,generics:he(t,r)}}return e}function me(e){const[t,...r]=e.nestedGenerics;return{genericTypes:t,nestedGenerics:r}}function de(e,t,r){const s=e.operation.get("parameters").filter((e=>X(e.get("in")))),n=(0,c.pascalCase)([t.path,t.method,"Payload"].join(" "));(0,O.setValue)(r,`components.schemas.${n}`,{});const i=s.map((e=>{const t=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,r),s=d("item",[e.$schema],{...t,...me(e)});switch(e.get("in")){case V.BODY:return s;case V.QUERY:case V.PATH:case V.HEADER:return{type:"object",properties:{[e.get("name")]:s}}}return s}),{}).filter(Boolean);return pe("allOf",i)}function fe(e,t,r){const s=e.operation.getResponses(),n=[],i=[],o=[],a=[];[...s.entries()].forEach((([e,t])=>{const s=d("map",[t],r);if(n.push(+e),i.push(s.description),204!=+e){const{content:e}=s,t=e[Object.keys(e)[0]];o.push(t)}}));const p=(0,c.pascalCase)([t.path,t.method,"Response"].join(" ")),u={type:"object",properties:{status:{type:"number",enum:n},statusText:{type:"string",enum:i}},required:["status"]},h=pe("oneOf",o);h&&(0,O.setValue)(u,"properties.data",h);const l=pe("oneOf",a);return a.length&&(0,O.setValue)(u,"properties.error",l),(0,O.setValue)(r,`components.schemas.${p}`,u),{$ref:`#/components/schemas/${p}`}}l("channels",ae),function(e){e.JSON="jsonschema",e.SWAGGER="swagger2",e.OPENAPI="openapi3",e.ASYNCAPI="asyncapi2"}(ce||(ce={})),l("generate",(function(e,t){const r={channels:d("channels",[e],t)};return r.tags=(0,O.uniqBy)(t.tags,"name"),t.components?.schemas&&Object.keys(t.components.schemas).length&&(r.components={...t.components,schemas:t.components.schemas}),r}),ce.ASYNCAPI),l("message",ue,ce.ASYNCAPI),l("payload",de,ce.ASYNCAPI),l("response",fe,ce.ASYNCAPI);class ge{constructor(e){this.getType=e,this.isLazyRef=!0}get target(){return this.getType()}get schema(){return te(this.getType()).schema}get name(){return(0,O.nameOf)(this.getType())}}function ye(e,t){return t.groups&&t.groups.length?(0,c.pascalCase)(`${e} ${t.groupsName||t.groups.join(" ")}`):e}function Oe(e,t,r){const s=function(e){const{host:t="#/"+([ce.OPENAPI,ce.ASYNCAPI].includes(e.specType)?"components/schemas":"definitions")}=e;return t}(r),n={$ref:`${s}/${e}`},i=t.isReadOnly,o=t.isWriteOnly;return(0,O.cleanObject)({readOnly:!!i||void 0,writeOnly:!!o||void 0,...i||o?{anyOf:[n]}:n})}function Se(e,t,r){const s=ye(e.getName(),r);return t&&(0,O.setValue)(r,`components.schemas.${s}`,t),Oe(s,e,r)}function be(e,t={}){if("object"!=typeof e||null===e)return e;if(e instanceof ge)return d("lazyRef",[e],t);if(e instanceof D&&e.get("enum")instanceof D){const r=e.get("enum");return Se(r,r.toJSON(t),t)}if(e.$kind&&e.$isJsonDocument){const r=d(g([e.$kind,"map"],t),[e],le(t));return e.canRef?Se(e,r,t):r}return d("object",[e],t)}function Re(e,t){const r=A.from(e.class),s=ye(r.schema.getName()||e.getName(),t);if(e.hasGenerics){const{type:s,properties:n,additionalProperties:i,items:o,...a}=e.toJSON(t),c={...d("any",[r.schema],{...t,...me(e),root:!1}),...a};if(c.title){const r=ye(c.title,t);return(0,O.setValue)(t.components,`schemas.${r}`,c),delete c.title,Oe(r,e,t)}return c}return(0,O.getValue)(t,`components.schemas.${s}`)||((0,O.setValue)(t,`components.schemas.${s}`,{}),t.components.schemas[s]=d("any",[r.schema],le({...t,root:!1}))),Oe(s,e,t)}function Ae(e,t,r){if(e.discriminator?.mapping){const t=Object.entries(e.discriminator.mapping),s={};for(const[e,n]of t)s[e]=(0,O.isString)(n)?n:Se(n,null,r).$ref;e.discriminator.mapping=s}return e}function Ee(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 Te(e,t){const{generics:r}=t;if(r&&e.$ref&&r.has(e.$ref)){let s=r.get(e.$ref);if((0,O.isPrimitiveClass)(s))return{type:x(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,O.isClass)(s)){const e={class:s};return 0===t.nestedGenerics.length?d("class",[e],{...t,generics:void 0}):d("schema",[A.from(e.class).schema],{...t,...me(t),root:!1})}}return e}function Pe(e,t){if(t?.type&&t?.$ref){const{$ref:e,...r}=t;t={allOf:[{$ref:e},r]}}return t}function ve(e,{target:t,...r}){const s=Array.from(se(t).entries()).filter((([e])=>(0,O.classOf)(e)!==(0,O.classOf)(t)));if(s.length){const t=s.reduce(((e,[,t])=>(0,O.deepMerge)(e,d("schema",[t.schema],r),{alter:Pe})),{});return(0,O.deepMerge)(t,e,{alter:Pe})}return e}function Ce(e,t){return e&&e.isClass?d("class",[e],t):d("any",[e],t)}function xe(e,t){const r=e.name;if(t.$refs?.find((t=>t===e.target)))return Oe(r,e.schema,t);t.$refs=[...t.$refs||[],e.target];const s=e.getType()&&d("schema",[e.schema],le(t));return Se(e.schema,s,t)}function $e(e,{ignore:t=[],...r}={}){return r=le(r),Array.from(e.entries()).reduce(((e,[s,n])=>(t.includes(s)||(e[s]=d("item",[n],r)),e)),{})}l("any",be),l("class",Re),l("discriminatorMapping",(function(e){return e.discriminator?.mapping&&delete e.discriminator.mapping,e})),l("enums",Ee),l("generics",Te),l("inheritedClass",ve),l("item",Ce),l("lazyRef",xe),l("map",$e);const Me=["oneOf","allOf","anyOf"],we=["minLength","maxLength","pattern","format"],_e=[],Ne=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"],Ie=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains"],De=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains","patternProperties","dependencies"],Le=["const","enum"];function ke(e,t){return t?.isNullable?(e.discriminator||(e.$ref?e=(0,O.cleanObject)({...e,$ref:void 0,anyOf:[{type:"null"},{$ref:e.$ref}]}):Me.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,O.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 je(e,t){if((0,O.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 He(e,t){const{specType:r,operationIdFormatter:s,root:n,components:i,genericTypes:o,nestedGenerics:a,useAlias:c,genericLabels:p,...u}=t;return Object.entries(e).reduce(((r,[s,n])=>{if(!1!==t.withIgnoredProps&&!je(n,u)){const i={...t,groups:e?.$forwardGroups||n?.$forwardGroups?t.groups:void 0};r[s]=d("item",[n],i),r[s]=d("nullable",[r[s],n],i)}return r}),(0,O.isArray)(e)?[]:{})}function Ge(e,t,r){return e.map((e=>d("item",[e],{...t,genericLabels:r.genericLabels})))}function qe(e,t,r){return e.isClass?d("class",[e],t):d("any",[e],{...t,genericLabels:r.genericLabels})}function Be(e,t,r){return!1!==r.groups?t?.$hooks?.alter("requiredGroups",e,[r.groups]):e}function Ue(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)),Be((0,O.uniq)(s),t,r)}(e,t,r);return s=(0,O.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)),{})}l("nullable",ke),l("object",He),l("anyOf",Ge),l("allOf",Ge),l("oneOf",Ge),l("properties",qe),l("items",qe),l("additionalProperties",qe),l("propertyNames",qe),l("contains",qe),l("dependencies",qe),l("patternProperties",qe),l("additionalItems",qe),l("not",qe),l("definitions",qe),l("required",Ue);const Je={string:{properties:we,is:O.isString},number:{properties:Ne,is:O.isNumber},boolean:{properties:_e,is:O.isBoolean},array:{properties:Ie,is:()=>!1},object:{properties:De,is:()=>!1}};function Fe(e,t,r){const s=function(e){return Me.find((t=>e[t]))}(e);return s&&(e[s].forEach((t=>{!function(e,t,r){const s=Je[e];s?.properties.concat(Le).forEach((e=>{void 0!==t[e]&&(Le.includes(e)?r[e]=t[e].filter(s.is):(r[e]=t[e],delete t[e]))}))}(t.type,e,t)})),Me.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 Ve=["name","$required","$hooks","_nestedGenerics",ce.OPENAPI,ce.SWAGGER,ce.JSON],We=[];function Xe(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=ce.JSON,customKeys:r=!1}){return Ve.includes(e)||e.startsWith("#")&&(!1===r||t!==ce.JSON)||t!==ce.JSON&&We.includes(e)}(e,t))).reduce(((s,n)=>{let i=e.get(n);if("type"===(n=n.replace(/^#/,"")))return s[n]=e.getJsonType(),s;if(function(e,t,r){return"examples"===e&&(0,O.isObject)(t)&&[ce.OPENAPI,ce.ASYNCAPI].includes(r.specType)}(n,i,t)&&(n="example",i=Object.values(i)[0]),i&&"object"==typeof i&&f(n)){if(i=d(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,s}),{})}(e,t);return e.isClass&&(r=d("inheritedClass",[r],{...t,root:!1,target:e.getComputedType()})),r=d("generics",[r],{...t,root:!1}),e.has(t.specType)&&(r={...r,...e.get(t.specType).toJSON(t)}),r=d("required",[r,e],t),r=d("nullable",[r,e],t),r=Fe(r,e,t),r=d("enums",[r,e],t),r=d("discriminatorMapping",[r,e],t),r}(e,r);return s&&Object.keys((0,O.getValue)(r,"components.schemas",{})).length&&(n.definitions=r.components.schemas),n}function ze(e,t,r){return(e=Ee(e,0,r)).const&&(e.enum=[e.const],delete e.const),e}function Ye(e,t){const r={paths:d("paths",[e],t={...t,specType:ce.OPENAPI})};return r.tags=(0,O.uniqBy)(t.tags,"name"),Object.keys((0,O.getValue)(t,"components.schemas",{})).length&&(r.components={schemas:t.components.schemas}),r}function Qe(e,t){return t?.isNullable?e.$ref?(0,O.cleanObject)({...e,...e.$ref&&{anyOf:[{$ref:e.$ref}],type:void 0},nullable:!0,$ref:void 0}):(0,O.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 Ze(e,{jsonSchema:t}){const r={type:"string",format:"binary",oneOf:void 0};return"array"===t.type?(t.items=(0,O.cleanObject)({...t.items,...r}),e.schema=t,e):(e.schema=(0,O.cleanObject)({...t,...r}),e)}function et(e,t){const r=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,t),s={...r.components?.schemas||{}},{type:n,schema:i,...o}=d("map",[e],r),a=d("item",[e.$schema],{...r,...me(e)});o.required=o.required||e.get("in")===V.PATH;const p={...r,jsonSchema:a,jsonParameter:e,oldSchemas:s},u=(0,c.camelCase)(`operationIn ${e.get("in")}`);return f(u)?d(u,[o],p):(o.schema=a,o)}function tt(e,t){return e.flatMap((e=>d("operationInParameter",[e],t))).filter(Boolean)}function rt(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 st(e,{jsonSchema:t,jsonParameters:r,...s}){if(t.$ref){if(!e.name)return function(e,{jsonParameter:t,...r}){const s=ye(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,O.cleanObject)({...e,name:r,required:(n?.required||[]).includes(r),description:s,schema:i,style:i.$ref?"deepObject":void 0,examples:rt(r,e.examples)})]),[])}(e,s);e.style="deepObject"}return e.schema=t,e}l("schema",Xe),l("discriminatorMapping",Ae,ce.OPENAPI),l("discriminatorMapping",Ae,ce.SWAGGER),l("discriminatorMapping",Ae,ce.ASYNCAPI),l("enums",ze,ce.OPENAPI),l("enums",ze,ce.SWAGGER),l("enums",ze,ce.ASYNCAPI),l("generate",Ye,ce.OPENAPI),l("generate",Ye,ce.SWAGGER),l("nullable",Qe,ce.OPENAPI),l("nullable",Qe,ce.SWAGGER),l("operationInFiles",Ze),l("operationInParameter",et),l("operationInParameters",tt),l("operationInQuery",st);var nt=i(725),it=i.n(nt);const ot=it().codes.reduce(((e,t)=>{const r=String(it()(t));return{...e,[String(t)]:{label:r,code:(0,c.constantCase)(r)}}}),{});function at(e){return ot[e]?.code}function ct(e){return ot[e]?.label}function pt(e,{tags:t=[],defaultTags:r=[],...s}={}){const{consumes:n,produces:i,...o}=d("map",[e],{...s,ignore:["parameters"]});o.security&&(o.security=[].concat(o.security)),0===e.get("responses").size&&(o.responses={200:{description:ct(200)}});const a={...s,consumes:e.get("consumes")?.length?e.get("consumes"):["application/json"]},[c,p]=function(e){return e.get("parameters").filter((e=>X(e.get("in")))).reduce(((e,t)=>{const[r,s]=e;return[V.BODY,V.FILES].includes(t.get("in"))?[r,[...s,t]]:[[...r,t],s]}),[[],[]])}(e);o.parameters=d("operationInParameters",[c],s),p.length&&(o.requestBody=d("operationRequestBody",[p],a));const u=o.tags?.length?o.tags:r;return u.length&&(o.tags=u.map((({name:e})=>e))),t.push(...u),o}function ut(e,t){return d("map",[e],{...t,groups:[...e.groups||[]],groupsName:e.groupsName})}ot[200].label="Success",ot[200].code="SUCCESS",l("operation",pt),l("operationMedia",ut);class ht extends H{constructor(e={}){super(e),this.$kind="operationRequestBody",this.content(e.content||{})}description(e){return this.set("description",e),this}content(e){return this.set("content",q(e)),this}addContent(e,t,r){const s=this.get("content"),n=new H;return n.set("schema",t),r&&n.set("examples",r),s.set(e,n),this}required(e){return this.set("required",e),this}}function lt(e,{consumes:t,...r}){const{schema:s,examples:n,in:i,...o}=function(e,t){let r=new D;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=d("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 ht(o);return t.forEach((e=>{a.addContent(e,s,n)})),d("map",[a],r)}function mt(e,t={}){const r=d("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 dt(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 ft(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)}]}l("operationRequestBody",lt),l("operationResponse",mt);const gt="%c.%m";function yt(e=""){const t=new Map;return(r,s,n="")=>{const i=((t,r)=>{const s=(e||gt).replace(/%c/,t).replace(/%m/,r);return""===e?(0,c.camelCase)(s):s})(r,s),o=r+s;if(!t.has(o))return t.set(o,0),i;const a=n.match(/{(\w+)}/gi);if(a){const e=r+s+a[0];if(!t.has(e))return t.set(e,0),(0,c.camelCase)(`${i} By ${a}`)}const p=t.get(o)+1;return t.set(o,p),`${i}_${p}`}}function Ot(e,{store:t,operationIdFormatter:r}){return r(t.parent.schema.get("name")||t.parent.targetName,t.propertyName,e)}const St=[a.ALL,a.GET,a.POST,a.PUT,a.PATCH,a.HEAD,a.OPTIONS,a.DELETE,a.TRACE];function bt(e,{path:t,method:r,operation:s}){return{...e,[t]:{...e[t],[r.toLowerCase()]:s}}}function Rt(e,{paths:t,rootPath:r,...s}){const n=y(r+te(e).path);return s={...s,ctrlRootPath:n},[...ne(e).values()].filter(ie).filter((e=>e.operation.getAllowedOperationPath(St).length>0)).flatMap(function(e){return t=>{const r=t.operation.getAllowedOperationPath(St);if(0===r.length)return[];const s=d("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 ft(e.ctrlRootPath,n).map((({path:t,parameters:n})=>(t=t||"/",n=dt(n.map((({type:e,...t})=>({...t,schema:{type:e}}))),r),{operation:{...r,parameters:n,operationId:r.operationId||Ot(t,{...e,store:s})},method:i,path:t})))}}(s)).reduce(bt,t)}function At(e){return(...t)=>{const r=e(te(...t),t);"function"==typeof r&&r(...t)}}function Et(...e){return At((t=>{t.store.set("childrenControllers",e),e.forEach((e=>{O.Store.from(e).set("parentController",t.token)}))}))}function Tt(e,...t){return At((r=>{e=e||(0,c.snakeCase)(r.targetName),r.discriminatorAncestor&&r.schema.discriminatorValue(e,...t)}))}function Pt(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=A.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 vt(e){return Pt(e,Array)}function Ct(e){return Pt(e,Map)}function xt(e){return Pt(e).Contains()}function $t(e,t){const r={};return(...s)=>{const n=(0,O.useDecorators)(t(...s));return n.Error=t=>(r.message=t,(0,O.useDecorators)(n,r.message&&At((r=>{const s=r.parentSchema.get("#errorMessage")||{};"required"===e?r.parentSchema.customKey("errorMessage",(0,O.deepMerge)(s,{[e]:{[r.propertyName]:t}})):r.itemSchema.customKey("errorMessage",(0,O.deepMerge)(s,{[e]:t}))})))),n}}l("paths",Rt);const Mt=$t("maxItems",(e=>{if(e<0)throw new Error("The value of maxItems MUST be a non-negative integer.");return At((t=>{t.schema.maxItems(e)}))})),wt=$t("maxProperties",(e=>{if(e<0)throw new Error("The value of maxProperties MUST be a non-negative integer.");return At((t=>{t.isCollection?t.schema.maxProperties(e):t.itemSchema.maxProperties(e)}))})),_t=$t("minItems",(e=>{if(e<0)throw new Error("The value of minItems MUST be a non-negative integer.");return At((t=>{t.schema.minItems(e)}))})),Nt=$t("minProperties",(e=>{if(e<0)throw new Error("The value of minProperties MUST be a non-negative integer.");return At((t=>{t.isCollection?t.schema.minProperties(e):t.itemSchema.minProperties(e)}))})),It=$t("uniqueItems",((e=!0)=>At((t=>{t.schema.uniqueItems(e)}))));function Dt(e){return At(((t,r)=>{t.itemSchema.additionalProperties(e)}))}function Lt(...e){return At((t=>{t.itemSchema.allOf(e)}))}function kt(e){return At((t=>{e&&(((0,O.isClass)(e)||(0,O.isArrowFn)(e))&&(t.type=e),t.itemSchema.type(e))}))}function jt(...e){const t=e.find((e=>(0,O.isClass)(e)));return(0,O.useDecorators)(t&&kt(t),At(((t,r)=>{t.decoratorType===O.DecoratorTypes.PARAM&&(t.required=!0),t.decoratorType===O.DecoratorTypes.PROP&&t.parentSchema.addRequired(t.propertyName),t.schema.allow(...e)})))}function Ht(...e){return At((t=>{t.itemSchema.any(...e)}))}function Gt(...e){return At((t=>{t.itemSchema.anyOf(e)}))}function qt(e){return At((t=>{t.itemSchema.const(e)}))}function Bt(e,t){return At((r=>{r.itemSchema.customKey(e,t)}))}function Ut(e){return At((t=>{Object.entries(e).forEach((([e,r])=>{t.itemSchema.customKey(e,r)}))}))}function Kt(e){return At((t=>{t.itemSchema.default(e)}))}function Jt(e){return At((t=>{const r=t.parentSchema.get("#errorMessage")||{};t.parentSchema.customKey("errorMessage",{...r,...e})}))}function Ft(e){return(0,O.useDecorators)(Jt({_:e}))}function Vt(e){return At(((t,r)=>{switch((0,O.decoratorTypeOf)(r)){case O.DecoratorTypes.PROP:case O.DecoratorTypes.CLASS:t.schema.description(e);break;case O.DecoratorTypes.PARAM:t.parameter.description(e);break;case O.DecoratorTypes.METHOD:t.operation?.description(e)}}))}function Wt(){return(0,O.useDecorators)(kt(),At((e=>{e.discriminatorKey()})))}const Xt=$t("enum",(function(e,...t){return At((r=>{r.itemSchema.enum(e,...t)}))}));function zt(...e){return At((t=>{t.schema.examples(e)}))}function Yt(e){return At((t=>{t.parameter.examples(e)}))}const Qt=$t("maximum",((e,t=!1)=>At((r=>{t?r.itemSchema.exclusiveMaximum(e):r.itemSchema.maximum(e)})))),Zt=Qt,er=$t("exclusiveMaximum",((e,t=!0)=>Qt(e,t))),tr=$t("minimum",((e,t=!1)=>At((r=>{t?r.itemSchema.exclusiveMinimum(e):r.itemSchema.minimum(e)})))),rr=tr,sr=$t("exclusiveMinimum",((e,t=!0)=>tr(e,t)));var nr;!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"}(nr||(nr={}));const ir=$t("format",(e=>At((t=>{t.itemSchema.format(e)})))),or=$t("format",(()=>ir(nr.EMAIL))),ar=$t("format",(()=>ir(nr.DATE_TIME))),cr=$t("format",(()=>ir(nr.DATE))),pr=$t("format",(()=>ir(nr.TIME))),ur=$t("format",(()=>ir(nr.URI))),hr=$t("format",(()=>ir(nr.URL)));function lr(e=!0){return At((t=>{t.schema.$forwardGroups=e}))}var mr=i(14),dr=i.n(mr);function fr(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=dr()(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 gr(e,t=[]){const r=e.filter((e=>e.startsWith("!"))).map((e=>e.replace("!",""))),s=e.filter((e=>!e.startsWith("!")));return!!(r.length&&t.length&&fr(r,t))||!!s.length&&!fr(e.filter((e=>!e.startsWith("!"))),t)}function yr(...e){return At((t=>{switch(t.decoratorType){case O.DecoratorTypes.CLASS:!function(e,t){const r=Object.entries(e[0]);t.children.forEach((e=>{yr(...r.filter((([,t])=>t.includes(e.propertyName))).map((([e])=>e)))(e.target,e.propertyKey)}))}(e,t);break;case O.DecoratorTypes.PROP:Bt("x-groups",e)(t.target,t.propertyKey),t.schema.$hooks.on("groups",((t,r)=>!(t||!gr(e,r))||t));break;case O.DecoratorTypes.PARAM:let r="";2==e.length&&(0,O.isArray)(e[1])&&(r=e[0],e=e[1]),t.parameter.groups=e,t.parameter.groupsName=r}}))}function Or(){return(0,O.StoreSet)("hidden",!0)}function Sr(e=!0){return At((t=>{t.schema.ignore(e)}))}function br(){return At((e=>{e.itemSchema.type("integer")}))}function Rr(e,t=!1){return At((r=>{t?r.schema.label(e):r.itemSchema.label(e)}))}const Ar=$t("maxLength",(e=>{if(e<0)throw new Error("The value of maxLength MUST be a non-negative integer.");return At((t=>{t.itemSchema.maxLength(e)}))})),Er=$t("minLength",(e=>{if(e<0)throw new Error("The value of minLength MUST be a non-negative integer.");return At((t=>{t.itemSchema.minLength(e)}))})),Tr=$t("multipleOf",(e=>{if(e<=0)throw new Error("The value of multipleOf MUST be a number, strictly greater than 0.");return At((t=>{t.itemSchema.multipleOf(e)}))}));function Pr(e){return At(((t,r)=>{switch((0,O.decoratorTypeOf)(r)){case O.DecoratorTypes.CLASS:t.schema.name(e);break;case O.DecoratorTypes.PARAM:t.parameter.name(e);break;default:t.parent.schema.addAlias(r[1],e)}}))}function vr(e,...t){return t=[e,...t],(0,O.useDecorators)(1===t.length&&kt(t[0]),Ht(null,...t))}function Cr(...e){return At((t=>{t.itemSchema.oneOf(e),t.type=Object}))}function xr(){return At((e=>{switch(e.decoratorType){case O.DecoratorTypes.PARAM:e.required=!1;break;case O.DecoratorTypes.PROP:e.parentSchema.removeRequired(e.propertyName)}}))}const $r=$t("pattern",(e=>At((t=>{t.itemSchema.pattern(e)}))));function Mr(e=!0){return At((t=>{t.itemSchema.readOnly(e)}))}function wr(e){return At((t=>{t.schema.assign(e)}))}function _r(e,t){return At((r=>{r.schema.set(e,t)}))}function Nr(e,...t){return wr({properties:{...t.reduce(((t,r)=>({...t,[r]:e})),{})}})}const Ir=$t("required",((e=!0,...t)=>e?jt(...t):xr()));function Dr(...e){return At((t=>{t.parent.schema.$hooks.on("requiredGroups",((r,s)=>gr(e,s)?r.filter((e=>e!==t.propertyKey)):r))}))}function Lr(e){return At((t=>{t.schema.title(e)}))}function kr(e){return At((()=>(0,O.useDecorators)(Jt({type:e}))))}function jr(e=!0){return At((t=>{t.itemSchema.writeOnly(e)}))}function Hr(e=Object){if((0,O.isClass)(e)){const{schema:t}=te(e);return t.properties=function(t){return Object.entries(t).forEach((([t,r])=>{te(e.prototype,t).schema.assign(r)})),this},t}return D.from({type:e})}function Gr(){return Hr(String)}function qr(...e){const t=[e.map((e=>function(e){return(0,O.isObject)(e)&&!("toJSON"in e)}(e)?Gr().enum(Object.values(e)):e))],r=(...e)=>{A.from(...e).nestedGenerics=t};return r.Nested=(...e)=>(t.push(e),r),r}function Br(...e){return t=>{A.from(t).schema.genericLabels=e}}function Ur(...e){return At(((t,r)=>{switch(t.decoratorType){case O.DecoratorTypes.METHOD:t.operation.produces(e);break;case O.DecoratorTypes.CLASS:(0,O.decorateMethodsOf)(r[0],Ur(...e));break;default:throw new O.UnsupportedDecoratorType(Ur,r)}}))}function Kr(...e){return(0,O.useDecorators)(Ur(...e),(0,O.StoreSet)("acceptMimes",e))}function Jr(...e){return At(((t,r)=>{switch(t.decoratorType){case O.DecoratorTypes.METHOD:t.operation.consumes(e);break;case O.DecoratorTypes.CLASS:(0,O.decorateMethodsOf)(r[0],Jr(...e));break;default:throw new O.UnsupportedDecoratorType(Jr,r)}}))}class Fr extends Map{constructor(e={}){super(),this.actions=[],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),t=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((r=>{e[(0,c.pascalCase)(r)]=t(r)})),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===O.DecoratorTypes.CLASS&&(r={...r,...t||{}}),{...t||{},...r}}bind(e,t){this.entity=A.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 Vr=new Map;function Wr(e,t){Vr.set(e,t)}function Xr(e){return Vr.get(e)}function zr(e){return e.map((e=>function(e){return(0,O.isObject)(e)&&!("toJSON"in e)}(e)?Gr().enum(Object.values(e)):e))}class Yr extends Fr{constructor({status:e,model:t}){super(),this.methods=["contentType","description","examples","type","status","of","ofInteger","oneOf","allOf","anyOf","nested","header","headers","schema","title","groups","allowedGroups","location","binary"],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&&ct(e)&&!this.get("description")&&(this.set("description",ct(e)),this.get("model")||this.model(Xr(+e))),this}headers(e){return this.set("headers",{...this.get("headers")||{},...G(e)}),this}header(e,t){return void 0===t&&(0,O.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,O.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(zr(e))})),this}of(...e){const t=this.get("model");return this.checkPrimitive(t),this.addAction((()=>{const r=this.get("schema");(0,O.isCollection)(t)?r?.itemSchema({type:e[0]}):r?.nestedGenerics.push(zr(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,O.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,O.isPrimitiveOrPrimitiveClass)(e))throw new Error("Returns.Of cannot be used with the following primitive classes: String, Number, Boolean")}checkCollection(e){if((0,O.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,O.isPlainObject)(e)&&!(0,O.isPrimitiveOrPrimitiveClass)(e)||this.hasOfTypes)&&(t=t||"application/json"),t}getStatus(){return this.get("status")||"default"}onInit(e,t){switch((0,O.decoratorTypeOf)(e)){case O.DecoratorTypes.METHOD:this.entity=A.from(...e),this.entity.operation&&this.map();break;case O.DecoratorTypes.CLASS:this.decoratorType=O.DecoratorTypes.CLASS,(0,O.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===O.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),(k(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 D({type:r}),i=this.get("groups"),o=this.get("groupsName"),a=this.get("allowedGroups"),c=this.entity.operation;if(r&&((0,O.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 z;e.in("query").name("includes"),e.schema(D.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,O.isCollection)(r)?(s.type(r||Object),s.itemSchema().set(e,t)):s.set(e,t)})),this}}function Qr(e,t){return new Yr({status:e,model:t}).build()}function Zr(e){return Qr().ContentType(e)}function es(e=!0){return At(((t,r)=>{switch((0,O.decoratorTypeOf)(r)){case O.DecoratorTypes.METHOD:t.operation.deprecated(e);break;case O.DecoratorTypes.CLASS:(0,O.decorateMethodsOf)(r[0],es(e));break;case O.DecoratorTypes.PARAM:t.parameter.set("deprecated",e);break;case O.DecoratorTypes.PROP:t.schema.set("deprecated",e);break;default:throw new O.UnsupportedDecoratorType(es,r)}}))}function ts(e,t){return void 0!==t&&(e={[e]:t}),void 0===t&&(0,O.isString)(e)&&(e={[e]:{type:"string"}}),Qr().Headers(e)}function rs(e){const t=new z,r={},s=(n,i,o)=>{const a=A.from(n,i,o);switch(a.decoratorType){case O.DecoratorTypes.PARAM:a.parameter.in(e);break;case O.DecoratorTypes.METHOD:t.in(e),a.operation.addParameter(-1,t),t.schema(D.from(r));break;case O.DecoratorTypes.CLASS:(0,O.decorateMethodsOf)(n,s);break;default:throw new O.UnsupportedDecoratorType(rs,[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 ss(e){return(...t)=>{const[r,s,n]=t,i=O.Metadata.getParamTypes(r,s)[n]===Array,o=[e="object"==typeof e?void 0:e,!i&&"0"].filter(Boolean).join(".");(0,O.useDecorators)(rs(V.FILES),Pr(o),(0,O.useMethodDecorators)(Qr(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"),Jr("multipart/form-data")))(...t)}}function ns(e,t){return Qr().Location(e,t)}const is=new Set([...Object.keys(a).filter((e=>e!==a.CUSTOM)).map((e=>e.toLowerCase()))]);function os(e){let t,r;const s=e.filter((e=>"string"==typeof e&&is.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 as extends Fr{constructor(){super(...arguments),this.methods=["name","description","summary","method","id","use","useAfter","useBefore"]}beforeInit(){const e=this.get("path"),t=a[this.get("method")]||a.CUSTOM;e&&this.entity.operation.addOperationPath(t,e)}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 cs(...e){const t=os(e);return new as(t).build()}function ps(e){return At(((t,r)=>{if(t.decoratorType!==O.DecoratorTypes.METHOD)throw new O.UnsupportedDecoratorType(ps,r);t.operation.operationId(e)}))}function us(e,t="/"){return At(((r,s)=>{if(r.decoratorType!==O.DecoratorTypes.METHOD)throw new O.UnsupportedDecoratorType(us,s);r.operation.addOperationPath(e.toUpperCase(),t)}))}function hs(){return yr("partial")}function ls(e){return At(((t,r)=>{if(t.decoratorType!==O.DecoratorTypes.CLASS)throw new O.UnsupportedDecoratorType(ls,r);t.path=e}))}function ms(e){return cs(a.PUBLISH,e)}function ds(...e){const{status:t,url:r,meta:s}=e.reduce(((e,t)=>(0,O.isNumber)(t)?(e.status=t,e):(0,O.isString)(t)?(e.url=t,e):(e.meta=t,e)),{status:302,url:"",meta:{}});return(0,O.useDecorators)(Qr(t).Location(r,s),At((e=>{e.operation?.setRedirection(t)})))}function fs(e="/",...t){return cs(...[a.ALL,e].concat(t))}function gs(e="/",...t){return cs(...[a.GET,e].concat(t))}function ys(e="/",...t){return cs(...[a.POST,e].concat(t))}function Os(e="/",...t){return cs(...[a.PUT,e].concat(t))}function Ss(e="/",...t){return cs(...[a.DELETE,e].concat(t))}function bs(e="/",...t){return cs(...[a.HEAD,e].concat(t))}function Rs(e="/",...t){return cs(...[a.PATCH,e].concat(t))}function As(e="/",...t){return cs(...[a.OPTIONS,e].concat(t))}function Es(e,...t){return At(((r,s)=>{switch(r.decoratorType){case O.DecoratorTypes.METHOD:Array.isArray(e)?r.operation.security(e):r.operation.addSecurityScopes(e,t);break;case O.DecoratorTypes.CLASS:Array.isArray(e)?(0,O.decorateMethodsOf)(s[0],Es(e)):(0,O.decorateMethodsOf)(s[0],Es(e,...t));break;default:throw new O.UnsupportedDecoratorType(Es,s)}}))}function Ts(e,t){return Qr(e,t)}function Ps(e){return cs(a.SUBSCRIBE,e)}function vs(e){return At(((t,r)=>{if(t.decoratorType!==O.DecoratorTypes.METHOD)throw new O.UnsupportedDecoratorType(vs,r);t.operation.summary(e)}))}function Cs(...e){return At(((t,r)=>{switch(t.decoratorType){case O.DecoratorTypes.METHOD:t.operation.addTags(function(e){return e.map((e=>"string"==typeof e?{name:e}:e))}(e));break;case O.DecoratorTypes.CLASS:(0,O.decorateMethodsOf)(r[0],Cs(...e));break;default:throw new O.UnsupportedDecoratorType(Cs,r)}}))}function xs(e,t){return(0,O.StoreSet)("view",{path:e,options:t})}function $s(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 Ms{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 $s(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]}}function ws(...e){return Hr().allOf(e)}function _s(...e){return Hr().any(...e)}function Ns(...e){return Hr().anyOf(e)}function Is(){return Hr(Boolean)}function Ds(){return Hr(Array)}function Ls(){return Hr(Map).unknown(!0)}function ks(){return Hr(Array).uniqueItems(!0)}function js(){return Hr(Date).format(nr.DATE)}function Hs(){return Hr(Date).format(nr.DATE_TIME)}function Gs(){return Hr(Date).format(nr.TIME)}function qs(){return Hr(String).format(nr.EMAIL)}function Bs(e){const t=Gr().enum(e);return P.set(e,t),t}function Us(){return Hr(Number).integer()}function Ks(e){try{if(e())return A.from(e()).schema}catch(e){}return new ge(e)}function Js(){return Hr(Number)}function Fs(e={}){return Hr(Object).properties(e)}function Vs(...e){return Hr().oneOf(e)}function Ws(){return Hr(String).format(nr.URI)}function Xs(){return Hr(String).format(nr.URL)}const zs=(0,O.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)),Ys=(0,O.mergeReducerBuilder)(((e,t)=>e.in===t.in&&e.name===t.name)),Qs=(0,O.mergeReducerBuilder)(((e,t)=>!!Object.keys(t).find((t=>!!e[t])))),Zs=(0,O.mergeReducerBuilder)(((e,t)=>e.name===t.name)),en={security:Qs,parameters:Ys,oneOf:zs,anyOf:zs,allOf:zs,tags:Zs};function tn(e,t){return(0,O.deepMerge)(e,t,{reducers:en,cleanUndefinedProps:!0})}const rn=new Map;function sn(e,t={}){if(t={specType:ce.OPENAPI,...t,tags:[],paths:{},channels:{},components:{},operationIdFormatter:t.operationIdFormatter||yt(t.operationIdPattern),root:!1},(0,O.isArray)(e)){let r={};return t={...t,append(e){r=tn(r,e)}},e.forEach((({token:e,...r})=>{const s=sn(e,{...t,...r});t.append(s)})),r}return function(e,t,r){rn.has(e)||rn.set(e,new Map);const s=rn.get(e),n=JSON.stringify(t);return s.has(n)||s.set(n,r()),s.get(n)}(e,t,(()=>function(e,t){const r=te(e),{rootPath:s="/"}=t;return t={...t,rootPath:s,defaultTags:[(0,O.cleanObject)({name:r.schema.getName(),description:r.schema.get("description")})]},d("generate",[r],t)}(e,t)))}function nn(e){return e.startsWith("3.")?ce.OPENAPI:ce.SWAGGER}function on(e){return"openapi"in e?ce.OPENAPI:ce.SWAGGER}function an(e){const{title:t,description:r,version:s,termsOfService:n,contact:i,license:o}=e;return(0,O.cleanObject)({version:s,title:t,description:r,termsOfService:n,contact:i,license:o})}function cn(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:d,securityDefinitions:f,externalDocs:g}=e;return{swagger:r,consumes:(0,O.uniq)([...s,...u]),produces:(0,O.uniq)([...h]),info:an((0,O.getValue)(e,"info",{})),paths:n,host:a,basePath:c,schemes:p,definitions:l,parameters:m,responses:d,security:i,securityDefinitions:f,tags:o,externalDocs:g}}function pn(e,{specVersion:t}){const{servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}=e;return{openapi:t,info:an((0,O.getValue)(e,"info",{})),servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}}function un(e,{fileSpec:t,acceptMimes:r,specVersion:s,version:n}){const i={specVersion:s=s||(0,O.getValue)(e,"openapi",(0,O.getValue)(e,"swagger","2.0")),acceptMimes:r};switch(nn(s)){case ce.OPENAPI:e=pn(e,i),t=t?pn(t,i):t;break;default:case ce.SWAGGER:e=cn(e,i),t=t?cn(t,i):t}return e=tn(e,t),(0,O.setValue)(e,"info.title",(0,O.getValue)(e,"info.title","Api documentation")),(0,O.setValue)(e,"info.version",(0,O.getValue)(e,"info.version",n)),e}const hn=["get","put","post","delete","options","head","patch","trace"],ln=["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],mn=["type","items"],dn=/^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/,fn={APPLICATION_X_WWW_URLENCODED:"application/x-www-form-urlencoded",MULTIPART_FORM_DATA:"multipart/form-data"};function gn(e){if(Array.isArray(e))e.forEach(gn);else if("object"==typeof e)for(let t in e)"$ref"===t?e.$ref=e.$ref.replace("#/components/schemas/","#/definitions/").replace("#/components/","#/x-components/"):gn(e[t])}function yn(e){return new RegExp(dn,"i").test(e)}function On(e){const t=Object.keys(fn).map((e=>fn[e]));return Object.keys(e).filter((e=>t.indexOf(e)>-1||yn(e)))}function Sn(e){return Object.entries(e).reduce(((e,[t,r])=>{const s=function(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}}}(r);return s&&(e[t]=s),e}),{})}function bn(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 Rn{constructor(e){this.spec=JSON.parse(JSON.stringify(e))}convertInfos(){const e=this.spec.servers&&this.spec.servers[0];return e?bn(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,gn(this.spec)),delete this.spec.servers,delete this.spec.openapi,delete this.spec["x-components"],(0,O.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(hn.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=On(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=On(t)[0],delete i.content,[fn.APPLICATION_X_WWW_URLENCODED,fn.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,ln),this.copySchemaProperties(t,mn),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&&yn(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=Sn(this.spec.components.securitySchemes),delete this.spec.components.securitySchemes)}}function An(e){return new Rn(e).convert()}function En({tokens:e,...t}){const{version:r="1.0.0",acceptMimes:s,fileSpec:n={},specVersion:i}=t,o=un((0,O.getValue)(t,"spec",{}),{fileSpec:n,version:r,specVersion:i,acceptMimes:s}),a=on(o),c=tn(o,sn(e,t));return t.sortPaths&&(c.paths=Object.fromEntries(Object.entries(c.paths).sort((([e],[t])=>e.localeCompare(t))))),a===ce.SWAGGER?An(c):c}const Tn="$cache:schemes";function Pn(e,t={}){const r=te(e),s=t.specType||ce.JSON;return t={endpoint:!0,groups:[],inlineEnums:s===ce.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(Tn)||new Map,s=function(e){return JSON.stringify(e)}(t);if(!r.has(s)){const n=d("schema",[e.schema],t);Object.keys((0,O.getValue)(t,"components.schemas",{})).length&&(n.definitions=t.components.schemas),r.set(s,n)}return e.store.set(Tn,r),r.get(s)}(r,t)}function vn(e,t={}){const r=e.isStore?e:te(e),s=$s(t.basePath,r.path);let n=[];return t.withChildren&&(n=r.get("childrenControllers",[]).reduce(((e,r)=>e.concat(vn(r,{...t,basePath:s}))),n)),[...ne(e).values()].reduce(((r,n)=>{const{operation:i}=n;return i&&i.getAllowedOperationPath(t.allowedVerbs).forEach((t=>{r.push(new Ms({basePath:s,token:e,endpoint:n,operationPath:t}))})),r}),n)}function Cn(e){const t=e.isStore?e:te(e);if(!t.$properties){const e=se(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 xn(e,t={}){const r=Cn(e),s=new Map;return r.forEach(((e,r)=>{!t.withIgnoredProps&&je(e.itemSchema,t)||s.set(r,e)})),s}return o})()));
3
3
  //# sourceMappingURL=schema.umd.min.js.map