@tsed/schema 8.3.4 → 8.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.barrelsby.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "directory": ["./src", "./src/components"],
3
- "exclude": ["**/__mock__", "**/__mocks__", "**/*.spec.ts", "**/test", "**/*.benchmark.ts"],
3
+ "exclude": ["**/__mock__", "**/__mocks__", "**/__fixtures__", "**/*.spec.ts", "**/test", "**/*.benchmark.ts"],
4
4
  "delete": true
5
5
  }
@@ -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:()=>De,AcceptMime:()=>Jr,AdditionalProperties:()=>Lt,All:()=>gs,AllOf:()=>kt,Allow:()=>Ht,Any:()=>Gt,AnyOf:()=>qt,ArrayOf:()=>Ct,BOOLEAN_PROPERTIES:()=>Ne,COMMON_PROPERTIES:()=>ke,Children:()=>Tt,CollectionContains:()=>$t,CollectionOf:()=>vt,Const:()=>Bt,Consumes:()=>Fr,ContentType:()=>es,Converter:()=>An,CustomKey:()=>Ut,CustomKeys:()=>Kt,DateFormat:()=>pr,DateTime:()=>cr,DecoratorContext:()=>Vr,Default:()=>Jt,DefaultMsg:()=>Vt,Delete:()=>bs,Deprecated:()=>ts,Description:()=>Wt,Discriminator:()=>_,DiscriminatorKey:()=>Xt,DiscriminatorValue:()=>Pt,Email:()=>ar,EndpointMetadata:()=>V,Enum:()=>zt,ErrorMsg:()=>Ft,Example:()=>Yt,Examples:()=>Qt,ExclusiveMaximum:()=>tr,ExclusiveMinimum:()=>nr,For:()=>Nr,Format:()=>or,ForwardGroups:()=>mr,GenericOf:()=>Br,Generics:()=>Ur,Get:()=>ys,Groups:()=>Or,HTTP_STATUS_MESSAGES:()=>at,Head:()=>Rs,Header:()=>rs,Hidden:()=>Sr,Ignore:()=>br,In:()=>ss,InFile:()=>ns,Integer:()=>Rr,JSON_TYPES:()=>C,JsonClassStore:()=>L,JsonEntitiesContainer:()=>R,JsonEntityComponent:()=>E,JsonEntityFn:()=>Et,JsonEntityStore:()=>A,JsonFormatTypes:()=>ir,JsonLazyRef:()=>ye,JsonMap:()=>H,JsonMedia:()=>B,JsonMethodPath:()=>K,JsonMethodStore:()=>F,JsonOperation:()=>J,JsonOperationPathsMap:()=>se,JsonOperationRoute:()=>ws,JsonParameter:()=>Y,JsonParameterStore:()=>Q,JsonParameterTypes:()=>W,JsonPropertyStore:()=>ee,JsonRequestBody:()=>lt,JsonResponse:()=>U,JsonSchema:()=>D,LabelledAs:()=>Ar,Location:()=>is,MANY_OF_PROPERTIES:()=>we,MapOf:()=>xt,Max:()=>er,MaxItems:()=>wt,MaxLength:()=>Er,MaxProperties:()=>_t,Maximum:()=>Zt,Min:()=>sr,MinItems:()=>Nt,MinLength:()=>Tr,MinProperties:()=>It,Minimum:()=>rr,MultipleOf:()=>Pr,NUMBER_PROPERTIES:()=>Ie,Name:()=>vr,Nullable:()=>Cr,OBJECT_PROPERTIES:()=>Le,OPERATION_HTTP_VERBS:()=>p,OPERATION_WS_VERBS:()=>u,OneOf:()=>xr,Operation:()=>ps,OperationId:()=>us,OperationPath:()=>hs,OperationVerbs:()=>a,Optional:()=>$r,Options:()=>Es,ParamMetadata:()=>Z,Partial:()=>ls,Patch:()=>As,Path:()=>ms,Pattern:()=>Mr,Post:()=>Os,Produces:()=>Kr,Property:()=>jt,PropertyMetadata:()=>te,Publish:()=>ds,Put:()=>Ss,ReadOnly:()=>wr,RecordOf:()=>Ir,Redirect:()=>fs,Required:()=>Dr,RequiredGroups:()=>Lr,Returns:()=>Zr,STRING_PROPERTIES:()=>_e,Schema:()=>_r,Security:()=>Ts,SpecTypes:()=>pe,Status:()=>Ps,Subscribe:()=>vs,Summary:()=>Cs,Tags:()=>xs,TimeFormat:()=>ur,Title:()=>kr,TypeError:()=>jr,UniqueItems:()=>Dt,Uri:()=>hr,Url:()=>lr,View:()=>$s,WriteOnly:()=>Hr,allOf:()=>_s,alterIgnore:()=>He,alterOneOf:()=>Ve,alterRequiredGroups:()=>Ue,any:()=>Ns,anyMapper:()=>Re,anyOf:()=>Is,array:()=>Ls,boolean:()=>Ds,buildPath:()=>y,channelsMapper:()=>ce,classMapper:()=>Ae,concatParameters:()=>ft,concatPath:()=>Ms,createRef:()=>Se,createRefName:()=>Oe,date:()=>Hs,datetime:()=>Gs,defineStatusModel:()=>Xr,discriminatorMappingMapper:()=>Ee,email:()=>Bs,enums:()=>Us,enumsMapper:()=>Te,enumsRegistry:()=>P,execMapper:()=>d,execOneOfMapper:()=>g,formatParameterType:()=>X,from:()=>Gr,generateSpec:()=>Tn,genericsMapper:()=>Pe,getComputedType:()=>v,getGenericsMap:()=>le,getInheritedStores:()=>ne,getJsonEntityStore:()=>re,getJsonPathParameters:()=>gt,getJsonSchema:()=>vn,getJsonSchemaMapper:()=>m,getJsonType:()=>x,getOperationId:()=>St,getOperationsRoutes:()=>Cn,getOperationsStores:()=>ie,getProperties:()=>$n,getPropertiesStores:()=>xn,getSpec:()=>nn,getSpecType:()=>on,getSpecTypeFromSpec:()=>an,getStatusConstant:()=>ct,getStatusMessage:()=>pt,getStatusModel:()=>zr,hasMapper:()=>f,inheritedClassMapper:()=>Ce,integer:()=>Ks,isParameterType:()=>z,isRedirectionStatus:()=>j,isSuccessStatus:()=>k,itemMapper:()=>xe,lazyRef:()=>Js,lazyRefMapper:()=>$e,makeOf:()=>ue,map:()=>ks,mapAliasedProperties:()=>Je,mapGenericsOptions:()=>me,mapHeaders:()=>G,mapMapper:()=>Me,mapOpenSpec:()=>hn,mapOpenSpec2:()=>pn,mapOpenSpec3:()=>un,mapOpenSpecInfo:()=>cn,mapOperationOptions:()=>as,matchGroups:()=>yr,mergeSpec:()=>rn,messageMapper:()=>he,nullableMapper:()=>je,nullableMapperOpenApi:()=>Ze,number:()=>Fs,object:()=>Vs,objectMapper:()=>Ge,ofMapper:()=>qe,oneOf:()=>Ws,operationIdFormatter:()=>Ot,operationInFilesMapper:()=>et,operationInParameterMapper:()=>tt,operationInParametersMapper:()=>rt,operationInQueryMapper:()=>nt,operationMapper:()=>ut,operationMediaMapper:()=>ht,operationRequestBodyMapper:()=>mt,operationResponseMapper:()=>dt,parameters:()=>Qs,pathsMapper:()=>At,payloadMapper:()=>fe,popGenerics:()=>de,propertiesMapper:()=>Be,registerJsonSchemaMapper:()=>l,removeHiddenOperation:()=>oe,requiredMapper:()=>Ke,responsePayloadMapper:()=>ge,schemaMapper:()=>ze,schemesReducer:()=>Ys,security:()=>Zs,serializeEnum:()=>$,serializeEnumValues:()=>M,set:()=>js,string:()=>qr,tagsReducer:()=>en,time:()=>qs,toJsonMapCollection:()=>q,toJsonRegex:()=>w,toRef:()=>be,transformInformation:()=>Rn,transformSecurity:()=>bn,transformToOS2:()=>En,uri:()=>Xs,url:()=>zs,withErrorMsg:()=>Mt,wrapEnumsMapper:()=>Ye});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{constructor(e,t){super(),this.method=e,this.path=t}summary(e){return super.set("summary",e),this}description(e){return super.set("description",e),this}}class J 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){const r=new K(e,t);return this.operationPaths.set(String(e)+String(t),r),r}getAllowedOperationPath(e){return e?[...this.operationPaths.values()].filter((({method:t})=>t&&e.includes(t.toUpperCase()))):[...this.operationPaths.values()]}}let F=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 J,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)}};F=S([E(O.DecoratorTypes.METHOD),b("design:paramtypes",[Object])],F);const V=F;var W;function X(e){return String(e).toLowerCase().replace("raw_","").replace("cookies","cookie")}function z(e){return Object.values(W).includes(X(e))}!function(e){e.BODY="body",e.PATH="path",e.QUERY="query",e.HEADER="header",e.COOKIES="cookie",e.FILES="files"}(W||(W={}));class Y 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",X(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 Q=class extends A{constructor(e){super(e),this.parameter=new Y,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))}};Q=S([E(O.DecoratorTypes.PARAM),b("design:paramtypes",[Object])],Q);const Z=Q;let ee=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)}};ee=S([E(O.DecoratorTypes.PROP)],ee);const te=ee;function re(...e){return A.from(...e)}R.set(O.DecoratorTypes.CLASS,L),R.set(O.DecoratorTypes.PROP,ee),R.set(O.DecoratorTypes.PARAM,Q),R.set(O.DecoratorTypes.METHOD,F);class se 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 ne(e){const t=e.isStore?e:re(e);return t.$inherited||(t.$inherited=(0,O.ancestorsOf)(t.target).reverse().reduce(((e,t)=>e.set(t,re(t))),new Map)),t.$inherited}function ie(e){const t=e.isStore?e:re(e);if(!t.$operations){const e=new se;t.$operations=new Map,ne(t).forEach((e=>{e.children.forEach((e=>{e instanceof F&&!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 oe(e){return!e.store.get("hidden")}const ae=[a.PUBLISH,a.SUBSCRIBE];function ce(e,{channels:t,rootPath:r,...s}){const n=y(r+re(e).path);return s={...s,ctrlRootPath:n},[...ie(e).values()].filter(oe).flatMap((e=>{const t=e.operation.getAllowedOperationPath(ae);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 pe;function ue(e,t){return t.length?1===t.length?t[0]:{[e]:t}:null}function he(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=ue("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 le(e,t){return e.reduce(((e,r,s)=>e.set(r,t[s])),new Map)}function me(e){if(e.genericLabels&&e.genericTypes){const{genericLabels:t,genericTypes:r,...s}=e;return{...s,generics:le(t,r)}}return e}function de(e){const[t,...r]=e.nestedGenerics;return{genericTypes:t,nestedGenerics:r}}function fe(e,t,r){const s=e.operation.get("parameters").filter((e=>z(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,...de(e)});switch(e.get("in")){case W.BODY:return s;case W.QUERY:case W.PATH:case W.HEADER:return{type:"object",properties:{[e.get("name")]:s}}}return s}),{}).filter(Boolean);return ue("allOf",i)}function ge(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=ue("oneOf",o);h&&(0,O.setValue)(u,"properties.data",h);const l=ue("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",ce),function(e){e.JSON="jsonschema",e.SWAGGER="swagger2",e.OPENAPI="openapi3",e.ASYNCAPI="asyncapi2"}(pe||(pe={})),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}),pe.ASYNCAPI),l("message",he,pe.ASYNCAPI),l("payload",fe,pe.ASYNCAPI),l("response",ge,pe.ASYNCAPI);class ye{constructor(e){this.getType=e,this.isLazyRef=!0}get target(){return this.getType()}get schema(){return re(this.getType()).schema}get name(){return(0,O.nameOf)(this.getType())}}function Oe(e,t){return t.groups&&t.groups.length?(0,c.pascalCase)(`${e} ${t.groupsName||t.groups.join(" ")}`):e}function Se(e,t,r){const s=function(e){const{host:t="#/"+([pe.OPENAPI,pe.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 be(e,t,r){const s=Oe(e.getName(),r);return t&&(0,O.setValue)(r,`components.schemas.${s}`,t),Se(s,e,r)}function Re(e,t={}){if("object"!=typeof e||null===e)return e;if(e instanceof ye)return d("lazyRef",[e],t);if(e instanceof D&&e.get("enum")instanceof D){const r=e.get("enum");return be(r,r.toJSON(t),t)}if(e.$kind&&e.$isJsonDocument){const r=d(g([e.$kind,"map"],t),[e],me(t));return e.canRef?be(e,r,t):r}return d("object",[e],t)}function Ae(e,t){const r=A.from(e.class),s=Oe(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,...de(e),root:!1}),...a};if(c.title){const r=Oe(c.title,t);return(0,O.setValue)(t.components,`schemas.${r}`,c),delete c.title,Se(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],me({...t,root:!1}))),Se(s,e,t)}function Ee(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:be(n,null,r).$ref;e.discriminator.mapping=s}return e}function Te(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 Pe(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,...de(t),root:!1})}}return e}function ve(e,t){if(t?.type&&t?.$ref){const{$ref:e,...r}=t;t={allOf:[{$ref:e},r]}}return t}function Ce(e,{target:t,...r}){const s=Array.from(ne(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:ve})),{});return(0,O.deepMerge)(t,e,{alter:ve})}return e}function xe(e,t){return e&&e.isClass?d("class",[e],t):d("any",[e],t)}function $e(e,t){const r=e.name;if(t.$refs?.find((t=>t===e.target)))return Se(r,e.schema,t);t.$refs=[...t.$refs||[],e.target];const s=e.getType()&&d("schema",[e.schema],me(t));return be(e.schema,s,t)}function Me(e,{ignore:t=[],...r}={}){return r=me(r),Array.from(e.entries()).reduce(((e,[s,n])=>(t.includes(s)||(e[s]=d("item",[n],r)),e)),{})}l("any",Re),l("class",Ae),l("discriminatorMapping",(function(e){return e.discriminator?.mapping&&delete e.discriminator.mapping,e})),l("enums",Te),l("generics",Pe),l("inheritedClass",Ce),l("item",xe),l("lazyRef",$e),l("map",Me);const we=["oneOf","allOf","anyOf"],_e=["minLength","maxLength","pattern","format"],Ne=[],Ie=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"],De=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains"],Le=["maxItems","minItems","uniqueItems","items","contains","maxContains","minContains","patternProperties","dependencies"],ke=["const","enum"];function je(e,t){return t?.isNullable?(e.discriminator||(e.$ref?e=(0,O.cleanObject)({...e,$ref:void 0,anyOf:[{type:"null"},{$ref:e.$ref}]}):we.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 He(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 Ge(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&&!He(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 qe(e,t,r){return e.map((e=>d("item",[e],{...t,genericLabels:r.genericLabels})))}function Be(e,t,r){return e.isClass?d("class",[e],t):d("any",[e],{...t,genericLabels:r.genericLabels})}function Ue(e,t,r){return!1!==r.groups?t?.$hooks?.alter("requiredGroups",e,[r.groups]):e}function Ke(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)),Ue((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 Je(e,t){return Object.entries(e).reduce(((e,[r,s])=>(e[r=t.get(r)||r]=s,e)),{})}l("nullable",je),l("object",Ge),l("anyOf",qe),l("allOf",qe),l("oneOf",qe),l("properties",Be),l("items",Be),l("additionalProperties",Be),l("propertyNames",Be),l("contains",Be),l("dependencies",Be),l("patternProperties",Be),l("additionalItems",Be),l("not",Be),l("definitions",Be),l("required",Ke);const Fe={string:{properties:_e,is:O.isString},number:{properties:Ie,is:O.isNumber},boolean:{properties:Ne,is:O.isBoolean},array:{properties:De,is:()=>!1},object:{properties:Le,is:()=>!1}};function Ve(e,t,r){const s=function(e){return we.find((t=>e[t]))}(e);return s&&(e[s].forEach((t=>{!function(e,t,r){const s=Fe[e];s?.properties.concat(ke).forEach((e=>{void 0!==t[e]&&(ke.includes(e)?r[e]=t[e].filter(s.is):(r[e]=t[e],delete t[e]))}))}(t.type,e,t)})),we.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 We=["name","$required","$hooks","_nestedGenerics",pe.OPENAPI,pe.SWAGGER,pe.JSON],Xe=[];function ze(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=pe.JSON,customKeys:r=!1}){return We.includes(e)||e.startsWith("#")&&(!1===r||t!==pe.JSON)||t!==pe.JSON&&Xe.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)&&[pe.OPENAPI,pe.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=Je(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=Ve(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 Ye(e,t,r){return(e=Te(e,0,r)).const&&(e.enum=[e.const],delete e.const),e}function Qe(e,t){const r={paths:d("paths",[e],t={...t,specType:pe.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 Ze(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 et(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 tt(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,...de(e)});o.required=o.required||e.get("in")===W.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 rt(e,t){return e.flatMap((e=>d("operationInParameter",[e],t))).filter(Boolean)}function st(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 nt(e,{jsonSchema:t,jsonParameters:r,...s}){if(t.$ref){if(!e.name)return function(e,{jsonParameter:t,...r}){const s=Oe(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:st(r,e.examples)})]),[])}(e,s);e.style="deepObject"}return e.schema=t,e}l("schema",ze),l("discriminatorMapping",Ee,pe.OPENAPI),l("discriminatorMapping",Ee,pe.SWAGGER),l("discriminatorMapping",Ee,pe.ASYNCAPI),l("enums",Ye,pe.OPENAPI),l("enums",Ye,pe.SWAGGER),l("enums",Ye,pe.ASYNCAPI),l("generate",Qe,pe.OPENAPI),l("generate",Qe,pe.SWAGGER),l("nullable",Ze,pe.OPENAPI),l("nullable",Ze,pe.SWAGGER),l("operationInFiles",et),l("operationInParameter",tt),l("operationInParameters",rt),l("operationInQuery",nt);var it=i(725),ot=i.n(it);const at=ot().codes.reduce(((e,t)=>{const r=String(ot()(t));return{...e,[String(t)]:{label:r,code:(0,c.constantCase)(r)}}}),{});function ct(e){return at[e]?.code}function pt(e){return at[e]?.label}function ut(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:pt(200)}});const a={...s,consumes:e.get("consumes")?.length?e.get("consumes"):["application/json"]},[c,p]=function(e){return e.get("parameters").filter((e=>z(e.get("in")))).reduce(((e,t)=>{const[r,s]=e;return[W.BODY,W.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 ht(e,t){return d("map",[e],{...t,groups:[...e.groups||[]],groupsName:e.groupsName})}at[200].label="Success",at[200].code="SUCCESS",l("operation",ut),l("operationMedia",ht);class lt 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 mt(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 lt(o);return t.forEach((e=>{a.addContent(e,s,n)})),d("map",[a],r)}function dt(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 ft(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 gt(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",mt),l("operationResponse",dt);const yt="%c.%m";function Ot(e=""){const t=new Map;return(r,s,n="")=>{const i=((t,r)=>{const s=(e||yt).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 St(e,{store:t,operationIdFormatter:r}){return r(t.parent.schema.get("name")||t.parent.targetName,t.propertyName,e)}const bt=[a.ALL,a.GET,a.POST,a.PUT,a.PATCH,a.HEAD,a.OPTIONS,a.DELETE,a.TRACE];function Rt(e,{path:t,method:r,operation:s}){return{...e,[t]:{...e[t],[r.toLowerCase()]:s}}}function At(e,{paths:t,rootPath:r,...s}){const n=y(r+re(e).path);return s={...s,ctrlRootPath:n},[...ie(e).values()].filter(oe).filter((e=>e.operation.getAllowedOperationPath(bt).length>0)).flatMap(function(e){return t=>{const r=t.operation.getAllowedOperationPath(bt);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 gt(e.ctrlRootPath,n).map((({path:n,parameters:o})=>(n=n||"/",o=ft(o.map((({type:e,...t})=>({...t,schema:{type:e}}))),r),{operation:{...r,...t.toJSON(e),parameters:o,operationId:r.operationId||St(n,{...e,store:s})},method:i,path:n})))}}(s)).reduce(Rt,t)}function Et(e){return(...t)=>{const r=e(re(...t),t);"function"==typeof r&&r(...t)}}function Tt(...e){return Et((t=>{t.store.set("childrenControllers",e),e.forEach((e=>{O.Store.from(e).set("parentController",t.token)}))}))}function Pt(e,...t){return Et((r=>{e=e||(0,c.snakeCase)(r.targetName),r.discriminatorAncestor&&r.schema.discriminatorValue(e,...t)}))}function vt(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 Ct(e){return vt(e,Array)}function xt(e){return vt(e,Map)}function $t(e){return vt(e).Contains()}function Mt(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&&Et((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",At);const wt=Mt("maxItems",(e=>{if(e<0)throw new Error("The value of maxItems MUST be a non-negative integer.");return Et((t=>{t.schema.maxItems(e)}))})),_t=Mt("maxProperties",(e=>{if(e<0)throw new Error("The value of maxProperties MUST be a non-negative integer.");return Et((t=>{t.isCollection?t.schema.maxProperties(e):t.itemSchema.maxProperties(e)}))})),Nt=Mt("minItems",(e=>{if(e<0)throw new Error("The value of minItems MUST be a non-negative integer.");return Et((t=>{t.schema.minItems(e)}))})),It=Mt("minProperties",(e=>{if(e<0)throw new Error("The value of minProperties MUST be a non-negative integer.");return Et((t=>{t.isCollection?t.schema.minProperties(e):t.itemSchema.minProperties(e)}))})),Dt=Mt("uniqueItems",((e=!0)=>Et((t=>{t.schema.uniqueItems(e)}))));function Lt(e){return Et(((t,r)=>{t.itemSchema.additionalProperties(e)}))}function kt(...e){return Et((t=>{t.itemSchema.allOf(e)}))}function jt(e){return Et((t=>{e&&(((0,O.isClass)(e)||(0,O.isArrowFn)(e))&&(t.type=e),t.itemSchema.type(e))}))}function Ht(...e){const t=e.find((e=>(0,O.isClass)(e)));return(0,O.useDecorators)(t&&jt(t),Et(((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 Gt(...e){return Et((t=>{t.itemSchema.any(...e)}))}function qt(...e){return Et((t=>{t.itemSchema.anyOf(e)}))}function Bt(e){return Et((t=>{t.itemSchema.const(e)}))}function Ut(e,t){return Et((r=>{r.itemSchema.customKey(e,t)}))}function Kt(e){return Et((t=>{Object.entries(e).forEach((([e,r])=>{t.itemSchema.customKey(e,r)}))}))}function Jt(e){return Et((t=>{t.itemSchema.default(e)}))}function Ft(e){return Et((t=>{const r=t.parentSchema.get("#errorMessage")||{};t.parentSchema.customKey("errorMessage",{...r,...e})}))}function Vt(e){return(0,O.useDecorators)(Ft({_:e}))}function Wt(e){return Et(((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 Xt(){return(0,O.useDecorators)(jt(),Et((e=>{e.discriminatorKey()})))}const zt=Mt("enum",(function(e,...t){return Et((r=>{r.itemSchema.enum(e,...t)}))}));function Yt(...e){return Et((t=>{t.schema.examples(e)}))}function Qt(e){return Et((t=>{t.parameter.examples(e)}))}const Zt=Mt("maximum",((e,t=!1)=>Et((r=>{t?r.itemSchema.exclusiveMaximum(e):r.itemSchema.maximum(e)})))),er=Zt,tr=Mt("exclusiveMaximum",((e,t=!0)=>Zt(e,t))),rr=Mt("minimum",((e,t=!1)=>Et((r=>{t?r.itemSchema.exclusiveMinimum(e):r.itemSchema.minimum(e)})))),sr=rr,nr=Mt("exclusiveMinimum",((e,t=!0)=>rr(e,t)));var ir;!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"}(ir||(ir={}));const or=Mt("format",(e=>Et((t=>{t.itemSchema.format(e)})))),ar=Mt("format",(()=>or(ir.EMAIL))),cr=Mt("format",(()=>or(ir.DATE_TIME))),pr=Mt("format",(()=>or(ir.DATE))),ur=Mt("format",(()=>or(ir.TIME))),hr=Mt("format",(()=>or(ir.URI))),lr=Mt("format",(()=>or(ir.URL)));function mr(e=!0){return Et((t=>{t.schema.$forwardGroups=e}))}var dr=i(14),fr=i.n(dr);function gr(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=fr()(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 yr(e,t=[]){const r=e.filter((e=>e.startsWith("!"))).map((e=>e.replace("!",""))),s=e.filter((e=>!e.startsWith("!")));return!!(r.length&&t.length&&gr(r,t))||!!s.length&&!gr(e.filter((e=>!e.startsWith("!"))),t)}function Or(...e){return Et((t=>{switch(t.decoratorType){case O.DecoratorTypes.CLASS:!function(e,t){const r=Object.entries(e[0]);t.children.forEach((e=>{Or(...r.filter((([,t])=>t.includes(e.propertyName))).map((([e])=>e)))(e.target,e.propertyKey)}))}(e,t);break;case O.DecoratorTypes.PROP:Ut("x-groups",e)(t.target,t.propertyKey),t.schema.$hooks.on("groups",((t,r)=>!(t||!yr(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 Sr(){return(0,O.StoreSet)("hidden",!0)}function br(e=!0){return Et((t=>{t.schema.ignore(e)}))}function Rr(){return Et((e=>{e.itemSchema.type("integer")}))}function Ar(e,t=!1){return Et((r=>{t?r.schema.label(e):r.itemSchema.label(e)}))}const Er=Mt("maxLength",(e=>{if(e<0)throw new Error("The value of maxLength MUST be a non-negative integer.");return Et((t=>{t.itemSchema.maxLength(e)}))})),Tr=Mt("minLength",(e=>{if(e<0)throw new Error("The value of minLength MUST be a non-negative integer.");return Et((t=>{t.itemSchema.minLength(e)}))})),Pr=Mt("multipleOf",(e=>{if(e<=0)throw new Error("The value of multipleOf MUST be a number, strictly greater than 0.");return Et((t=>{t.itemSchema.multipleOf(e)}))}));function vr(e){return Et(((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 Cr(e,...t){return t=[e,...t],(0,O.useDecorators)(1===t.length&&jt(t[0]),Gt(null,...t))}function xr(...e){return Et((t=>{t.itemSchema.oneOf(e),t.type=Object}))}function $r(){return Et((e=>{switch(e.decoratorType){case O.DecoratorTypes.PARAM:e.required=!1;break;case O.DecoratorTypes.PROP:e.parentSchema.removeRequired(e.propertyName)}}))}const Mr=Mt("pattern",(e=>Et((t=>{t.itemSchema.pattern(e)}))));function wr(e=!0){return Et((t=>{t.itemSchema.readOnly(e)}))}function _r(e){return Et((t=>{t.schema.assign(e)}))}function Nr(e,t){return Et((r=>{r.schema.set(e,t)}))}function Ir(e,...t){return _r({properties:{...t.reduce(((t,r)=>({...t,[r]:e})),{})}})}const Dr=Mt("required",((e=!0,...t)=>e?Ht(...t):$r()));function Lr(...e){return Et((t=>{t.parent.schema.$hooks.on("requiredGroups",((r,s)=>yr(e,s)?r.filter((e=>e!==t.propertyKey)):r))}))}function kr(e){return Et((t=>{t.schema.title(e)}))}function jr(e){return Et((()=>(0,O.useDecorators)(Ft({type:e}))))}function Hr(e=!0){return Et((t=>{t.itemSchema.writeOnly(e)}))}function Gr(e=Object){if((0,O.isClass)(e)){const{schema:t}=re(e);return t.properties=function(t){return Object.entries(t).forEach((([t,r])=>{re(e.prototype,t).schema.assign(r)})),this},t}return D.from({type:e})}function qr(){return Gr(String)}function Br(...e){const t=[e.map((e=>function(e){return(0,O.isObject)(e)&&!("toJSON"in e)}(e)?qr().enum(Object.values(e)):e))],r=(...e)=>{A.from(...e).nestedGenerics=t};return r.Nested=(...e)=>(t.push(e),r),r}function Ur(...e){return t=>{A.from(t).schema.genericLabels=e}}function Kr(...e){return Et(((t,r)=>{switch(t.decoratorType){case O.DecoratorTypes.METHOD:t.operation.produces(e);break;case O.DecoratorTypes.CLASS:(0,O.decorateMethodsOf)(r[0],Kr(...e));break;default:throw new O.UnsupportedDecoratorType(Kr,r)}}))}function Jr(...e){return(0,O.useDecorators)(Kr(...e),(0,O.StoreSet)("acceptMimes",e))}function Fr(...e){return Et(((t,r)=>{switch(t.decoratorType){case O.DecoratorTypes.METHOD:t.operation.consumes(e);break;case O.DecoratorTypes.CLASS:(0,O.decorateMethodsOf)(r[0],Fr(...e));break;default:throw new O.UnsupportedDecoratorType(Fr,r)}}))}class Vr 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 Wr=new Map;function Xr(e,t){Wr.set(e,t)}function zr(e){return Wr.get(e)}function Yr(e){return e.map((e=>function(e){return(0,O.isObject)(e)&&!("toJSON"in e)}(e)?qr().enum(Object.values(e)):e))}class Qr extends Vr{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&&pt(e)&&!this.get("description")&&(this.set("description",pt(e)),this.get("model")||this.model(zr(+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(Yr(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(Yr(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 Y;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 Zr(e,t){return new Qr({status:e,model:t}).build()}function es(e){return Zr().ContentType(e)}function ts(e=!0){return Et(((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],ts(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(ts,r)}}))}function rs(e,t){return void 0!==t&&(e={[e]:t}),void 0===t&&(0,O.isString)(e)&&(e={[e]:{type:"string"}}),Zr().Headers(e)}function ss(e){const t=new Y,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(ss,[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 ns(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)(ss(W.FILES),vr(o),(0,O.useMethodDecorators)(Zr(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"),Fr("multipart/form-data")))(...t)}}function is(e,t){return Zr().Location(e,t)}const os=new Set([...Object.keys(a).filter((e=>e!==a.CUSTOM)).map((e=>e.toLowerCase()))]);function as(e){let t,r;const s=e.filter((e=>"string"==typeof e&&os.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 cs extends Vr{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.operationPath=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 this.operationPath?.summary(t),void this.entity.operation.summary(t);case"description":return this.operationPath?.description(t),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 ps(...e){const t=as(e);return new cs(t).build()}function us(e){return Et(((t,r)=>{if(t.decoratorType!==O.DecoratorTypes.METHOD)throw new O.UnsupportedDecoratorType(us,r);t.operation.operationId(e)}))}function hs(e,t="/"){return Et(((r,s)=>{if(r.decoratorType!==O.DecoratorTypes.METHOD)throw new O.UnsupportedDecoratorType(hs,s);r.operation.addOperationPath(e.toUpperCase(),t)}))}function ls(){return Or("partial")}function ms(e){return Et(((t,r)=>{if(t.decoratorType!==O.DecoratorTypes.CLASS)throw new O.UnsupportedDecoratorType(ms,r);t.path=e}))}function ds(e){return ps(a.PUBLISH,e)}function fs(...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)(Zr(t).Location(r,s),Et((e=>{e.operation?.setRedirection(t)})))}function gs(e="/",...t){return ps(...[a.ALL,e].concat(t))}function ys(e="/",...t){return ps(...[a.GET,e].concat(t))}function Os(e="/",...t){return ps(...[a.POST,e].concat(t))}function Ss(e="/",...t){return ps(...[a.PUT,e].concat(t))}function bs(e="/",...t){return ps(...[a.DELETE,e].concat(t))}function Rs(e="/",...t){return ps(...[a.HEAD,e].concat(t))}function As(e="/",...t){return ps(...[a.PATCH,e].concat(t))}function Es(e="/",...t){return ps(...[a.OPTIONS,e].concat(t))}function Ts(e,...t){return Et(((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],Ts(e)):(0,O.decorateMethodsOf)(s[0],Ts(e,...t));break;default:throw new O.UnsupportedDecoratorType(Ts,s)}}))}function Ps(e,t){return Zr(e,t)}function vs(e){return ps(a.SUBSCRIBE,e)}function Cs(e){return Et(((t,r)=>{if(t.decoratorType!==O.DecoratorTypes.METHOD)throw new O.UnsupportedDecoratorType(Cs,r);t.operation.summary(e)}))}function xs(...e){return Et(((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],xs(...e));break;default:throw new O.UnsupportedDecoratorType(xs,r)}}))}function $s(e,t){return(0,O.StoreSet)("view",{path:e,options:t})}function Ms(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 ws{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 Ms(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 _s(...e){return Gr().allOf(e)}function Ns(...e){return Gr().any(...e)}function Is(...e){return Gr().anyOf(e)}function Ds(){return Gr(Boolean)}function Ls(){return Gr(Array)}function ks(){return Gr(Map).unknown(!0)}function js(){return Gr(Array).uniqueItems(!0)}function Hs(){return Gr(Date).format(ir.DATE)}function Gs(){return Gr(Date).format(ir.DATE_TIME)}function qs(){return Gr(Date).format(ir.TIME)}function Bs(){return Gr(String).format(ir.EMAIL)}function Us(e){const t=qr().enum(e);return P.set(e,t),t}function Ks(){return Gr(Number).integer()}function Js(e){try{if(e())return A.from(e()).schema}catch(e){}return new ye(e)}function Fs(){return Gr(Number)}function Vs(e={}){return Gr(Object).properties(e)}function Ws(...e){return Gr().oneOf(e)}function Xs(){return Gr(String).format(ir.URI)}function zs(){return Gr(String).format(ir.URL)}const Ys=(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)),Qs=(0,O.mergeReducerBuilder)(((e,t)=>e.in===t.in&&e.name===t.name)),Zs=(0,O.mergeReducerBuilder)(((e,t)=>!!Object.keys(t).find((t=>!!e[t])))),en=(0,O.mergeReducerBuilder)(((e,t)=>e.name===t.name)),tn={security:Zs,parameters:Qs,oneOf:Ys,anyOf:Ys,allOf:Ys,tags:en};function rn(e,t){return(0,O.deepMerge)(e,t,{reducers:tn,cleanUndefinedProps:!0})}const sn=new Map;function nn(e,t={}){if(t={specType:pe.OPENAPI,...t,tags:[],paths:{},channels:{},components:{},operationIdFormatter:t.operationIdFormatter||Ot(t.operationIdPattern),root:!1},(0,O.isArray)(e)){let r={};return t={...t,append(e){r=rn(r,e)}},e.forEach((({token:e,...r})=>{const s=nn(e,{...t,...r});t.append(s)})),r}return function(e,t,r){sn.has(e)||sn.set(e,new Map);const s=sn.get(e),n=JSON.stringify(t);return s.has(n)||s.set(n,r()),s.get(n)}(e,t,(()=>function(e,t){const r=re(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 on(e){return e.startsWith("3.")?pe.OPENAPI:pe.SWAGGER}function an(e){return"openapi"in e?pe.OPENAPI:pe.SWAGGER}function cn(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 pn(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:cn((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 un(e,{specVersion:t}){const{servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}=e;return{openapi:t,info:cn((0,O.getValue)(e,"info",{})),servers:r,paths:s,components:n,security:i,tags:o,externalDocs:a}}function hn(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(on(s)){case pe.OPENAPI:e=un(e,i),t=t?un(t,i):t;break;default:case pe.SWAGGER:e=pn(e,i),t=t?pn(t,i):t}return e=rn(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 ln=["get","put","post","delete","options","head","patch","trace"],mn=["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],dn=["type","items"],fn=/^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/,gn={APPLICATION_X_WWW_URLENCODED:"application/x-www-form-urlencoded",MULTIPART_FORM_DATA:"multipart/form-data"};function yn(e){if(Array.isArray(e))e.forEach(yn);else if("object"==typeof e)for(let t in e)"$ref"===t?e.$ref=e.$ref.replace("#/components/schemas/","#/definitions/").replace("#/components/","#/x-components/"):yn(e[t])}function On(e){return new RegExp(fn,"i").test(e)}function Sn(e){const t=Object.keys(gn).map((e=>gn[e]));return Object.keys(e).filter((e=>t.indexOf(e)>-1||On(e)))}function bn(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 Rn(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 An{constructor(e){this.spec=JSON.parse(JSON.stringify(e))}convertInfos(){const e=this.spec.servers&&this.spec.servers[0];return e?Rn(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,yn(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(ln.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=Sn(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=Sn(t)[0],delete i.content,[gn.APPLICATION_X_WWW_URLENCODED,gn.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,mn),this.copySchemaProperties(t,dn),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&&On(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=bn(this.spec.components.securitySchemes),delete this.spec.components.securitySchemes)}}function En(e){return new An(e).convert()}function Tn({tokens:e,...t}){const{version:r="1.0.0",acceptMimes:s,fileSpec:n={},specVersion:i}=t,o=hn((0,O.getValue)(t,"spec",{}),{fileSpec:n,version:r,specVersion:i,acceptMimes:s}),a=an(o),c=rn(o,nn(e,t));return t.sortPaths&&(c.paths=Object.fromEntries(Object.entries(c.paths).sort((([e],[t])=>e.localeCompare(t))))),a===pe.SWAGGER?En(c):c}const Pn="$cache:schemes";function vn(e,t={}){const r=re(e),s=t.specType||pe.JSON;return t={endpoint:!0,groups:[],inlineEnums:s===pe.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(Pn)||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(Pn,r),r.get(s)}(r,t)}function Cn(e,t={}){const r=e.isStore?e:re(e),s=Ms(t.basePath,r.path);let n=[];return t.withChildren&&(n=r.get("childrenControllers",[]).reduce(((e,r)=>e.concat(Cn(r,{...t,basePath:s}))),n)),[...ie(e).values()].reduce(((r,n)=>{const{operation:i}=n;return i&&i.getAllowedOperationPath(t.allowedVerbs).forEach((t=>{r.push(new ws({basePath:s,token:e,endpoint:n,operationPath:t}))})),r}),n)}function xn(e){const t=e.isStore?e:re(e);if(!t.$properties){const e=ne(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 $n(e,t={}){const r=xn(e),s=new Map;return r.forEach(((e,r)=>{!t.withIgnoredProps&&He(e.itemSchema,t)||s.set(r,e)})),s}return o})()));
3
3
  //# sourceMappingURL=schema.umd.min.js.map