@tsed/schema 7.35.0-rc.1 → 7.35.1
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/jest.config.js +3 -3
- package/lib/browser/schema.umd.min.js +1 -1
- package/lib/browser/schema.umd.min.js.map +1 -1
- package/lib/cjs/decorators/common/ignore.js +0 -1
- package/lib/cjs/decorators/common/ignore.js.map +1 -1
- package/lib/cjs/decorators/common/property.js +1 -1
- package/lib/cjs/decorators/common/property.js.map +1 -1
- package/lib/cjs/domain/JsonClassStore.js.map +1 -1
- package/lib/cjs/domain/JsonEntityStore.js +1 -3
- package/lib/cjs/domain/JsonEntityStore.js.map +1 -1
- package/lib/cjs/domain/JsonMethodStore.js.map +1 -1
- package/lib/cjs/domain/JsonParameterStore.js.map +1 -1
- package/lib/cjs/domain/JsonPropertyStore.js.map +1 -1
- package/lib/esm/decorators/common/ignore.js +0 -1
- package/lib/esm/decorators/common/ignore.js.map +1 -1
- package/lib/esm/decorators/common/property.js +2 -2
- package/lib/esm/decorators/common/property.js.map +1 -1
- package/lib/esm/domain/JsonClassStore.js.map +1 -1
- package/lib/esm/domain/JsonEntityStore.js +2 -4
- package/lib/esm/domain/JsonEntityStore.js.map +1 -1
- package/lib/esm/domain/JsonMethodStore.js.map +1 -1
- package/lib/esm/domain/JsonParameterStore.js.map +1 -1
- package/lib/esm/domain/JsonPropertyStore.js.map +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/decorators/common/ignore.d.ts +0 -1
- package/lib/types/utils/withErrorMsg.d.ts +1 -1
- package/package.json +9 -12
package/jest.config.js
CHANGED
|
@@ -6,10 +6,10 @@ module.exports = {
|
|
|
6
6
|
roots: ["<rootDir>/src", "<rootDir>/test"],
|
|
7
7
|
coverageThreshold: {
|
|
8
8
|
global: {
|
|
9
|
-
statements: 99.
|
|
10
|
-
branches: 96.
|
|
9
|
+
statements: 99.46,
|
|
10
|
+
branches: 96.23,
|
|
11
11
|
functions: 100,
|
|
12
|
-
lines: 99.
|
|
12
|
+
lines: 99.46
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
moduleNameMapper: {
|
|
@@ -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("@tsed/core"),require("change-case")):"function"==typeof define&&define.amd?define(["@tsed/core","change-case"],t):"object"==typeof exports?exports.schema=t(require("@tsed/core"),require("change-case")):e.schema=t(e["@tsed/core"],e["change-case"])}(self,((e,t)=>(()=>{"use strict";var r={379:e=>{const t="\\\\/",r=`[^${t}]`,s="\\.",n="\\/",i="[^/]",o=`(?:${n}|$)`,a=`(?:^|${n})`,c=`${s}{1,2}${o}`,p={DOT_LITERAL:s,PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:n,ONE_CHAR:"(?=.)",QMARK:i,END_ANCHOR:o,DOTS_SLASH:c,NO_DOT:`(?!${s})`,NO_DOTS:`(?!${a}${c})`,NO_DOT_SLASH:`(?!${s}{0,1}${o})`,NO_DOTS_SLASH:`(?!${c})`,QMARK_NO_DOT:`[^.${n}]`,STAR:`${i}*?`,START_ANCHOR:a,SEP:"/"},u={...p,SLASH_LITERAL:`[${t}]`,QMARK:r,STAR:`${r}*?`,DOTS_SLASH:`${s}{1,2}(?:[${t}]|$)`,NO_DOT:`(?!${s})`,NO_DOTS:`(?!(?:^|[${t}])${s}{1,2}(?:[${t}]|$))`,NO_DOT_SLASH:`(?!${s}{0,1}(?:[${t}]|$))`,NO_DOTS_SLASH:`(?!${s}{1,2}(?:[${t}]|$))`,QMARK_NO_DOT:`[^.${t}]`,START_ANCHOR:`(?:^|[${t}])`,END_ANCHOR:`(?:[${t}]|$)`,SEP:"\\"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?u:p}},390:(e,t,r)=>{const s=r(379),n=r(290),{MAX_LENGTH:i,POSIX_REGEX_SOURCE:o,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:c,REPLACEMENTS:p}=s,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map((e=>n.escapeRegex(e))).join("..")}return r},h=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,l=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=p[e]||e;const r={...t},l="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;let m=e.length;if(m>l)throw new SyntaxError(`Input length: ${m}, exceeds maximum allowed length: ${l}`);const d={type:"bos",value:"",output:r.prepend||""},f=[d],y=r.capture?"":"?:",g=s.globChars(r.windows),O=s.extglobChars(g),{DOT_LITERAL:S,PLUS_LITERAL:b,SLASH_LITERAL:R,ONE_CHAR:T,DOTS_SLASH:A,NO_DOT:E,NO_DOT_SLASH:v,NO_DOTS_SLASH:x,QMARK:C,QMARK_NO_DOT:P,STAR:$,START_ANCHOR:w}=g,M=e=>`(${y}(?:(?!${w}${e.dot?A:S}).)*?)`,_=r.dot?"":E,N=r.dot?C:P;let D=!0===r.bash?M(r):$;r.capture&&(D=`(${D})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const L={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,L),m=e.length;const k=[],I=[],j=[];let H,q=d;const G=()=>L.index===m-1,U=L.peek=(t=1)=>e[L.index+t],B=L.advance=()=>e[++L.index],K=()=>e.slice(L.index+1),J=(e="",t=0)=>{L.consumed+=e,L.index+=t},F=e=>{L.output+=null!=e.output?e.output:e.value,J(e.value)},W=()=>{let e=1;for(;"!"===U()&&("("!==U(2)||"?"===U(3));)B(),L.start++,e++;return e%2!=0&&(L.negated=!0,L.start++,!0)},V=e=>{L[e]++,j.push(e)},X=e=>{L[e]--,j.pop()},z=e=>{if("globstar"===q.type){const t=L.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||k.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(L.output=L.output.slice(0,-q.output.length),q.type="star",q.value="*",q.output=D,L.output+=q.output)}if(k.length&&"paren"!==e.type&&!O[e.value]&&(k[k.length-1].inner+=e.value),(e.value||e.output)&&F(e),q&&"text"===q.type&&"text"===e.type)return q.value+=e.value,void(q.output=(q.output||"")+e.value);e.prev=q,f.push(e),q=e},Q=(e,t)=>{const s={...O[t],conditions:1,inner:""};s.prev=q,s.parens=L.parens,s.output=L.output;const n=(r.capture?"(":"")+s.open;V("parens"),z({type:e,value:t,output:L.output?"":T}),z({type:"paren",extglob:!0,value:B(),output:n}),k.push(s)},Y=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let s=D;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(s=M(r)),(s!==D||G()||/^\)+$/.test(K()))&&(t=e.close=`)$))${s}`),"bos"===e.prev.type&&G()&&(L.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?D:""):D: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?(L.output=e,L):(L.output=n.wrapOutput(i,L,t),L)}for(;!G();){if(H=B(),"\0"===H)continue;if("\\"===H){const e=U();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,L.index+=s,s%2!=0&&(H+="\\")),!0===r.unescape?H=B()||"":H+=B()||"",0===L.brackets){z({type:"text",value:H});continue}}if(L.brackets>0&&("]"!==H||"["===q.value||"[^"===q.value)){if(!1!==r.posix&&":"===H){const e=q.value.slice(1);if(e.includes("[")&&(q.posix=!0,e.includes(":"))){const e=q.value.lastIndexOf("["),t=q.value.slice(0,e),r=q.value.slice(e+2),s=o[r];if(s){q.value=t+s,L.backtrack=!0,B(),d.output||1!==f.indexOf(q)||(d.output=T);continue}}}("["===H&&":"!==U()||"-"===H&&"]"===U())&&(H=`\\${H}`),"]"!==H||"["!==q.value&&"[^"!==q.value||(H=`\\${H}`),!0===r.posix&&"!"===H&&"["===q.value&&(H="^"),q.value+=H,F({value:H});continue}if(1===L.quotes&&'"'!==H){H=n.escapeRegex(H),q.value+=H,F({value:H});continue}if('"'===H){L.quotes=1===L.quotes?0:1,!0===r.keepQuotes&&z({type:"text",value:H});continue}if("("===H){V("parens"),z({type:"paren",value:H});continue}if(")"===H){if(0===L.parens&&!0===r.strictBrackets)throw new SyntaxError(h("opening","("));const e=k[k.length-1];if(e&&L.parens===e.parens+1){Y(k.pop());continue}z({type:"paren",value:H,output:L.parens?")":"\\)"}),X("parens");continue}if("["===H){if(!0!==r.nobracket&&K().includes("]"))V("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));H=`\\${H}`}z({type:"bracket",value:H});continue}if("]"===H){if(!0===r.nobracket||q&&"bracket"===q.type&&1===q.value.length){z({type:"text",value:H,output:`\\${H}`});continue}if(0===L.brackets){if(!0===r.strictBrackets)throw new SyntaxError(h("opening","["));z({type:"text",value:H,output:`\\${H}`});continue}X("brackets");const e=q.value.slice(1);if(!0===q.posix||"^"!==e[0]||e.includes("/")||(H=`/${H}`),q.value+=H,F({value:H}),!1===r.literalBrackets||n.hasRegexChars(e))continue;const t=n.escapeRegex(q.value);if(L.output=L.output.slice(0,-q.value.length),!0===r.literalBrackets){L.output+=t,q.value=t;continue}q.value=`(${y}${t}|${q.value})`,L.output+=q.value;continue}if("{"===H&&!0!==r.nobrace){V("braces");const e={type:"brace",value:H,output:"(",outputIndex:L.output.length,tokensIndex:L.tokens.length};I.push(e),z(e);continue}if("}"===H){const e=I[I.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),L.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=L.output.slice(0,e.outputIndex),s=L.tokens.slice(e.tokensIndex);e.value=e.output="\\{",H=t="\\}",L.output=r;for(const e of s)L.output+=e.output||e.value}z({type:"brace",value:H,output:t}),X("braces"),I.pop();continue}if("|"===H){k.length>0&&k[k.length-1].conditions++,z({type:"text",value:H});continue}if(","===H){let e=H;const t=I[I.length-1];t&&"braces"===j[j.length-1]&&(t.comma=!0,e="|"),z({type:"comma",value:H,output:e});continue}if("/"===H){if("dot"===q.type&&L.index===L.start+1){L.start=L.index+1,L.consumed="",L.output="",f.pop(),q=d;continue}z({type:"slash",value:H,output:R});continue}if("."===H){if(L.braces>0&&"dot"===q.type){"."===q.value&&(q.output=S);const e=I[I.length-1];q.type="dots",q.output+=H,q.value+=H,e.dots=!0;continue}if(L.braces+L.parens===0&&"bos"!==q.type&&"slash"!==q.type){z({type:"text",value:H,output:S});continue}z({type:"dot",value:H,output:S});continue}if("?"===H){if((!q||"("!==q.value)&&!0!==r.noextglob&&"("===U()&&"?"!==U(2)){Q("qmark",H);continue}if(q&&"paren"===q.type){const e=U();let t=H;if("<"===e&&!n.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===q.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),z({type:"text",value:H,output:t});continue}if(!0!==r.dot&&("slash"===q.type||"bos"===q.type)){z({type:"qmark",value:H,output:P});continue}z({type:"qmark",value:H,output:C});continue}if("!"===H){if(!0!==r.noextglob&&"("===U()&&("?"!==U(2)||!/[!=<:]/.test(U(3)))){Q("negate",H);continue}if(!0!==r.nonegate&&0===L.index){W();continue}}if("+"===H){if(!0!==r.noextglob&&"("===U()&&"?"!==U(2)){Q("plus",H);continue}if(q&&"("===q.value||!1===r.regex){z({type:"plus",value:H,output:b});continue}if(q&&("bracket"===q.type||"paren"===q.type||"brace"===q.type)||L.parens>0){z({type:"plus",value:H});continue}z({type:"plus",value:b});continue}if("@"===H){if(!0!==r.noextglob&&"("===U()&&"?"!==U(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],L.index+=e[0].length),z({type:"text",value:H});continue}if(q&&("globstar"===q.type||!0===q.star)){q.type="star",q.star=!0,q.value+=H,q.output=D,L.backtrack=!0,L.globstar=!0,J(H);continue}let t=K();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Q("star",H);continue}if("star"===q.type){if(!0===r.noglobstar){J(H);continue}const s=q.prev,n=s.prev,i="slash"===s.type||"bos"===s.type,o=n&&("star"===n.type||"globstar"===n.type);if(!0===r.bash&&(!i||t[0]&&"/"!==t[0])){z({type:"star",value:H,output:""});continue}const a=L.braces>0&&("comma"===s.type||"brace"===s.type),c=k.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[L.index+4];if(r&&"/"!==r)break;t=t.slice(3),J("/**",3)}if("bos"===s.type&&G()){q.type="globstar",q.value+=H,q.output=M(r),L.output=q.output,L.globstar=!0,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&!o&&G()){L.output=L.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=M(r)+(r.strictSlashes?")":"|$)"),q.value+=H,L.globstar=!0,L.output+=s.output+q.output,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";L.output=L.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=`${M(r)}${R}|${R}${e})`,q.value+=H,L.output+=s.output+q.output,L.globstar=!0,J(H+B()),z({type:"slash",value:"/",output:""});continue}if("bos"===s.type&&"/"===t[0]){q.type="globstar",q.value+=H,q.output=`(?:^|${R}|${M(r)}${R})`,L.output=q.output,L.globstar=!0,J(H+B()),z({type:"slash",value:"/",output:""});continue}L.output=L.output.slice(0,-q.output.length),q.type="globstar",q.output=M(r),q.value+=H,L.output+=q.output,L.globstar=!0,J(H);continue}const s={type:"star",value:H,output:D};!0!==r.bash?!q||"bracket"!==q.type&&"paren"!==q.type||!0!==r.regex?(L.index!==L.start&&"slash"!==q.type&&"dot"!==q.type||("dot"===q.type?(L.output+=v,q.output+=v):!0===r.dot?(L.output+=x,q.output+=x):(L.output+=_,q.output+=_),"*"!==U()&&(L.output+=T,q.output+=T)),z(s)):(s.output=H,z(s)):(s.output=".*?","bos"!==q.type&&"slash"!==q.type||(s.output=_+s.output),z(s))}for(;L.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));L.output=n.escapeLast(L.output,"["),X("brackets")}for(;L.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing",")"));L.output=n.escapeLast(L.output,"("),X("parens")}for(;L.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","}"));L.output=n.escapeLast(L.output,"{"),X("braces")}if(!0===r.strictSlashes||"star"!==q.type&&"bracket"!==q.type||z({type:"maybe_slash",value:"",output:`${R}?`}),!0===L.backtrack){L.output="";for(const e of L.tokens)L.output+=null!=e.output?e.output:e.value,e.suffix&&(L.output+=e.suffix)}return L};l.fastpaths=(e,t)=>{const r={...t},o="number"==typeof r.maxLength?Math.min(i,r.maxLength):i,a=e.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);e=p[e]||e;const{DOT_LITERAL:c,SLASH_LITERAL:u,ONE_CHAR:h,DOTS_SLASH:l,NO_DOT:m,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:y,START_ANCHOR:g}=s.globChars(r.windows),O=r.dot?d:m,S=r.dot?f:m,b=r.capture?"":"?:";let R=!0===r.bash?".*?":y;r.capture&&(R=`(${R})`);const T=e=>!0===e.noglobstar?R:`(${b}(?:(?!${g}${e.dot?l:c}).)*?)`,A=e=>{switch(e){case"*":return`${O}${h}${R}`;case".*":return`${c}${h}${R}`;case"*.*":return`${O}${R}${c}${h}${R}`;case"*/*":return`${O}${R}${u}${h}${S}${R}`;case"**":return O+T(r);case"**/*":return`(?:${O}${T(r)}${u})?${S}${h}${R}`;case"**/*.*":return`(?:${O}${T(r)}${u})?${S}${R}${c}${h}${R}`;case"**/.*":return`(?:${O}${T(r)}${u})?${c}${h}${R}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=A(t[1]);if(!r)return;return r+c+t[2]}}},E=n.removePrefix(e,{negated:!1,prefix:""});let v=A(E);return v&&!0!==r.strictSlashes&&(v+=`${u}?`),v},e.exports=l},555:(e,t,r)=>{const s=r(270),n=r(390),i=r(290),o=r(379),a=(e,t,r=!1)=>{if(Array.isArray(e)){const s=e.map((e=>a(e,t,r))),n=e=>{for(const t of s){const r=t(e);if(r)return r}return!1};return n}const s=(n=e)&&"object"==typeof n&&!Array.isArray(n)&&e.tokens&&e.input;var n;if(""===e||"string"!=typeof e&&!s)throw new TypeError("Expected pattern to be a non-empty string");const i=t||{},o=i.windows,c=s?a.compileRe(e,t):a.makeRe(e,t,!1,!0),p=c.state;delete c.state;let u=()=>!1;if(i.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};u=a(i.ignore,e,r)}const h=(r,s=!1)=>{const{isMatch:n,match:h,output:l}=a.test(r,c,t,{glob:e,posix:o}),m={glob:e,state:p,regex:c,posix:o,input:r,output:l,match:h,isMatch:n};return"function"==typeof i.onResult&&i.onResult(m),!1===n?(m.isMatch=!1,!!s&&m):u(r)?("function"==typeof i.onIgnore&&i.onIgnore(m),m.isMatch=!1,!!s&&m):("function"==typeof i.onMatch&&i.onMatch(m),!s||m)};return r&&(h.state=p),h};a.test=(e,t,r,{glob:s,posix:n}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const o=r||{},c=o.format||(n?i.toPosixSlashes:null);let p=e===s,u=p&&c?c(e):e;return!1===p&&(u=c?c(e):e,p=u===s),!1!==p&&!0!==o.capture||(p=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,n):t.exec(u)),{isMatch:Boolean(p),match:p,output:u}},a.matchBase=(e,t,r)=>(t instanceof RegExp?t:a.makeRe(t,r)).test(i.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map((e=>a.parse(e,t))):n(e,{...t,fastpaths:!1}),a.scan=(e,t)=>s(e,t),a.compileRe=(e,t,r=!1,s=!1)=>{if(!0===r)return e.output;const n=t||{},i=n.contains?"":"^",o=n.contains?"":"$";let c=`${i}(?:${e.output})${o}`;e&&!0===e.negated&&(c=`^(?!${c}).*$`);const p=a.toRegex(c,t);return!0===s&&(p.state=e),p},a.makeRe=(e,t,r=!1,s=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let o,c={negated:!1,fastpaths:!0},p="";return e.startsWith("./")&&(e=e.slice(2),p=c.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(o=n.fastpaths(e,t)),void 0===o?(c=n(e,t),c.prefix=p+(c.prefix||"")):c.output=o,a.compileRe(c,t,r,s)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=o,e.exports=a},270:(e,t,r)=>{const s=r(290),{CHAR_ASTERISK:n,CHAR_AT:i,CHAR_BACKWARD_SLASH:o,CHAR_COMMA:a,CHAR_DOT:c,CHAR_EXCLAMATION_MARK:p,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:h,CHAR_LEFT_PARENTHESES:l,CHAR_LEFT_SQUARE_BRACKET:m,CHAR_PLUS:d,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:y,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:O}=r(379),S=e=>e===u||e===o,b=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},R=e.length-1,T=!0===r.parts||!0===r.scanToEnd,A=[],E=[],v=[];let x,C,P=e,$=-1,w=0,M=0,_=!1,N=!1,D=!1,L=!1,k=!1,I=!1,j=!1,H=!1,q=!1,G=0,U={value:"",depth:0,isGlob:!1};const B=()=>$>=R,K=()=>(x=C,P.charCodeAt(++$));for(;$<R;){let e;if(C=K(),C!==o){if(!0===I||C===h){for(G++;!0!==B()&&(C=K());)if(C!==o)if(C!==h){if(!0!==I&&C===c&&(C=K())===c){if(_=U.isBrace=!0,D=U.isGlob=!0,q=!0,!0===T)continue;break}if(!0!==I&&C===a){if(_=U.isBrace=!0,D=U.isGlob=!0,q=!0,!0===T)continue;break}if(C===y&&(G--,0===G)){I=!1,_=U.isBrace=!0,q=!0;break}}else G++;else j=U.backslashes=!0,K();if(!0===T)continue;break}if(C!==u){if(!0!==r.noext&&!0==(C===d||C===i||C===n||C===f||C===p)&&P.charCodeAt($+1)===l){if(D=U.isGlob=!0,L=U.isExtglob=!0,q=!0,!0===T){for(;!0!==B()&&(C=K());)if(C!==o){if(C===g){D=U.isGlob=!0,q=!0;break}}else j=U.backslashes=!0,C=K();continue}break}if(C===n){if(x===n&&(k=U.isGlobstar=!0),D=U.isGlob=!0,q=!0,!0===T)continue;break}if(C===f){if(D=U.isGlob=!0,q=!0,!0===T)continue;break}if(C===m)for(;!0!==B()&&(e=K());)if(e!==o){if(e===O){if(N=U.isBracket=!0,D=U.isGlob=!0,q=!0,!0===T)continue;break}}else j=U.backslashes=!0,K();if(!0===r.nonegate||C!==p||$!==w){if(!0!==r.noparen&&C===l){if(D=U.isGlob=!0,!0===T){for(;!0!==B()&&(C=K());)if(C!==l){if(C===g){q=!0;break}}else j=U.backslashes=!0,C=K();continue}break}if(!0===D){if(q=!0,!0===T)continue;break}}else H=U.negated=!0,w++}else{if(A.push($),E.push(U),U={value:"",depth:0,isGlob:!1},!0===q)continue;if(x===c&&$===w+1){w+=2;continue}M=$+1}}else j=U.backslashes=!0,C=K(),C===h&&(I=!0)}!0===r.noext&&(L=!1,D=!1);let J=P,F="",W="";w>0&&(F=P.slice(0,w),P=P.slice(w),M-=w),J&&!0===D&&M>0?(J=P.slice(0,M),W=P.slice(M)):!0===D?(J="",W=P):J=P,J&&""!==J&&"/"!==J&&J!==P&&S(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(W&&(W=s.removeBackslashes(W)),J&&!0===j&&(J=s.removeBackslashes(J)));const V={prefix:F,input:e,start:w,base:J,glob:W,isBrace:_,isBracket:N,isGlob:D,isExtglob:L,isGlobstar:k,negated:H};if(!0===r.tokens&&(V.maxDepth=0,S(C)||E.push(U),V.tokens=E),!0===r.parts||!0===r.tokens){let t;for(let s=0;s<A.length;s++){const n=t?t+1:w,i=A[s],o=e.slice(n,i);r.tokens&&(0===s&&0!==w?(E[s].isPrefix=!0,E[s].value=F):E[s].value=o,b(E[s]),V.maxDepth+=E[s].depth),0===s&&""===o||v.push(o),t=i}if(t&&t+1<e.length){const s=e.slice(t+1);v.push(s),r.tokens&&(E[E.length-1].value=s,b(E[E.length-1]),V.maxDepth+=E[E.length-1].depth)}V.slashes=A,V.parts=v}return V}},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(/.*\//,"")},870:(e,t,r)=>{e.exports=r(555)},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:t=>{t.exports=e},598:e=>{e.exports=t},739:e=>{e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{n.r(i),n.d(i,{AcceptMime:()=>Dr,AdditionalProperties:()=>at,All:()=>ss,AllOf:()=>ct,Allow:()=>ut,Any:()=>ht,AnyOf:()=>lt,ArrayOf:()=>Qe,Children:()=>Ve,CollectionContains:()=>Ze,CollectionOf:()=>ze,Const:()=>mt,Consumes:()=>Lr,ContentType:()=>Br,Converter:()=>Bs,CustomKey:()=>dt,CustomKeys:()=>ft,DateFormat:()=>Nt,DateTime:()=>_t,DecoratorContext:()=>kr,Default:()=>yt,DefaultMsg:()=>gt,Delete:()=>as,Deprecated:()=>Kr,Description:()=>Ot,Discriminator:()=>b,DiscriminatorKey:()=>St,DiscriminatorValue:()=>Xe,Email:()=>Mt,EndpointMetadata:()=>B,Enum:()=>bt,ErrorMsg:()=>et,Example:()=>Rt,Examples:()=>Tt,ExclusiveMaximum:()=>vt,ExclusiveMinimum:()=>Pt,For:()=>sr,Format:()=>wt,ForwardGroups:()=>It,GenericOf:()=>Mr,Generics:()=>_r,Get:()=>ns,Groups:()=>Ut,HTTP_METHODS:()=>$e,HTTP_STATUS_MESSAGES:()=>Oe,Head:()=>cs,Header:()=>Jr,Hidden:()=>Bt,Ignore:()=>Jt,In:()=>Fr,InFile:()=>Wr,Integer:()=>Ft,JSON_TYPES:()=>f,JsonClassStore:()=>v,JsonEntitiesContainer:()=>t,JsonEntityComponent:()=>E,JsonEntityFn:()=>We,JsonEntityStore:()=>r,JsonFormatTypes:()=>$t,JsonLazyRef:()=>J,JsonMap:()=>P,JsonMedia:()=>H,JsonMethodStore:()=>U,JsonOperation:()=>G,JsonOperationPathsMap:()=>Me,JsonOperationRoute:()=>gs,JsonParameter:()=>_,JsonParameterStore:()=>N,JsonParameterTypes:()=>$,JsonPropertyStore:()=>x,JsonRequestBody:()=>Ae,JsonResponse:()=>q,JsonSchema:()=>A,Location:()=>Vr,MapOf:()=>Ye,Max:()=>Et,MaxItems:()=>rt,MaxLength:()=>Wt,MaxProperties:()=>st,Maximum:()=>At,Min:()=>Ct,MinItems:()=>nt,MinLength:()=>Vt,MinProperties:()=>it,Minimum:()=>xt,MultipleOf:()=>Xt,Name:()=>zt,Nullable:()=>Qt,OneOf:()=>Yt,OperationId:()=>Xr,OperationMethods:()=>we,OperationPath:()=>zr,Optional:()=>Zt,Options:()=>us,ParamMetadata:()=>D,Partial:()=>Qr,Patch:()=>ps,Path:()=>Yr,Pattern:()=>er,Post:()=>is,Produces:()=>Nr,Property:()=>pt,PropertyMetadata:()=>C,Put:()=>os,ReadOnly:()=>tr,RecordOf:()=>nr,Redirect:()=>Zr,Required:()=>ir,RequiredGroups:()=>or,Returns:()=>Ur,Route:()=>rs,Schema:()=>rr,Security:()=>hs,SpecTypes:()=>X,Status:()=>ls,Summary:()=>ms,Tags:()=>ds,TimeFormat:()=>Dt,Title:()=>ar,TypeError:()=>cr,UniqueItems:()=>ot,Uri:()=>Lt,Url:()=>kt,View:()=>fs,WriteOnly:()=>pr,allOf:()=>Pr,alterIgnore:()=>ce,alterOneOf:()=>Ue,alterRequiredGroups:()=>qe,any:()=>vr,anyMapper:()=>ee,anyOf:()=>xr,array:()=>Rr,boolean:()=>dr,buildPath:()=>xe,classMapper:()=>te,concatParameters:()=>Ce,concatPath:()=>ys,createRef:()=>Y,createRefName:()=>Q,date:()=>fr,datetime:()=>yr,defineStatusModel:()=>jr,email:()=>Or,enums:()=>wr,enumsRegistry:()=>a,execMapper:()=>h,formatParameterType:()=>w,from:()=>ur,generateSpec:()=>Js,genericsMapper:()=>re,getComputedType:()=>d,getGenericsMap:()=>F,getInheritedStores:()=>se,getJsonEntityStore:()=>K,getJsonPathParameters:()=>Pe,getJsonSchema:()=>Ws,getJsonSchemaMapper:()=>u,getJsonType:()=>y,getOperationsRoutes:()=>Vs,getOperationsStores:()=>_e,getProperties:()=>zs,getPropertiesStores:()=>Xs,getRequiredProperties:()=>Ge,getSpec:()=>xs,getSpecType:()=>Cs,getSpecTypeFromSpec:()=>Ps,getStatusConstant:()=>Se,getStatusMessage:()=>be,getStatusModel:()=>Hr,hasMapper:()=>l,inheritedClassMapper:()=>ne,inlineEnums:()=>Be,integer:()=>lr,isParameterType:()=>M,isRedirectionStatus:()=>k,isSuccessStatus:()=>L,itemMapper:()=>ie,lazyRef:()=>$r,lazyRefMapper:()=>oe,map:()=>Tr,mapAliasedProperties:()=>He,mapGenericsOptions:()=>W,mapHeaders:()=>I,mapMapper:()=>ae,mapNullableType:()=>pe,mapOpenSpec:()=>_s,mapOpenSpec2:()=>ws,mapOpenSpec3:()=>Ms,mapOpenSpecInfo:()=>$s,mapRouteOptions:()=>es,matchGroups:()=>Gt,mergeSpec:()=>As,number:()=>hr,object:()=>Er,objectMapper:()=>ue,ofMapper:()=>he,oneOf:()=>Cr,oneOfMapper:()=>m,operationIdFormatter:()=>Es,operationInFilesMapper:()=>le,operationInParameterMapper:()=>me,operationInParametersMapper:()=>de,operationInQueryMapper:()=>fe,operationMapper:()=>Re,operationMediaMapper:()=>Te,operationRequestBodyMapper:()=>Ee,operationResponseMapper:()=>ve,parameters:()=>Ss,pathsMapper:()=>Ie,popGenerics:()=>V,propertiesMapper:()=>je,registerJsonSchemaMapper:()=>p,schemaMapper:()=>Fe,schemesReducer:()=>Os,security:()=>bs,serializeEnum:()=>g,serializeEnumValues:()=>O,set:()=>Ar,string:()=>mr,tagsReducer:()=>Rs,time:()=>gr,toJsonMapCollection:()=>j,toJsonRegex:()=>S,toRef:()=>Z,transformInformation:()=>Us,transformSecurity:()=>Gs,transformToOS2:()=>Ks,uri:()=>Sr,url:()=>br,withErrorMsg:()=>tt});var e=n(803);const t=new Map;class r{propertyKey;propertyName;index;descriptor;decoratorType;collectionType;token;store;isStore=!0;parent;target;_type;_schema;constructor(e){const{target:t,propertyKey:r,descriptor:s,index:n,decoratorType:i}=e;this.target=t,this.propertyKey=r,this.propertyName=String(r),this.descriptor=s,this.index=n,this.decoratorType=i,this.token=t,this.store=e.store,this.parent=this}get targetName(){return(0,e.nameOf)(this.token)}get isCollection(){return!!this.collectionType}get isArray(){return(0,e.isArrayOrArrayClass)(this.collectionType)}get discriminatorAncestor(){const t=(0,e.ancestorsOf)(this.target).find((e=>r.from(e).schema.isDiscriminator));return t&&r.from(t)}get isPrimitive(){return(0,e.isPrimitiveOrPrimitiveClass)(this._type)}get isDate(){return(0,e.isDate)(this.computedType)}get isObject(){return(0,e.isObject)(this.computedType)}get isClass(){return(0,e.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(...r){if(r[0].isStore)return r[0];const s=r[0];r.length>1&&(r[0]=(0,e.prototypeOf)(r[0]));const n=e.Store.from(...r);if(!n.has("JsonEntityStore")){const i=(0,e.decoratorTypeOf)(r),o=t.get(i);if(!o)throw Error("Unsupported json entity type");const a=new o({store:n,decoratorType:i,target:(0,e.classOf)(s),propertyKey:r[1],index:"number"==typeof r[2]?r[2]:void 0,descriptor:"object"==typeof r[2]?r[2]:void 0});a.build(),n.set("JsonEntityStore",a)}return n.get("JsonEntityStore")}static fromMethod(t,r){return this.from(t,r,(0,e.descriptorOf)(t,r))}static get(t,s,n){return r.from((0,e.prototypeOf)(t),s,n)}isGetterOnly(){return(0,e.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(t){(0,e.isCollection)(t)?this.collectionType=t:(this._type=t,this._type&&(0,e.isPlainObject)(this._type)&&(this._type=String))}getBestType(){return this.itemSchema.isDiscriminator?this.itemSchema.discriminator():(0,e.isClassObject)(this.type)?this.itemSchema.getTarget():(0,e.isArrowFn)(this.type)?this.type():this.type}}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 o(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create,Object.create;const a=new Map,c=new Map;function p(e,t){return c.set(e,t)}function u(e){if(!c.has(e))throw new Error(`JsonSchema ${e} mapper doesn't exists`);return c.get(e)}function h(e,t,r,s){return u(e)(t,r,s)}function l(e){return c.has(e)}function m(...e){return e.find((e=>c.has(e)))}function d(t){return(0,e.isPromise)(t)||t===Function?Object:(0,e.isClass)(t)||(0,e.isSymbol)(t)||(0,e.isPrimitiveOrPrimitiveClass)(t)||(0,e.isClassObject)(t)||(0,e.isDate)(t)||(0,e.isCollection)(t)?(0,e.classOf)(t):(0,e.isArrowFn)(t)?t():t}const f=["string","number","integer","boolean","object","array","null","any"];function y(t){return null===t?"null":(0,e.isPrimitiveOrPrimitiveClass)(t)?f.indexOf(t)>-1?t:"string"==typeof t?"file"===t?"file":"generic":(0,e.primitiveOf)(t):t===Array?"array":(0,e.isArray)(t)?t.map(y):t===Set?"array":(0,e.isDate)(t)||(0,e.isBuffer)(t)?"string":"object"}const g=t=>(0,e.isObject)(t)&&null!==t?Object.entries(t).reduce(((e,[t,r])=>isNaN(+t)?e.concat(r):e),[]):t;function O(t){const r=t.reduce(((e,t)=>e.concat(g(t))),[]),s=r.reduce(((e,t)=>e.add((e=>null===e?"null":typeof e)(t))),new Set);return{values:(0,e.uniq)(r),types:s}}function S(e){return String(e).replace(/^(\/)(.*)(\/)$/,"$2")}class b{propertyName;base;values=new Map;types=new Map;constructor({base:t,propertyName:r,types:s,values:n}={}){Object.assign(this,(0,e.cleanObject)({base:t,propertyName:r,types:s?new Map(s):void 0,values:n?new Map(n):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 R(e){return e instanceof A?e:Object.entries(e).reduce(((e,[t,r])=>(e[S(t)]=T(r),e)),{})}function T(t){return(0,e.isArray)(t)?t.map(T):t.isStore||t.$isJsonDocument||t.isLazyRef?t:(0,e.classOf)(t)!==Object&&(0,e.isClass)(t)?r.from(t).schema:(0,e.isObject)(t)?A.from(t):(0,e.isPrimitiveClass)(t)?A.from({type:t}):t}class A extends Map{$kind="schema";$isJsonDocument=!0;$hooks=new e.Hooks;$required=new Set;$allow=[];$selfRequired;$forwardGroups=!1;isDiscriminatorKey=!1;isDiscriminator=!1;#e=!1;#t=null;#r;#s=[];#n=new Map;#i;#o;#a=!1;#c=!1;#p=!1;constructor(e={}){super(),e&&this.assign(e)}get alias(){return this.#n}get nestedGenerics(){return this.#s}set nestedGenerics(e){this.#s=e}get genericLabels(){return this.#r}set genericLabels(e){this.#r=e}get isClass(){return(0,e.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 t=(0,e.ancestorsOf)(this.#o).find((e=>r.from(e).schema.isDiscriminator));return t&&r.from(t).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||this.$allow.includes(null)}get isReadOnly(){return this.get("readOnly")}get isWriteOnly(){return this.get("writeOnly")}get hasDiscriminator(){return!!this.#t}static from(e={}){return new A(e)}nullable(e){this.#e=e}itemSchema(e={}){return this.#i=this.#i||T(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){if("boolean"==typeof e){const t=e;e=()=>t}return this.$hooks.on("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 b({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 A({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",T(e)),this}contains(e){return super.set("contains",T(e)),this}examples(e){return super.set("examples",e),this}example(...e){return this.examples(e)}items(e){return super.set("items",this.#i=T(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 this.$allow.push(...e),this}required(t=!0){if(!(0,e.isArray)(t)){const e=this.clone();return e.$selfRequired=t,e}return this.$required.clear(),t.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",R(e)),this}addProperty(e,t){const r=this.get("properties")||{};return r[e]=t,super.set("properties",R(r)),this}patternProperties(e){return super.set("patternProperties",R(e)),this}additionalProperties(e){return super.set("additionalProperties",T(e)),this}unknown(e=!0){return this.additionalProperties(e)}dependencies(e){return super.set("dependencies",R(e)),this}propertyNames(e){return super.set("propertyNames",T(e)),this}enum(e,...t){if(a.has(e))return this.enum(a.get(e));if(e instanceof A)e.getName()?super.set("enum",e):super.set("enum",e.get("enum")).any(...e.getJsonType());else{const{values:r,types:s}=O([e,t].flat());super.set("enum",r).any(...s)}return this}definitions(e){return super.set("definitions",R(e)),this}allOf(e){return super.set("allOf",e.map(T)),this}anyOf(e){return super.set("anyOf",e.map(T)),this}oneOf(e){let t=e.map(T);if(1===t.length&&!(e[0]instanceof A)){if(!t[0].hasDiscriminator)return this.type(e[0]);const r=t[0].discriminator().children();if(!r.length)return this.type(e[0]);t=r.map(T)}super.set("oneOf",t);const r=t[0];if(r.isDiscriminator){const e=r.discriminatorAncestor.discriminator(),{propertyName:t}=e;super.set("discriminator",{propertyName:t}),this.isDiscriminator=!0,this.#t=e}return this}not(e){return super.set("not",T(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",S(e)),this}format(e){return super.set("format",e),this}type(t){switch(t){case Map:super.set("type",y(t)),this.#o=t,this.#c=!0,this.has("additionalProperties")||super.set("additionalProperties",this.itemSchema({}));break;case Array:super.set("type",y(t)),this.#o=t,this.#c=!0,this.has("items")||super.set("items",this.itemSchema({}));break;case Set:super.set("type",y(t)),this.#o=t,this.#c=!0,this.uniqueItems(!0),this.has("items")||super.set("items",this.itemSchema({}));break;case"integer":super.set("type",y(t)),this.integer();break;case Object:case Date:case Boolean:case Number:case String:super.set("type",y(t)),this.#o=t,this.has("properties")||super.set("properties",{});break;default:if((0,e.isClass)(t)||(0,e.isFunction)(t))super.set("type",void 0),this.#o=t,this.has("properties")||super.set("properties",{});else{const e=y(t);"generic"===e?(this.#a=!0,super.set("$ref",t)):super.set("type",e)}}return this}any(...t){return t.filter((t=>(0,e.isClass)(t))).length>=2?this.oneOf(t.filter((e=>null!==e&&(this.nullable(!0),!0)))):(t.length?(t=(0,e.uniq)(t).map(y)).includes("null")&&(this.nullable(!0),t=t.filter((e=>"null"!==e))):(t=["integer","number","string","boolean","array","object"],this.nullable(!0)),this.type(1===t.length?t[0]:t)),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 h("schema",this,e)}assign(e={}){return(e instanceof A?[...e.entries()]:Object.entries(e)).forEach((([e,t])=>{this.set(e,t)})),e instanceof A&&(this.$selfRequired=e.$selfRequired,this.$allow.push(...e.$allow),e.$required.forEach((e=>{this.$required.add(e)})),this.#t=this.#t?new b(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,super.set("type",e.get("type"))),this}set(t,r){return t in this?(0,e.isFunction)(this[t])&&this[t](r):super.set(t,r),this}getComputedType(){return d(this.#o)}getComputedItemType(){return this.#i?this.#i.getComputedType():this.getComputedType()}getJsonType(){return this.get("type")||y(this.getComputedType())}getTarget(){return this.#o}getName(){return this.get("name")||((0,e.isClass)(this.#o)?(0,e.nameOf)((0,e.classOf)(this.getComputedType())):"")}clone(){return new A(this)}}function E(e){return r=>{t.set(e,r)}}let v=class extends r{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=A.from({type:this.type})}};v=s([E(e.DecoratorTypes.CLASS)],v);let x=class extends r{parent=r.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(e.Metadata.getType((0,e.prototypeOf)(this.target),this.propertyKey)),this._type=this._type||Object;let t=this.parent.schema.get("properties")[this.propertyName];t||(this.parent.children.set(this.propertyName,this),t=A.from({type:this.collectionType||this.type}),this.collectionType&&t.itemSchema(this.type)),this.parent.schema.addProperty(this.propertyName,t),this._schema=t}static get(t,s){return r.from((0,e.prototypeOf)(t),s)}};x=s([E(e.DecoratorTypes.PROP)],x);const C=x;class P extends Map{$kind="map";$isJsonDocument=!0;constructor(e={}){super(),this.assign(e)}assign(t={}){return Object.entries(t).forEach((([t,r])=>{(0,e.isFunction)(this[t])?this[t](r):this.set(t,r)})),this}toJSON(e){return h("map",this,e)}}var $;function w(e){return String(e).toLowerCase().replace("raw_","").replace("cookies","cookie")}function M(e){return Object.values($).includes(w(e))}!function(e){e.BODY="body",e.PATH="path",e.QUERY="query",e.HEADER="header",e.COOKIES="cookie",e.FILES="files"}($||($={}));class _ extends P{$kind="operationInParameter";nestedGenerics=[];groups;groupsName;$schema;expression;getName(){const e=this.get("name");return"files"===this.get("in")?e.split(".")[0]:e}name(e){return this.set("name",e),this}examples(e){return super.set("examples",e),this}description(e){return this.set("description",e),this}in(e,t=""){return this.set("in",w(e)),this.expression=t,this}required(e){return this.set("required",e),this}schema(e){return this.$schema=e,this}toJSON(e){return h("operationInParameter",this,e)}}let N=class extends r{paramType;expression;dataPath;pipes;parameter=new _;parent=r.fromMethod(this.target,this.propertyKey);constructor(e){super(e),this.pipes=e.pipes||[],this.paramType=e.paramType||this.paramType,this.expression=e.expression||this.expression,this.dataPath=e.dataPath||this.dataPath}get nestedGenerics(){return this.parameter.nestedGenerics}set nestedGenerics(e){this.parameter.nestedGenerics=e}get required(){return!!this.parameter.get("required")}set required(e){this.parameter.required(e)}get allowedRequiredValues(){return this.schema.$allow}static getParams(t,s){const n=[],i=(0,e.ancestorsOf)(t).reverse().find((t=>(0,e.isMethodDescriptor)(t,s)&&r.fromMethod(t,s).children.size));return i?(r.fromMethod(i,s).children.forEach(((e,t)=>{n[+t]=e})),n):[]}static get(t,s,n){return r.from((0,e.prototypeOf)(t),s,n)}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}getSchema(t){return(0,e.isCollection)(t)||!(0,e.isClass)(t)?A.from({type:t}):r.from(t).schema}build(){if(!this._type){const t=e.Metadata.getParamTypes((0,e.prototypeOf)(this.target),this.propertyKey)[this.index];this.buildType(t)}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))}};N=s([E(e.DecoratorTypes.PARAM),o("design:paramtypes",[Object])],N);const D=N,L=e=>Number(e)&&200<=Number(e)&&Number(e)<300,k=e=>Number(e)&&300<=Number(e)&&Number(e)<400;function I(t){return Object.keys(t).reduce(((r,s)=>{const n=t[s];let i=typeof n,o={example:n};return"object"===i&&(o=n,o.example=void 0===o.value?o.example:o.value,delete o.value,i=typeof o.example),o.type=o.type||i,r[s]=(0,e.cleanObject)(o),r}),{})}function j(e,t=P){return Object.entries(e).reduce(((e,[r,s])=>(e.set(r,new t(s)),e)),new P)}class H extends P{$kind="operationMedia";groups=[];groupsName;allowedGroups;schema(e){return this.set("schema",e),this}examples(e){return this.set("examples",e),this}}class q extends P{$kind="operationResponse";status;constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}headers(e){return this.set("headers",I(e)),this}content(e){return this.set("content",j(e,H)),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 H),this}}class G extends P{$kind="operation";operationPaths=new Map;#u;#h=!1;constructor(e={}){super({parameters:[],responses:new P,...e})}get response(){return this.getResponses().get(this.getStatus().toString())}get status(){return this.#u}tags(e){return super.set("tags",e),this}addTags(t){return t=(0,e.uniqBy)([...this.get("tags")||[],...t],"name"),this.tags(t)}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?k(e):this.#h}addResponse(t,r){if((L(t)||k(t))&&!this.#u){const e=this.getResponseOf(200);this.getResponses().set(t.toString(),e).delete("200"),this.defaultStatus(Number(t))}const s="default"===t?this.getStatus().toString():t.toString(),n=this.getResponses().get(s);return n?(r.forEach(((t,r)=>{["content"].includes(r)||n.set(r,(0,e.deepMerge)(n.get(r),t))})),n.status=Number(s)):(r.status=Number(s),this.getResponses().set(s,r)),this}getResponses(){return this.get("responses")}getResponseOf(e){return("default"===e?this.response:this.getResponses().get(String(e)))||new q}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(t,r){const s=this.get("security")||{};return s[t]=(0,e.uniq)([...s[t]||[],...r]),this.security(s)}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(t){const r=(0,e.uniq)([].concat(this.get("produces"),t)).filter(Boolean);this.set("produces",r)}addOperationPath(e,t,r={}){return this.operationPaths.set(String(e)+String(t),{...r,method:e,path:t}),this}}let U=class extends r{parent=r.from(this.target);middlewares=[];beforeMiddlewares=[];afterMiddlewares=[];operation=new G;children=new Map;constructor(t){super({store:e.Store.fromMethod(t.target,t.propertyKey),descriptor:(0,e.descriptorOf)(t.target,t.propertyKey),...t});const{beforeMiddlewares:r=[],middlewares:s=[],afterMiddlewares:n=[]}=t;this.after(n),this.before(r),this.use(s)}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(t,s,n){return n=n||(0,e.descriptorOf)((0,e.prototypeOf)(t),s),r.from((0,e.prototypeOf)(t),s,n)}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(t){return this.beforeMiddlewares=this.beforeMiddlewares.concat(t).filter(e.isFunction),this}after(t){return this.afterMiddlewares=this.afterMiddlewares.concat(t).filter(e.isFunction),this}use(t){return this.middlewares=this.middlewares.concat(t).filter(e.isFunction),this}get(t){const r=e.Store.from(this.target).get(t);return(0,e.deepMerge)(r,this.store.get(t))}getParamTypes(){return[...this.children.values()].reduce(((e,t)=>({...e,[t.paramType]:!0})),{})}build(){if(!this._type){let t=e.Metadata.getReturnType(this.target,this.propertyKey);t=(0,e.isPromise)(t)?void 0:t,this.buildType(t)}this._type=this._type||Object,this.parent.children.set(this.propertyName,this),(0,e.isCollection)(this._type)&&(this.collectionType=this._type,delete this._type),this._schema=A.from({type:this.collectionType||this.type}),this.collectionType&&this._schema.itemSchema(this.type),this.parent.schema.addProperty(this.propertyName,this.schema)}};U=s([E(e.DecoratorTypes.METHOD),o("design:paramtypes",[Object])],U);const B=U;function K(...e){return r.from(...e)}t.set(e.DecoratorTypes.CLASS,v),t.set(e.DecoratorTypes.PROP,x),t.set(e.DecoratorTypes.PARAM,N),t.set(e.DecoratorTypes.METHOD,U);class J{getType;isLazyRef=!0;constructor(e){this.getType=e}get target(){return this.getType()}get schema(){return K(this.getType()).schema}get name(){return(0,e.nameOf)(this.getType())}}function F(e,t){return e.reduce(((e,r,s)=>e.set(r,t[s])),new Map)}function W(e){if(e.genericLabels&&e.genericTypes){const{genericLabels:t,genericTypes:r,...s}=e;return{...s,generics:F(t,r)}}return e}function V(e){const[t,...r]=e.nestedGenerics;return{genericTypes:t,nestedGenerics:r}}var X,z=n(598);function Q(e,t){return t.groups&&t.groups.length?(0,z.pascalCase)(`${e} ${t.groupsName||t.groups.join(" ")}`):e}function Y(t,r,s){const n=function(e){const{host:t="#/"+("openapi3"===e.specType?"components/schemas":"definitions")}=e;return t}(s),i={$ref:`${n}/${t}`},o=r.isNullable,a=r.isReadOnly,c=r.isWriteOnly;if(o||a||c)switch(s.specType){case X.OPENAPI:return(0,e.cleanObject)({nullable:!!o||void 0,readOnly:!!a||void 0,writeOnly:!!c||void 0,oneOf:[i]});case X.JSON:return(0,e.cleanObject)({readOnly:a,writeOnly:c,oneOf:[i]})}return i}function Z(e,t,r){const s=Q(e.getName(),r);return r.schemas[s]=t,Y(s,e,r)}function ee(e,t={}){if("object"!=typeof e||null===e)return e;if(e instanceof J)return h("lazyRef",e,t);if(e instanceof A&&e.get("enum")instanceof A){const r=e.get("enum");return Z(r,r.toJSON(t),t)}if(e.$kind&&e.$isJsonDocument){const r=h(m(e.$kind,"map"),e,W(t));return e.canRef?Z(e,r,t):r}return h("object",e,t)}function te(e,t){const s=r.from(e.class),n=Q(s.schema.getName()||e.getName(),t);if(e.hasGenerics){const{type:r,properties:n,additionalProperties:i,items:o,...a}=e.toJSON(t),c={...h("any",s.schema,{...t,...V(e),root:!1}),...a};if(c.title){const r=Q(c.title,t);return t.schemas[r]=c,delete c.title,Y(r,e,t)}return c}return t.schemas&&!t.schemas[n]&&(t.schemas[n]={},t.schemas[n]=h("any",s.schema,W({...t,root:!1}))),Y(n,e,t)}function re(t,s){const{generics:n}=s;if(n&&t.$ref&&n.has(t.$ref)){let i=n.get(t.$ref);if((0,e.isPrimitiveClass)(i))return{type:y(i)};if(i===Date)return{type:"string",format:"date-time"};if(i.toJSON)return i.toJSON({...s,generics:void 0});if(i===Object)return{type:"object"};if((0,e.isClass)(i)){const e={class:i};return 0===s.nestedGenerics.length?h("class",e,{...s,generics:void 0}):h("schema",r.from(e.class).schema,{...s,...V(s),root:!1})}}return t}function se(t){const r=t.isStore?t:K(t);return r.$inherited||(r.$inherited=(0,e.ancestorsOf)(r.target).reverse().reduce(((e,t)=>e.set(t,K(t))),new Map)),r.$inherited}function ne(t,{target:r,...s}){const n=Array.from(se(r).entries()).filter((([t])=>(0,e.classOf)(t)!==(0,e.classOf)(r)));if(n.length){const r=n.reduce(((t,[,r])=>(0,e.deepMerge)(t,h("schema",r.schema,s))),{});t=(0,e.deepMerge)(r,t)}return t}function ie(e,t){return e&&e.isClass?h("class",e,t):h("any",e,t)}function oe(e,t){const r=e.name;if(t.$refs?.find((t=>t===e.target)))return Y(r,e.schema,t);t.$refs=[...t.$refs||[],e.target];const s=e.getType()&&h("schema",e.schema,W(t));return Z(e.schema,s,t)}function ae(e,{ignore:t=[],...r}={}){return r=W(r),Array.from(e.entries()).reduce(((e,[s,n])=>(t.includes(s)||(e[s]=h("item",n,r)),e)),{})}function ce(e,t){let r=e?.$hooks?.alter("ignore",!1,[t]);return r||(!1!==t.groups?e?.$hooks?.alter("groups",!1,[t.groups]):r)}function pe(t,r,s){if(!r?.isNullable)return t;let n=[].concat(t.type).filter(Boolean);switch(s.specType){default:case X.JSON:t.discriminator||(t.oneOf?function(e){return e.oneOf.find((e=>"null"===e.type))}(t)||t.oneOf.unshift({type:"null"}):t.type=(0,e.uniq)(["null",...n]));break;case X.OPENAPI:t.nullable=!0,t.oneOf||(n.length>1?(t.oneOf=n.map((e=>({type:e}))),delete t.type):t.type=n[0])}return t}function ue(t,r){const{specType:s,operationIdFormatter:n,root:i,schemas:o,genericTypes:a,nestedGenerics:c,useAlias:p,genericLabels:u,...l}=r;return Object.entries(t).reduce(((e,[s,n])=>{if(!1!==r.withIgnoredProps&&!ce(n,l)){const i={...r,groups:t?.$forwardGroups||n?.$forwardGroups?r.groups:void 0};e[s]=h("item",n,i),e[s]=pe(e[s],n,i)}return e}),(0,e.isArray)(t)?[]:{})}function he(e,t,r){return e.map((e=>h("item",e,{...t,genericLabels:r.genericLabels})))}function le(t,{jsonSchema:r}){const s={type:"string",format:"binary",oneOf:void 0};return"array"===r.type?(r.items=(0,e.cleanObject)({...r.items,...s}),t.schema=r,t):(t.schema=(0,e.cleanObject)({...r,...s}),t)}function me(e,t){const r=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,t),s={...r.schemas||{}},{type:n,schema:i,...o}=h("map",e,r),a=h("item",e.$schema,{...r,...V(e)});o.required=o.required||e.get("in")===$.PATH;const c={...r,jsonSchema:a,jsonParameter:e,oldSchemas:s},p=(0,z.camelCase)(`operationIn ${e.get("in")}`);return l(p)?h(p,o,c):(o.schema=a,o)}function de(e,t){return e.flatMap((e=>h("operationInParameter",e,t))).filter(Boolean)}function fe(t,{jsonSchema:r,jsonParameters:s,...n}){if(r.$ref){if(!t.name)return function(t,{jsonParameter:r,...s}){const n=Q(r.$schema.getName(),s),i=s.schemas?.[n];return i&&!s.oldSchemas?.[n]&&delete s.schemas[r.$schema.getName()],Object.entries(i?.properties||{}).reduce(((r,[s,{description:n,...o}])=>[...r,(0,e.cleanObject)({...t,name:s,required:(i?.required||[]).includes(s),description:n,schema:o,style:o.$ref?"deepObject":void 0})]),[])}(t,n);t.style="deepObject"}return t.schema=r,t}!function(e){e.JSON="jsonschema",e.SWAGGER="swagger2",e.OPENAPI="openapi3"}(X||(X={})),p("any",ee),p("class",te),p("generics",re),p("inheritedClass",ne),p("item",ie),p("lazyRef",oe),p("map",ae),p("object",ue),p("anyOf",he),p("allOf",he),p("oneOf",he),p("operationInFiles",le),p("operationInParameter",me),p("operationInParameters",de),p("operationInQuery",fe);var ye=n(203),ge=n.n(ye);const Oe=ge().codes.reduce(((e,t)=>{const r=String(ge()(t));return{...e,[String(t)]:{label:r,code:(0,z.constantCase)(r)}}}),{});function Se(e){return Oe[e]?.code}function be(e){return Oe[e]?.label}function Re(e,{tags:t=[],defaultTags:r=[],...s}={}){const{consumes:n,produces:i,...o}=h("map",e,{...s,ignore:["parameters"]});o.security&&(o.security=[].concat(o.security)),0===e.get("responses").size&&(o.responses={200:{description:be(200)}});const a={...s,consumes:e.get("consumes")?.length?e.get("consumes"):["application/json"]},[c,p]=function(e,t){return e.get("parameters").filter((e=>M(e.get("in")))).reduce(((e,t)=>{const[r,s]=e;return[$.BODY,$.FILES].includes(t.get("in"))?[r,[...s,t]]:[[...r,t],s]}),[[],[]])}(e);o.parameters=h("operationInParameters",c,s),p.length&&(o.requestBody=h("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 Te(e,t){return h("map",e,{...t,groups:[...e.groups||[]],groupsName:e.groupsName})}Oe[200].label="Success",Oe[200].code="SUCCESS",p("operation",Re),p("operationMedia",Te);class Ae extends P{$kind="operationRequestBody";constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}content(e){return this.set("content",j(e)),this}addContent(e,t,r){const s=this.get("content"),n=new P;return n.set("schema",t),r&&n.set("examples",r),s.set(e,n),this}required(e){return this.set("required",e),this}}function Ee(e,{consumes:t,...r}){const{schema:s,examples:n,in:i,...o}=function(e,t){let r=new A;const s={},n=[];let i=0;return e.forEach((e=>{const o=e.getName();[...e.entries()].filter((([e])=>!["in","name"].includes(e))).forEach((([e,t])=>{void 0===s[e]&&(s[e]=t)}));const a=h("operationInParameter",e,t);o?(r.addProperty(o,a.schema||{type:a.type}),e.get("required")&&r.addRequired(o),i++):n.push(a)})),i||1!==n.length?(r.type("object"),{schema:r.toJSON(t),required:!1,...s}):n[0]}(e,r),a=new Ae(o);return t.forEach((e=>{a.addContent(e,s,n)})),h("map",a,r)}function ve(e,t={}){const r=h("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 xe(e){return e.split("/").filter(Boolean).join("/")}function Ce(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 Pe(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)}]}p("operationRequestBody",Ee),p("operationResponse",ve);const $e=["all","checkout","connect","copy","delete","get","head","lock","merge","mkactivity","mkcol","move","m-search","notify","options","param","patch","post","propfind","propatch","purge","put","report","search","subscribe","trace","unlock","unsuscribe"];var we;!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.CUSTOM="CUSTOM"}(we||(we={}));class Me extends Map{$kind="operationPaths";$isJsonDocument=!0;setOperationPath(e){if(e.method!==we.CUSTOM){const t=this.getKey(e.method,e.path);this.set(t,e)}}getKey=(e,t)=>`${e}-${t}`}function _e(e){const t=e.isStore?e:K(e);if(!t.$operations){const e=new Me;t.$operations=new Map,se(t).forEach((e=>{e.children.forEach((e=>{e instanceof U&&!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 Ne(e,{store:t,operationIdFormatter:r}){return r(t.parent.schema.get("name")||t.parent.targetName,t.propertyName,e)}function De(e,{path:t,method:r,operation:s}){return{...e,[t]:{...e[t],[r.toLowerCase()]:s}}}function Le(e){return!e.store.get("hidden")}function ke({operationStore:e,operation:t}){return[...e.operation.operationPaths.values()].map((r=>({...r,operationStore:e,operation:t}))).filter((({method:e})=>e))}function Ie(e,{paths:t,rootPath:r,...s}){const n=xe(r+K(e).path);return s={...s,ctrlRootPath:n},[..._e(e).values()].filter(Le).map(function(e){return t=>({operation:h("operation",t.operation,e),operationStore:t})}(s)).flatMap(ke).flatMap(function(e){return({path:t,method:r,operation:s,operationStore:n})=>Pe(e.ctrlRootPath,t).map((({path:t,parameters:i})=>(t=t||"/",i=Ce(i.map((({type:e,...t})=>({...t,schema:{type:e}}))),s),{operation:{...s,parameters:i,operationId:s.operationId||Ne(t,{...e,store:n})},method:r,path:t})))}(s)).reduce(De,t)}function je(e,t,r){return e.isClass?h("class",e,t):h("any",e,{...t,genericLabels:r.genericLabels})}function He(e,t){return Object.entries(e).reduce(((e,[r,s])=>(e[r=t.get(r)||r]=s,e)),{})}function qe(e,t,r){return!1!==r.groups?t?.$hooks?.alter("requiredGroups",e,[r.groups]):e}function Ge(t,r,s){if(s.groups&&s.groups.includes("partial"))return t.discriminator?{...t,required:[t.discriminator.propertyName]}:t;let n=function(t,r,s){let n=t.required||[];return n=[...n,...r.$required],r.get("properties")&&(n=Object.entries(r.get("properties")).reduce(((e,[t,r])=>r&&void 0!==r.$selfRequired?r.$selfRequired?e.concat(t):e.filter((e=>e===t)):e),n)),qe((0,e.uniq)(n),r,s)}(t,r,s);return n=(0,e.uniq)(n).reduce(function(e,t,r={}){const{useAlias:s}=r,n=Object.keys(e.properties||{});return(r,i)=>{const o=s&&t.alias.get(i)||i;if(n.includes(o)){const s=t.get("properties")[i],n=e.properties[o];return e.properties[o]=function(e,t){if(!t?.$allow.includes("")&&[].concat(t?.get("type")).includes("string")){const t=e?.minLength;if(void 0===t)return{...e,minLength:1}}return e}(n,s),r.concat(o)}return r}}(t,r,s),[]),t.discriminator&&n.push(t.discriminator.propertyName),n.length?{...t,required:n}:t}function Ue(e,t,r){return e.oneOf&&!1!==r.groups&&(e={...e,oneOf:t.$hooks.alter("oneOf",e.oneOf,[r.groups])}),!(e.oneOf||e.allOf||e.anyOf)||e.items||e.properties||delete e.type,e}function Be(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}p("paths",Ie),p("properties",je),p("items",je),p("additionalProperties",je),p("propertyNames",je),p("contains",je),p("dependencies",je),p("patternProperties",je),p("additionalItems",je),p("not",je),p("definitions",je);const Ke=["name","$required","$hooks","_nestedGenerics",X.OPENAPI,X.SWAGGER,X.JSON],Je=["const"];function Fe(t,r){const{options:s,addDef:n}=function(e){let t=!1;e||(t=!0,e={schemas:{},inlineEnums:!0});const{useAlias:r=!0,schemas:s={}}=e;return{addDef:t,options:e={...e,useAlias:r,schemas:s}}}(r),i=function(t,r){let s=function(t,r){const{useAlias:s}=r;return[...t.keys()].filter((e=>!function(e,{specType:t=X.JSON,customKeys:r=!1}){return Ke.includes(e)||e.startsWith("#")&&(!1===r||t!==X.JSON)||t!==X.JSON&&Je.includes(e)}(e,r))).reduce(((n,i)=>{let o=t.get(i);if("type"===(i=i.replace(/^#/,"")))return{...n,[i]:t.getJsonType()};if(function(t,r,s){return"examples"===t&&(0,e.isObject)(r)&&X.OPENAPI===s.specType}(i,o,r)&&(i="example",o=Object.values(o)[0]),o&&"object"==typeof o&&l(i)){if(o=h(i,o,r,t),function(e,t){return"object"==typeof t&&["items","properties","additionalProperties"].includes(e)&&0===Object.keys(t).length}(i,o))return n;(function(e,t,r){return"object"==typeof t&&r&&["properties","additionalProperties"].includes(e)})(i,o,s)&&(o=He(o,t.alias))}return{...n,[i]:o}}),{})}(t,r);return t.isClass&&(s=h("inheritedClass",s,{...r,root:!1,target:t.getComputedType()})),s=h("generics",s,{...r,root:!1}),t.has(r.specType)&&(s={...s,...t.get(r.specType).toJSON(r)}),s=Ge(s,t,r),s=pe(s,t,r),s=Ue(s,t,r),s=Be(s,0,r),s}(t,s);return n&&s.schemas&&Object.keys(s.schemas).length&&(i.definitions=s.schemas),i}function We(e){return(...t)=>{const r=e(K(...t),t);"function"==typeof r&&r(...t)}}function Ve(...t){return We((r=>{r.store.set("childrenControllers",t),t.forEach((t=>{e.Store.from(t).set("parentController",r.token)}))}))}function Xe(e,...t){return We((r=>{e=e||(0,z.snakeCase)(r.targetName),r.discriminatorAncestor&&r.schema.discriminatorValue(e,...t)}))}function ze(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 s={};let n=!1;const i=(...i)=>{const o=r.from(...i);t&&(o.collectionType=t,o.schema.type(t)),o.type=e,o.itemSchema.type(e),o.schema.assign(s),o.isArray&&n&&(o.schema.set("contains",o.schema.get("items")),o.schema.delete("items"))};return i.MinItems=e=>(s.minItems=e,i),i.MaxItems=e=>(s.maxItems=e,i),i.MinProperties=e=>(s.minProperties=e,i),i.MaxProperties=e=>(s.maxProperties=e,i),i.Contains=()=>(n=!0,i),i.UniqueItems=(e=!0)=>(s.uniqueItems=e,i),i}function Qe(e){return ze(e,Array)}function Ye(e){return ze(e,Map)}function Ze(e){return ze(e).Contains()}function et(e){return We((t=>{const r=t.parentSchema.get("#errorMessage")||{};t.parentSchema.customKey("errorMessage",{...r,...e})}))}function tt(t,r){const s={};return(...n)=>{const i=(0,e.useDecorators)(r(...n));return i.Error=r=>(s.message=r,(0,e.useDecorators)(i,s.message&&et({[t]:r}))),i}}p("schema",Fe);const rt=tt("maxItems",(e=>{if(e<0)throw new Error("The value of maxItems MUST be a non-negative integer.");return We((t=>{t.schema.maxItems(e)}))})),st=tt("maxProperties",(e=>{if(e<0)throw new Error("The value of maxProperties MUST be a non-negative integer.");return We((t=>{t.isCollection?t.schema.maxProperties(e):t.itemSchema.maxProperties(e)}))})),nt=tt("minItems",(e=>{if(e<0)throw new Error("The value of minItems MUST be a non-negative integer.");return We((t=>{t.schema.minItems(e)}))})),it=tt("minProperties",(e=>{if(e<0)throw new Error("The value of minProperties MUST be a non-negative integer.");return We((t=>{t.isCollection?t.schema.minProperties(e):t.itemSchema.minProperties(e)}))})),ot=tt("uniqueItems",((e=!0)=>We((t=>{t.schema.uniqueItems(e)}))));function at(e){return We(((t,r)=>{t.itemSchema.additionalProperties(e)}))}function ct(...e){return We((t=>{t.itemSchema.allOf(e)}))}function pt(t){return We((r=>{t&&(((0,e.isClass)(t)||(0,e.isArrowFn)(t))&&(r.type=t),r.itemSchema.type(t))}))}function ut(...t){const r=t.find((t=>(0,e.isClass)(t)));return(0,e.useDecorators)(r&&pt(r),We(((r,s)=>{r.schema.allow(...t),r.decoratorType===e.DecoratorTypes.PARAM&&(r.required=!0),r.decoratorType===e.DecoratorTypes.PROP&&r.parentSchema.addRequired(r.propertyName)})))}function ht(...e){return We((t=>{t.itemSchema.any(...e)}))}function lt(...e){return We((t=>{t.itemSchema.anyOf(e)}))}function mt(e){return We((t=>{t.itemSchema.const(e)}))}function dt(e,t){return We((r=>{r.itemSchema.customKey(e,t)}))}function ft(e){return We((t=>{Object.entries(e).forEach((([e,r])=>{t.itemSchema.customKey(e,r)}))}))}function yt(e){return We((t=>{t.itemSchema.default(e)}))}function gt(t){return(0,e.useDecorators)(et({_:t}))}function Ot(t){return We(((r,s)=>{switch((0,e.decoratorTypeOf)(s)){case e.DecoratorTypes.PROP:case e.DecoratorTypes.CLASS:r.schema.description(t);break;case e.DecoratorTypes.PARAM:r.parameter.description(t);break;case e.DecoratorTypes.METHOD:r.operation?.description(t)}}))}function St(){return(0,e.useDecorators)(pt(),We((e=>{e.discriminatorKey()})))}const bt=tt("enum",(function(e,...t){return We((r=>{r.itemSchema.enum(e,...t)}))}));function Rt(...e){return We((t=>{t.schema.examples(e)}))}function Tt(e){return We((t=>{t.parameter.examples(e)}))}const At=tt("maximum",((e,t=!1)=>We((r=>{t?r.itemSchema.exclusiveMaximum(e):r.itemSchema.maximum(e)})))),Et=At,vt=tt("exclusiveMaximum",((e,t=!0)=>At(e,t))),xt=tt("minimum",((e,t=!1)=>We((r=>{t?r.itemSchema.exclusiveMinimum(e):r.itemSchema.minimum(e)})))),Ct=xt,Pt=tt("exclusiveMinimum",((e,t=!0)=>xt(e,t)));var $t;!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"}($t||($t={}));const wt=tt("format",(e=>We((t=>{t.itemSchema.format(e)})))),Mt=tt("format",(()=>wt($t.EMAIL))),_t=tt("format",(()=>wt($t.DATE_TIME))),Nt=tt("format",(()=>wt($t.DATE))),Dt=tt("format",(()=>wt($t.TIME))),Lt=tt("format",(()=>wt($t.URI))),kt=tt("format",(()=>wt($t.URL)));function It(e=!0){return We((t=>{t.schema.$forwardGroups=e}))}var jt=n(870),Ht=n.n(jt);function qt(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=Ht()(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 Gt(e,t=[]){const r=e.filter((e=>e.startsWith("!"))).map((e=>e.replace("!",""))),s=e.filter((e=>!e.startsWith("!")));return!!(r.length&&t.length&&qt(r,t))||!!s.length&&!qt(e.filter((e=>!e.startsWith("!"))),t)}function Ut(...t){return We((r=>{switch(r.decoratorType){case e.DecoratorTypes.CLASS:!function(e,t){const r=Object.entries(e[0]);t.children.forEach((e=>{Ut(...r.filter((([,t])=>t.includes(e.propertyName))).map((([e])=>e)))(e.target,e.propertyKey)}))}(t,r);break;case e.DecoratorTypes.PROP:r.schema.$hooks.on("groups",((e,r)=>!(e||!Gt(t,r))||e));break;case e.DecoratorTypes.PARAM:let s="";2==t.length&&(0,e.isArray)(t[1])&&(s=t[0],t=t[1]),r.parameter.groups=t,r.parameter.groupsName=s}}))}function Bt(){return(0,e.StoreSet)("hidden",!0)}const Kt=(e,t)=>!0!==t.mongoose;function Jt(e=Kt){return We((t=>{t.schema.ignore(e)}))}function Ft(){return We((e=>{e.itemSchema.type("integer")}))}const Wt=tt("maxLength",(e=>{if(e<0)throw new Error("The value of maxLength MUST be a non-negative integer.");return We((t=>{t.itemSchema.maxLength(e)}))})),Vt=tt("minLength",(e=>{if(e<0)throw new Error("The value of minLength MUST be a non-negative integer.");return We((t=>{t.itemSchema.minLength(e)}))})),Xt=tt("multipleOf",(e=>{if(e<=0)throw new Error("The value of multipleOf MUST be a number, strictly greater than 0.");return We((t=>{t.itemSchema.multipleOf(e)}))}));function zt(t){return We(((r,s)=>{switch((0,e.decoratorTypeOf)(s)){case e.DecoratorTypes.CLASS:r.schema.name(t);break;case e.DecoratorTypes.PARAM:r.parameter.name(t);break;default:r.parent.schema.addAlias(s[1],t)}}))}function Qt(t,...r){return r=[t,...r],(0,e.useDecorators)(1===r.length&&pt(r[0]),ht(null,...r))}function Yt(...e){return We((t=>{t.itemSchema.oneOf(e),t.type=Object}))}function Zt(){return We((t=>{switch(t.decoratorType){case e.DecoratorTypes.PARAM:t.required=!1;break;case e.DecoratorTypes.PROP:t.parentSchema.removeRequired(t.propertyName)}}))}const er=tt("pattern",(e=>We((t=>{t.itemSchema.pattern(e)}))));function tr(e=!0){return We((t=>{t.itemSchema.readOnly(e)}))}function rr(e){return We((t=>{Object.entries(e).forEach((([e,r])=>{t.schema.set(e,r)}))}))}function sr(e,t){return We((r=>{r.schema.set(e,t)}))}function nr(e,...t){return rr({properties:{...t.reduce(((t,r)=>({...t,[r]:e})),{})}})}const ir=tt("required",((e=!0,...t)=>e?ut(...t):Zt()));function or(...e){return We((t=>{t.parent.schema.$hooks.on("requiredGroups",((r,s)=>Gt(e,s)?r.filter((e=>e!==t.propertyKey)):r))}))}function ar(e){return We((t=>{t.schema.title(e)}))}function cr(t){return We((()=>(0,e.useDecorators)(et({type:t}))))}function pr(e=!0){return We((t=>{t.itemSchema.writeOnly(e)}))}function ur(t=Object){if((0,e.isClass)(t)){const{schema:e}=K(t);return e.properties=function(e){return Object.entries(e).forEach((([e,r])=>{K(t.prototype,e).schema.assign(r)})),this},e}return A.from({type:t})}function hr(){return ur(Number)}function lr(){return ur(Number).integer()}function mr(){return ur(String)}function dr(){return ur(Boolean)}function fr(){return ur(Date).format($t.DATE)}function yr(){return ur(Date).format($t.DATE_TIME)}function gr(){return ur(Date).format($t.TIME)}function Or(){return ur(String).format($t.EMAIL)}function Sr(){return ur(String).format($t.URI)}function br(){return ur(String).format($t.URL)}function Rr(){return ur(Array)}function Tr(){return ur(Map).unknown(!0)}function Ar(){return ur(Array).uniqueItems(!0)}function Er(e={}){return ur(Object).properties(e)}function vr(...e){return ur().any(...e)}function xr(...e){return ur().anyOf(e)}function Cr(...e){return ur().oneOf(e)}function Pr(...e){return ur().allOf(e)}function $r(e){try{if(e())return r.from(e()).schema}catch(e){}return new J(e)}function wr(e){const t=mr().enum(e);return a.set(e,t),t}function Mr(...t){const s=[t.map((t=>function(t){return(0,e.isObject)(t)&&!("toJSON"in t)}(t)?mr().enum(Object.values(t)):t))],n=(...e)=>{r.from(...e).nestedGenerics=s};return n.Nested=(...e)=>(s.push(e),n),n}function _r(...e){return t=>{r.from(t).schema.genericLabels=e}}function Nr(...t){return We(((r,s)=>{switch(r.decoratorType){case e.DecoratorTypes.METHOD:r.operation.produces(t);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],Nr(...t));break;default:throw new e.UnsupportedDecoratorType(Nr,s)}}))}function Dr(...t){return(0,e.useDecorators)(Nr(...t),(0,e.StoreSet)("acceptMimes",t))}function Lr(...t){return We(((r,s)=>{switch(r.decoratorType){case e.DecoratorTypes.METHOD:r.operation.consumes(t);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],Lr(...t));break;default:throw new e.UnsupportedDecoratorType(Lr,s)}}))}class kr extends Map{methods;decoratorType;entity;actions=[];constructor(e={}){super(),Object.entries(e).forEach((([e,t])=>{this.set(e,t)}))}addAction(e){return this.actions.push(e),this}build(){const e=(...t)=>this.bind(t,e),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,z.pascalCase)(r)]=t(r)})),e}toObject(){return[...this.entries()].reduce(((e,[t,r])=>({...e,[t]:r})),{})}getMergedKey(t,r){let s=this.get(t)||r;if(s)return this.decoratorType===e.DecoratorTypes.CLASS&&(s={...s,...r||{}}),{...r||{},...s}}bind(e,t){this.entity=r.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 Ir=new Map;function jr(e,t){Ir.set(e,t)}function Hr(e){return Ir.get(e)}function qr(t){return t.map((t=>function(t){return(0,e.isObject)(t)&&!("toJSON"in t)}(t)?mr().enum(Object.values(t)):t))}class Gr extends kr{methods=["contentType","description","examples","type","status","of","ofInteger","oneOf","allOf","anyOf","nested","header","headers","schema","title","groups","allowedGroups","location"];constructor({status:e,model:t}){super(),this.model(t),this.status(e)}type(e){return this.model(e)}model(e){return e&&this.set("model",e),this}status(e){return this.set("status",e),e&&be(e)&&!this.get("description")&&(this.set("description",be(e)),this.get("model")||this.model(Hr(+e))),this}headers(e){return this.set("headers",{...this.get("headers")||{},...I(e)}),this}header(e,t){return this.headers({[e]:t})}location(e,t={}){return this.headers({Location:{...t,value:e}}),this}groups(...t){return 2===t.length&&(0,e.isArray)(t[1])?(this.set("groupsName",t[0]),this.set("groups",t[1])):this.set("groups",t),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(qr(e))})),this}of(...t){const r=this.get("model");return this.checkPrimitive(r),this.addAction((()=>{const s=this.get("schema");(0,e.isCollection)(r)?s?.itemSchema({type:t[0]}):s?.nestedGenerics.push(qr(t))})),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(t){return this.set("examples",(0,e.isString)(t)?[t]:t),this}title(e){return this.schema({title:e})}checkPrimitive(t){if((0,e.isPrimitiveOrPrimitiveClass)(t))throw new Error("Returns.Of cannot be used with the following primitive classes: String, Number, Boolean")}checkCollection(t){if((0,e.isCollection)(t))throw new Error("Returns.Nested cannot be used with the following classes: Map, Set, Array, String, Number, Boolean")}getContentType(){const t=this.get("model");let r=this.get("contentType");return!t||(0,e.isPlainObject)(t)||(0,e.isPrimitiveOrPrimitiveClass)(t)||(r=r||"application/json"),r}getStatus(){return this.get("status")||"default"}onInit(t,s){switch((0,e.decoratorTypeOf)(t)){case e.DecoratorTypes.METHOD:this.entity=r.from(...t),this.entity.operation&&this.map();break;case e.DecoratorTypes.CLASS:this.decoratorType=e.DecoratorTypes.CLASS,(0,e.decorateMethodsOf)(t[0],s)}}map(){const t=this.get("model"),{entity:r,decoratorType:s}=this,n=this.entity.operation,i=this.getStatus(),o=n.ensureResponseOf(i),a=this.getContentType();let{description:c=o.get("description")}=this.toObject();c&&(c=s===e.DecoratorTypes.CLASS&&o.get("description")||c,o.description(c));const p=this.getMergedKey("headers",o.get("headers"));return p&&o.headers(p),this.mapMedia(o),(L(this.get("status"))||"default"===i)&&t&&(r.type=t),a&&n.addProduce(a),this.runActions()}mapMedia(t){const r=this.getContentType(),s=this.get("model"),n=t.getMedia(r||"*/*"),i=n.get("schema")||new A({type:s}),o=this.get("groups"),a=this.get("groupsName"),c=this.get("allowedGroups"),p=this.entity.operation;if(s&&((0,e.isArray)(s)?i.oneOf(s.map((e=>({type:e})))):i.type(s)),this.set("schema",i),n.schema(i),n.groups=o,n.groupsName=a,c){n.allowedGroups=c;const e=new _;e.in("query").name("includes"),e.schema(A.from({type:"array",items:{type:"string",enum:[...c]}})),p.addParameter(-1,e)}const u=this.get("examples");return u&&n.examples(u),n}manyOf(t,r){const s=this.get("model");return this.addAction((()=>{const n=this.get("schema");(0,e.isCollection)(s)?(n.type(s||Object),n.itemSchema().set(t,r)):n.set(t,r)})),this}}function Ur(e,t){return new Gr({status:e,model:t}).build()}function Br(e){return Ur().ContentType(e)}function Kr(t=!0){return We(((r,s)=>{switch((0,e.decoratorTypeOf)(s)){case e.DecoratorTypes.METHOD:r.operation.deprecated(t);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],Kr(t));break;case e.DecoratorTypes.PARAM:r.parameter.set("deprecated",t);break;case e.DecoratorTypes.PROP:r.schema.set("deprecated",t);break;default:throw new e.UnsupportedDecoratorType(Kr,s)}}))}function Jr(e,t){return void 0!==t&&(e={[e]:t}),Ur().Headers(e)}function Fr(t){const s=new _,n={},i=(o,a,c)=>{const p=r.from(o,a,c);switch(p.decoratorType){case e.DecoratorTypes.PARAM:p.parameter.in(t);break;case e.DecoratorTypes.METHOD:s.in(t),p.operation.addParameter(-1,s),s.schema(A.from(n));break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(o,i);break;default:throw new e.UnsupportedDecoratorType(Fr,[o,a,c])}};return i.Type=e=>(n.type=e,i),i.Name=e=>(s.name(e),i),i.Description=e=>(s.description(e),i),i.Required=(e=!0)=>(s.required(e),i),i.Pattern=e=>i.Schema({pattern:e.toString()}),i.Schema=e=>(Object.assign(n,e),i),i}function Wr(t){return(...r)=>{const[s,n,i]=r,o=e.Metadata.getParamTypes(s,n)[i]===Array,a=[t="object"==typeof t?void 0:t,!o&&"0"].filter(Boolean).join(".");(0,e.useDecorators)(Fr($.FILES),zt(a),(0,e.useMethodDecorators)(Ur(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"),Lr("multipart/form-data")))(...r)}}function Vr(e,t){return Ur().Location(e,t)}function Xr(t){return We(((r,s)=>{if(r.decoratorType!==e.DecoratorTypes.METHOD)throw new e.UnsupportedDecoratorType(Xr,s);r.operation.operationId(t)}))}function zr(t,r="/"){return We(((s,n)=>{if(s.decoratorType!==e.DecoratorTypes.METHOD)throw new e.UnsupportedDecoratorType(zr,n);s.operation.addOperationPath(t.toUpperCase(),r)}))}function Qr(){return Ut("partial")}function Yr(t){return We(((r,s)=>{if(r.decoratorType!==e.DecoratorTypes.CLASS)throw new e.UnsupportedDecoratorType(Yr,s);r.path=t}))}function Zr(...t){const{status:r,url:s,meta:n}=t.reduce(((t,r)=>(0,e.isNumber)(r)?(t.status=r,t):(0,e.isString)(r)?(t.url=r,t):(t.meta=r,t)),{status:302,url:"",meta:{}});return(0,e.useDecorators)(Ur(r).Location(s,n),We((e=>{e.operation?.setRedirection(r)})))}function es(e){let t,r;const s=e.filter((e=>"string"==typeof e&&$e.includes(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 kr{methods=["name","description","summary","method","id","use","useAfter","useBefore"];beforeInit(){const e=this.get("path"),t=we[this.get("method")]||we.CUSTOM;e&&this.entity.operation.addOperationPath(t,e)}onMapKey(e,t){switch(e){case"name":case"id":return void this.entity.operation.operationId(t);case"summary":return void this.entity.operation.summary(t);case"description":return void this.entity.operation.description(t);case"use":return void this.entity.use(t);case"useAfter":return void this.entity.after(t);case"useBefore":return void this.entity.before(t)}return super.onMapKey(e,t)}}function rs(...e){const t=es(e);return new ts(t).build()}function ss(e="/",...t){return rs(...[we.ALL,e].concat(t))}function ns(e="/",...t){return rs(...[we.GET,e].concat(t))}function is(e="/",...t){return rs(...[we.POST,e].concat(t))}function os(e="/",...t){return rs(...[we.PUT,e].concat(t))}function as(e="/",...t){return rs(...[we.DELETE,e].concat(t))}function cs(e="/",...t){return rs(...[we.HEAD,e].concat(t))}function ps(e="/",...t){return rs(...[we.PATCH,e].concat(t))}function us(e="/",...t){return rs(...[we.OPTIONS,e].concat(t))}function hs(t,...r){return We(((s,n)=>{switch(s.decoratorType){case e.DecoratorTypes.METHOD:s.operation.addSecurityScopes(t,r);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(n[0],hs(t,...r));break;default:throw new e.UnsupportedDecoratorType(hs,n)}}))}function ls(e,t){return Ur(e,t)}function ms(t){return We(((r,s)=>{if(r.decoratorType!==e.DecoratorTypes.METHOD)throw new e.UnsupportedDecoratorType(ms,s);r.operation.summary(t)}))}function ds(...t){return We(((r,s)=>{switch(r.decoratorType){case e.DecoratorTypes.METHOD:r.operation.addTags(function(e){return e.map((e=>"string"==typeof e?{name:e}:e))}(t));break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],ds(...t));break;default:throw new e.UnsupportedDecoratorType(ds,s)}}))}function fs(t,r){return(0,e.StoreSet)("view",{path:t,options:r})}function ys(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 gs{token;endpoint;operationPath;basePath;paramsTypes;constructor(e){Object.assign(this,e),this.paramsTypes=this.endpoint.getParamTypes()}get url(){return this.fullPath}get path(){return this.operationPath?.path}get fullPath(){return ys(this.basePath,this.path)}get method(){return this.operationPath?.method||"USE"}get name(){return`${this.endpoint.targetName}.${this.methodClassName}()`}get className(){return this.endpoint.targetName}get methodClassName(){return this.propertyKey}get parameters(){return this.endpoint.parameters}get propertyKey(){return String(this.endpoint.propertyKey)}get propertyName(){return this.endpoint.propertyName}get store(){return this.endpoint.store}get operation(){return this.endpoint.operation}get operationId(){return this.operation.get("operationId")||this.endpoint.propertyKey}has(e){return this.paramsTypes[e]}}const Os=(0,e.mergeReducerBuilder)(((e,t)=>e.type&&e.type===t.type||e.$ref&&e.$ref===t.$ref)),Ss=(0,e.mergeReducerBuilder)(((e,t)=>e.in===t.in&&e.name===t.name)),bs=(0,e.mergeReducerBuilder)(((e,t)=>!!Object.keys(t).find((t=>!!e[t])))),Rs=(0,e.mergeReducerBuilder)(((e,t)=>e.name===t.name)),Ts={security:bs,parameters:Ss,oneOf:Os,anyOf:Os,allOf:Os,tags:Rs};function As(t,r){return(0,e.deepMerge)(t,r,{reducers:Ts,cleanUndefinedProps:!0})}function Es(e=""){const t=new Map;return(r,s,n="")=>{const i=((t,r)=>{const s=(e||"%c.%m").replace(/%c/,t).replace(/%m/,r);return""===e?(0,z.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,z.camelCase)(`${i} By ${a}`)}const c=t.get(o)+1;return t.set(o,c),`${i}_${c}`}}const vs=new Map;function xs(t,r={}){if(r={specType:X.OPENAPI,...r,tags:[],paths:{},schemas:{},operationIdFormatter:r.operationIdFormatter||Es(r.operationIdPattern),root:!1},(0,e.isArray)(t)){let e={};return r={...r,append(t){e=As(e,t)}},t.forEach((({token:e,...t})=>{const s=xs(e,{...r,...t});r.append(s)})),e}return function(e,t,r){vs.has(e)||vs.set(e,new Map);const s=vs.get(e),n=JSON.stringify(t);return s.has(n)||s.set(n,r()),s.get(n)}(t,r,(()=>function(t,r){const s=K(t),{rootPath:n="/"}=r,i=X.OPENAPI,o={paths:h("paths",t,r={...r,rootPath:n,defaultTags:[(0,e.cleanObject)({name:s.schema.getName(),description:s.schema.get("description")})],specType:i})};return o.tags=(0,e.uniqBy)(r.tags,"name"),Object.keys(r.schemas).length&&(o.components={schemas:r.schemas}),o}(t,r)))}function Cs(e){return e.startsWith("3.")?X.OPENAPI:X.SWAGGER}function Ps(e){return"openapi"in e?X.OPENAPI:X.SWAGGER}function $s(t){const{title:r,description:s,version:n,termsOfService:i,contact:o,license:a}=t;return(0,e.cleanObject)({version:n,title:r,description:s,termsOfService:i,contact:o,license:a})}function ws(t,{version:r,specVersion:s,acceptMimes:n=["application/json"]}){const{paths:i,security:o,tags:a,host:c,basePath:p,schemes:u,consumes:h=[],produces:l=["application/json"],definitions:m,parameters:d,responses:f,securityDefinitions:y,externalDocs:g}=t;return{swagger:s,consumes:(0,e.uniq)([...n,...h]),produces:(0,e.uniq)([...l]),info:$s((0,e.getValue)(t,"info",{})),paths:i,host:c,basePath:p,schemes:u,definitions:m,parameters:d,responses:f,security:o,securityDefinitions:y,tags:a,externalDocs:g}}function Ms(t,{specVersion:r}){const{servers:s,paths:n,components:i,security:o,tags:a,externalDocs:c}=t;return{openapi:r,info:$s((0,e.getValue)(t,"info",{})),servers:s,paths:n,components:i,security:o,tags:a,externalDocs:c}}function _s(t,{fileSpec:r,acceptMimes:s,specVersion:n,version:i}){const o={specVersion:n=n||(0,e.getValue)(t,"openapi",(0,e.getValue)(t,"swagger","2.0")),acceptMimes:s};switch(Cs(n)){case X.OPENAPI:t=Ms(t,o),r=r?Ms(r,o):r;break;default:case X.SWAGGER:t=ws(t,o),r=r?ws(r,o):r}return t=As(t,r),(0,e.setValue)(t,"info.title",(0,e.getValue)(t,"info.title","Api documentation")),(0,e.setValue)(t,"info.version",(0,e.getValue)(t,"info.version",i)),t}const Ns=["get","put","post","delete","options","head","patch","trace"],Ds=["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],Ls=["type","items"],ks=/^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/,Is={APPLICATION_X_WWW_URLENCODED:"application/x-www-form-urlencoded",MULTIPART_FORM_DATA:"multipart/form-data"};function js(e){if(Array.isArray(e))e.forEach(js);else if("object"==typeof e)for(let t in e)"$ref"===t?e.$ref=e.$ref.replace("#/components/schemas/","#/definitions/").replace("#/components/","#/x-components/"):js(e[t])}function Hs(e){return new RegExp(ks,"i").test(e)}function qs(e){const t=Object.keys(Is).map((e=>Is[e]));return Object.keys(e).filter((e=>t.indexOf(e)>-1||Hs(e)))}function Gs(e){function t(e){const{scheme:t,type:r,name:s,bearerFormat:n,flows:i,...o}=e;switch(r){case"http":if("basic"===t)return{...o,type:t};if("bearer"===t)return{...o,type:"apiKey",name:"Authorization",in:"header"};break;case"oauth2":const e=Object.keys(i)[0],s=i[e];let n=e;return"clientCredentials"===n?n="application":"authorizationCode"===n&&(n="accessCode"),{type:r,flow:n,authorizationUrl:s.authorizationUrl,tokenUrl:s.tokenUrl,scopes:s.scopes}}}return Object.entries(e).reduce(((e,[r,s])=>({...e,[r]:t(s)})),{})}function Us(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 Bs{spec;constructor(e){this.spec=JSON.parse(JSON.stringify(e))}convertInfos(){const e=this.spec.servers&&this.spec.servers[0];return e?Us(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 t={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,js(this.spec)),delete this.spec.servers,delete this.spec.openapi,delete this.spec["x-components"],(0,e.cleanObject)({...t,...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(Ns.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=qs(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=qs(t)[0],delete i.content,[Is.APPLICATION_X_WWW_URLENCODED,Is.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,Ds),this.copySchemaProperties(t,Ls),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&&Hs(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=Gs(this.spec.components.securitySchemes),delete this.spec.components.securitySchemes)}}function Ks(e){return new Bs(e).convert()}async function Js({tokens:t,...r}){const{version:s="1.0.0",acceptMimes:n,specPath:i,specVersion:o}=r,a=_s((0,e.getValue)(r,"spec",{}),{fileSpec:{},version:s,specVersion:o,acceptMimes:n}),c=Ps(a),p=As(a,xs(t,r));return c===X.SWAGGER?Ks(p):p}const Fs="$cache:schemes";function Ws(e,t={}){const r=K(e),s=t.specType||X.JSON;return t={endpoint:!0,groups:[],inlineEnums:s===X.JSON,...t,specType:s,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(Fs)||new Map,s=function(e){return JSON.stringify(e)}(t);if(!r.has(s)){const n=h("schema",e.schema,t);Object.keys(t.schemas).length&&(n.definitions=t.schemas),r.set(s,n)}return e.store.set(Fs,r),r.get(s)}(r,t)}function Vs(e,t={}){const r=e.isStore?e:K(e),s=ys(t.basePath,r.path);let n=[];return t.withChildren&&(n=r.get("childrenControllers",[]).reduce(((e,r)=>e.concat(Vs(r,{...t,basePath:s}))),n)),[..._e(e).values()].reduce(((t,r)=>{const{operation:n}=r;return n&&n.operationPaths.forEach((n=>{t.push(new gs({basePath:s,token:e,endpoint:r,operationPath:n}))})),t}),n)}function Xs(e){const t=e.isStore?e:K(e);if(!t.$properties){const e=se(t);t.$properties=new Map,e.forEach((e=>{e.children.forEach((e=>{t.$properties.has(e.propertyKey)||t.$properties.set(e.propertyKey,e)}))}))}return t.$properties}function zs(e,t={}){const r=Xs(e),s=new Map;return r.forEach(((e,r)=>{!t.withIgnoredProps&&ce(e.itemSchema,t)||s.set(r,e)})),s}})(),i})()));
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("change-case")):"function"==typeof define&&define.amd?define(["@tsed/core","change-case"],t):"object"==typeof exports?exports.schema=t(require("@tsed/core"),require("change-case")):e.schema=t(e["@tsed/core"],e["change-case"])}(self,((e,t)=>(()=>{"use strict";var r={379:e=>{const t="\\\\/",r=`[^${t}]`,s="\\.",n="\\/",i="[^/]",o=`(?:${n}|$)`,a=`(?:^|${n})`,c=`${s}{1,2}${o}`,p={DOT_LITERAL:s,PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:n,ONE_CHAR:"(?=.)",QMARK:i,END_ANCHOR:o,DOTS_SLASH:c,NO_DOT:`(?!${s})`,NO_DOTS:`(?!${a}${c})`,NO_DOT_SLASH:`(?!${s}{0,1}${o})`,NO_DOTS_SLASH:`(?!${c})`,QMARK_NO_DOT:`[^.${n}]`,STAR:`${i}*?`,START_ANCHOR:a,SEP:"/"},u={...p,SLASH_LITERAL:`[${t}]`,QMARK:r,STAR:`${r}*?`,DOTS_SLASH:`${s}{1,2}(?:[${t}]|$)`,NO_DOT:`(?!${s})`,NO_DOTS:`(?!(?:^|[${t}])${s}{1,2}(?:[${t}]|$))`,NO_DOT_SLASH:`(?!${s}{0,1}(?:[${t}]|$))`,NO_DOTS_SLASH:`(?!${s}{1,2}(?:[${t}]|$))`,QMARK_NO_DOT:`[^.${t}]`,START_ANCHOR:`(?:^|[${t}])`,END_ANCHOR:`(?:[${t}]|$)`,SEP:"\\"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?u:p}},390:(e,t,r)=>{const s=r(379),n=r(290),{MAX_LENGTH:i,POSIX_REGEX_SOURCE:o,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:c,REPLACEMENTS:p}=s,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map((e=>n.escapeRegex(e))).join("..")}return r},h=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,l=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=p[e]||e;const r={...t},l="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;let m=e.length;if(m>l)throw new SyntaxError(`Input length: ${m}, exceeds maximum allowed length: ${l}`);const d={type:"bos",value:"",output:r.prepend||""},f=[d],y=r.capture?"":"?:",g=s.globChars(r.windows),O=s.extglobChars(g),{DOT_LITERAL:S,PLUS_LITERAL:b,SLASH_LITERAL:R,ONE_CHAR:T,DOTS_SLASH:A,NO_DOT:E,NO_DOT_SLASH:v,NO_DOTS_SLASH:x,QMARK:C,QMARK_NO_DOT:P,STAR:$,START_ANCHOR:w}=g,M=e=>`(${y}(?:(?!${w}${e.dot?A:S}).)*?)`,_=r.dot?"":E,N=r.dot?C:P;let D=!0===r.bash?M(r):$;r.capture&&(D=`(${D})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const L={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,L),m=e.length;const k=[],I=[],j=[];let H,q=d;const G=()=>L.index===m-1,U=L.peek=(t=1)=>e[L.index+t],B=L.advance=()=>e[++L.index],K=()=>e.slice(L.index+1),J=(e="",t=0)=>{L.consumed+=e,L.index+=t},F=e=>{L.output+=null!=e.output?e.output:e.value,J(e.value)},W=()=>{let e=1;for(;"!"===U()&&("("!==U(2)||"?"===U(3));)B(),L.start++,e++;return e%2!=0&&(L.negated=!0,L.start++,!0)},V=e=>{L[e]++,j.push(e)},X=e=>{L[e]--,j.pop()},z=e=>{if("globstar"===q.type){const t=L.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||k.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(L.output=L.output.slice(0,-q.output.length),q.type="star",q.value="*",q.output=D,L.output+=q.output)}if(k.length&&"paren"!==e.type&&!O[e.value]&&(k[k.length-1].inner+=e.value),(e.value||e.output)&&F(e),q&&"text"===q.type&&"text"===e.type)return q.value+=e.value,void(q.output=(q.output||"")+e.value);e.prev=q,f.push(e),q=e},Q=(e,t)=>{const s={...O[t],conditions:1,inner:""};s.prev=q,s.parens=L.parens,s.output=L.output;const n=(r.capture?"(":"")+s.open;V("parens"),z({type:e,value:t,output:L.output?"":T}),z({type:"paren",extglob:!0,value:B(),output:n}),k.push(s)},Y=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let s=D;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(s=M(r)),(s!==D||G()||/^\)+$/.test(K()))&&(t=e.close=`)$))${s}`),"bos"===e.prev.type&&G()&&(L.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?D:""):D: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?(L.output=e,L):(L.output=n.wrapOutput(i,L,t),L)}for(;!G();){if(H=B(),"\0"===H)continue;if("\\"===H){const e=U();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,L.index+=s,s%2!=0&&(H+="\\")),!0===r.unescape?H=B()||"":H+=B()||"",0===L.brackets){z({type:"text",value:H});continue}}if(L.brackets>0&&("]"!==H||"["===q.value||"[^"===q.value)){if(!1!==r.posix&&":"===H){const e=q.value.slice(1);if(e.includes("[")&&(q.posix=!0,e.includes(":"))){const e=q.value.lastIndexOf("["),t=q.value.slice(0,e),r=q.value.slice(e+2),s=o[r];if(s){q.value=t+s,L.backtrack=!0,B(),d.output||1!==f.indexOf(q)||(d.output=T);continue}}}("["===H&&":"!==U()||"-"===H&&"]"===U())&&(H=`\\${H}`),"]"!==H||"["!==q.value&&"[^"!==q.value||(H=`\\${H}`),!0===r.posix&&"!"===H&&"["===q.value&&(H="^"),q.value+=H,F({value:H});continue}if(1===L.quotes&&'"'!==H){H=n.escapeRegex(H),q.value+=H,F({value:H});continue}if('"'===H){L.quotes=1===L.quotes?0:1,!0===r.keepQuotes&&z({type:"text",value:H});continue}if("("===H){V("parens"),z({type:"paren",value:H});continue}if(")"===H){if(0===L.parens&&!0===r.strictBrackets)throw new SyntaxError(h("opening","("));const e=k[k.length-1];if(e&&L.parens===e.parens+1){Y(k.pop());continue}z({type:"paren",value:H,output:L.parens?")":"\\)"}),X("parens");continue}if("["===H){if(!0!==r.nobracket&&K().includes("]"))V("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));H=`\\${H}`}z({type:"bracket",value:H});continue}if("]"===H){if(!0===r.nobracket||q&&"bracket"===q.type&&1===q.value.length){z({type:"text",value:H,output:`\\${H}`});continue}if(0===L.brackets){if(!0===r.strictBrackets)throw new SyntaxError(h("opening","["));z({type:"text",value:H,output:`\\${H}`});continue}X("brackets");const e=q.value.slice(1);if(!0===q.posix||"^"!==e[0]||e.includes("/")||(H=`/${H}`),q.value+=H,F({value:H}),!1===r.literalBrackets||n.hasRegexChars(e))continue;const t=n.escapeRegex(q.value);if(L.output=L.output.slice(0,-q.value.length),!0===r.literalBrackets){L.output+=t,q.value=t;continue}q.value=`(${y}${t}|${q.value})`,L.output+=q.value;continue}if("{"===H&&!0!==r.nobrace){V("braces");const e={type:"brace",value:H,output:"(",outputIndex:L.output.length,tokensIndex:L.tokens.length};I.push(e),z(e);continue}if("}"===H){const e=I[I.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),L.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=L.output.slice(0,e.outputIndex),s=L.tokens.slice(e.tokensIndex);e.value=e.output="\\{",H=t="\\}",L.output=r;for(const e of s)L.output+=e.output||e.value}z({type:"brace",value:H,output:t}),X("braces"),I.pop();continue}if("|"===H){k.length>0&&k[k.length-1].conditions++,z({type:"text",value:H});continue}if(","===H){let e=H;const t=I[I.length-1];t&&"braces"===j[j.length-1]&&(t.comma=!0,e="|"),z({type:"comma",value:H,output:e});continue}if("/"===H){if("dot"===q.type&&L.index===L.start+1){L.start=L.index+1,L.consumed="",L.output="",f.pop(),q=d;continue}z({type:"slash",value:H,output:R});continue}if("."===H){if(L.braces>0&&"dot"===q.type){"."===q.value&&(q.output=S);const e=I[I.length-1];q.type="dots",q.output+=H,q.value+=H,e.dots=!0;continue}if(L.braces+L.parens===0&&"bos"!==q.type&&"slash"!==q.type){z({type:"text",value:H,output:S});continue}z({type:"dot",value:H,output:S});continue}if("?"===H){if((!q||"("!==q.value)&&!0!==r.noextglob&&"("===U()&&"?"!==U(2)){Q("qmark",H);continue}if(q&&"paren"===q.type){const e=U();let t=H;if("<"===e&&!n.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===q.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),z({type:"text",value:H,output:t});continue}if(!0!==r.dot&&("slash"===q.type||"bos"===q.type)){z({type:"qmark",value:H,output:P});continue}z({type:"qmark",value:H,output:C});continue}if("!"===H){if(!0!==r.noextglob&&"("===U()&&("?"!==U(2)||!/[!=<:]/.test(U(3)))){Q("negate",H);continue}if(!0!==r.nonegate&&0===L.index){W();continue}}if("+"===H){if(!0!==r.noextglob&&"("===U()&&"?"!==U(2)){Q("plus",H);continue}if(q&&"("===q.value||!1===r.regex){z({type:"plus",value:H,output:b});continue}if(q&&("bracket"===q.type||"paren"===q.type||"brace"===q.type)||L.parens>0){z({type:"plus",value:H});continue}z({type:"plus",value:b});continue}if("@"===H){if(!0!==r.noextglob&&"("===U()&&"?"!==U(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],L.index+=e[0].length),z({type:"text",value:H});continue}if(q&&("globstar"===q.type||!0===q.star)){q.type="star",q.star=!0,q.value+=H,q.output=D,L.backtrack=!0,L.globstar=!0,J(H);continue}let t=K();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Q("star",H);continue}if("star"===q.type){if(!0===r.noglobstar){J(H);continue}const s=q.prev,n=s.prev,i="slash"===s.type||"bos"===s.type,o=n&&("star"===n.type||"globstar"===n.type);if(!0===r.bash&&(!i||t[0]&&"/"!==t[0])){z({type:"star",value:H,output:""});continue}const a=L.braces>0&&("comma"===s.type||"brace"===s.type),c=k.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[L.index+4];if(r&&"/"!==r)break;t=t.slice(3),J("/**",3)}if("bos"===s.type&&G()){q.type="globstar",q.value+=H,q.output=M(r),L.output=q.output,L.globstar=!0,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&!o&&G()){L.output=L.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=M(r)+(r.strictSlashes?")":"|$)"),q.value+=H,L.globstar=!0,L.output+=s.output+q.output,J(H);continue}if("slash"===s.type&&"bos"!==s.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";L.output=L.output.slice(0,-(s.output+q.output).length),s.output=`(?:${s.output}`,q.type="globstar",q.output=`${M(r)}${R}|${R}${e})`,q.value+=H,L.output+=s.output+q.output,L.globstar=!0,J(H+B()),z({type:"slash",value:"/",output:""});continue}if("bos"===s.type&&"/"===t[0]){q.type="globstar",q.value+=H,q.output=`(?:^|${R}|${M(r)}${R})`,L.output=q.output,L.globstar=!0,J(H+B()),z({type:"slash",value:"/",output:""});continue}L.output=L.output.slice(0,-q.output.length),q.type="globstar",q.output=M(r),q.value+=H,L.output+=q.output,L.globstar=!0,J(H);continue}const s={type:"star",value:H,output:D};!0!==r.bash?!q||"bracket"!==q.type&&"paren"!==q.type||!0!==r.regex?(L.index!==L.start&&"slash"!==q.type&&"dot"!==q.type||("dot"===q.type?(L.output+=v,q.output+=v):!0===r.dot?(L.output+=x,q.output+=x):(L.output+=_,q.output+=_),"*"!==U()&&(L.output+=T,q.output+=T)),z(s)):(s.output=H,z(s)):(s.output=".*?","bos"!==q.type&&"slash"!==q.type||(s.output=_+s.output),z(s))}for(;L.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));L.output=n.escapeLast(L.output,"["),X("brackets")}for(;L.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing",")"));L.output=n.escapeLast(L.output,"("),X("parens")}for(;L.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","}"));L.output=n.escapeLast(L.output,"{"),X("braces")}if(!0===r.strictSlashes||"star"!==q.type&&"bracket"!==q.type||z({type:"maybe_slash",value:"",output:`${R}?`}),!0===L.backtrack){L.output="";for(const e of L.tokens)L.output+=null!=e.output?e.output:e.value,e.suffix&&(L.output+=e.suffix)}return L};l.fastpaths=(e,t)=>{const r={...t},o="number"==typeof r.maxLength?Math.min(i,r.maxLength):i,a=e.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);e=p[e]||e;const{DOT_LITERAL:c,SLASH_LITERAL:u,ONE_CHAR:h,DOTS_SLASH:l,NO_DOT:m,NO_DOTS:d,NO_DOTS_SLASH:f,STAR:y,START_ANCHOR:g}=s.globChars(r.windows),O=r.dot?d:m,S=r.dot?f:m,b=r.capture?"":"?:";let R=!0===r.bash?".*?":y;r.capture&&(R=`(${R})`);const T=e=>!0===e.noglobstar?R:`(${b}(?:(?!${g}${e.dot?l:c}).)*?)`,A=e=>{switch(e){case"*":return`${O}${h}${R}`;case".*":return`${c}${h}${R}`;case"*.*":return`${O}${R}${c}${h}${R}`;case"*/*":return`${O}${R}${u}${h}${S}${R}`;case"**":return O+T(r);case"**/*":return`(?:${O}${T(r)}${u})?${S}${h}${R}`;case"**/*.*":return`(?:${O}${T(r)}${u})?${S}${R}${c}${h}${R}`;case"**/.*":return`(?:${O}${T(r)}${u})?${c}${h}${R}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=A(t[1]);if(!r)return;return r+c+t[2]}}},E=n.removePrefix(e,{negated:!1,prefix:""});let v=A(E);return v&&!0!==r.strictSlashes&&(v+=`${u}?`),v},e.exports=l},555:(e,t,r)=>{const s=r(270),n=r(390),i=r(290),o=r(379),a=(e,t,r=!1)=>{if(Array.isArray(e)){const s=e.map((e=>a(e,t,r))),n=e=>{for(const t of s){const r=t(e);if(r)return r}return!1};return n}const s=(n=e)&&"object"==typeof n&&!Array.isArray(n)&&e.tokens&&e.input;var n;if(""===e||"string"!=typeof e&&!s)throw new TypeError("Expected pattern to be a non-empty string");const i=t||{},o=i.windows,c=s?a.compileRe(e,t):a.makeRe(e,t,!1,!0),p=c.state;delete c.state;let u=()=>!1;if(i.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};u=a(i.ignore,e,r)}const h=(r,s=!1)=>{const{isMatch:n,match:h,output:l}=a.test(r,c,t,{glob:e,posix:o}),m={glob:e,state:p,regex:c,posix:o,input:r,output:l,match:h,isMatch:n};return"function"==typeof i.onResult&&i.onResult(m),!1===n?(m.isMatch=!1,!!s&&m):u(r)?("function"==typeof i.onIgnore&&i.onIgnore(m),m.isMatch=!1,!!s&&m):("function"==typeof i.onMatch&&i.onMatch(m),!s||m)};return r&&(h.state=p),h};a.test=(e,t,r,{glob:s,posix:n}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const o=r||{},c=o.format||(n?i.toPosixSlashes:null);let p=e===s,u=p&&c?c(e):e;return!1===p&&(u=c?c(e):e,p=u===s),!1!==p&&!0!==o.capture||(p=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,n):t.exec(u)),{isMatch:Boolean(p),match:p,output:u}},a.matchBase=(e,t,r)=>(t instanceof RegExp?t:a.makeRe(t,r)).test(i.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map((e=>a.parse(e,t))):n(e,{...t,fastpaths:!1}),a.scan=(e,t)=>s(e,t),a.compileRe=(e,t,r=!1,s=!1)=>{if(!0===r)return e.output;const n=t||{},i=n.contains?"":"^",o=n.contains?"":"$";let c=`${i}(?:${e.output})${o}`;e&&!0===e.negated&&(c=`^(?!${c}).*$`);const p=a.toRegex(c,t);return!0===s&&(p.state=e),p},a.makeRe=(e,t,r=!1,s=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let o,c={negated:!1,fastpaths:!0},p="";return e.startsWith("./")&&(e=e.slice(2),p=c.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(o=n.fastpaths(e,t)),void 0===o?(c=n(e,t),c.prefix=p+(c.prefix||"")):c.output=o,a.compileRe(c,t,r,s)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=o,e.exports=a},270:(e,t,r)=>{const s=r(290),{CHAR_ASTERISK:n,CHAR_AT:i,CHAR_BACKWARD_SLASH:o,CHAR_COMMA:a,CHAR_DOT:c,CHAR_EXCLAMATION_MARK:p,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:h,CHAR_LEFT_PARENTHESES:l,CHAR_LEFT_SQUARE_BRACKET:m,CHAR_PLUS:d,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:y,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:O}=r(379),S=e=>e===u||e===o,b=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},R=e.length-1,T=!0===r.parts||!0===r.scanToEnd,A=[],E=[],v=[];let x,C,P=e,$=-1,w=0,M=0,_=!1,N=!1,D=!1,L=!1,k=!1,I=!1,j=!1,H=!1,q=!1,G=0,U={value:"",depth:0,isGlob:!1};const B=()=>$>=R,K=()=>(x=C,P.charCodeAt(++$));for(;$<R;){let e;if(C=K(),C!==o){if(!0===I||C===h){for(G++;!0!==B()&&(C=K());)if(C!==o)if(C!==h){if(!0!==I&&C===c&&(C=K())===c){if(_=U.isBrace=!0,D=U.isGlob=!0,q=!0,!0===T)continue;break}if(!0!==I&&C===a){if(_=U.isBrace=!0,D=U.isGlob=!0,q=!0,!0===T)continue;break}if(C===y&&(G--,0===G)){I=!1,_=U.isBrace=!0,q=!0;break}}else G++;else j=U.backslashes=!0,K();if(!0===T)continue;break}if(C!==u){if(!0!==r.noext&&!0==(C===d||C===i||C===n||C===f||C===p)&&P.charCodeAt($+1)===l){if(D=U.isGlob=!0,L=U.isExtglob=!0,q=!0,!0===T){for(;!0!==B()&&(C=K());)if(C!==o){if(C===g){D=U.isGlob=!0,q=!0;break}}else j=U.backslashes=!0,C=K();continue}break}if(C===n){if(x===n&&(k=U.isGlobstar=!0),D=U.isGlob=!0,q=!0,!0===T)continue;break}if(C===f){if(D=U.isGlob=!0,q=!0,!0===T)continue;break}if(C===m)for(;!0!==B()&&(e=K());)if(e!==o){if(e===O){if(N=U.isBracket=!0,D=U.isGlob=!0,q=!0,!0===T)continue;break}}else j=U.backslashes=!0,K();if(!0===r.nonegate||C!==p||$!==w){if(!0!==r.noparen&&C===l){if(D=U.isGlob=!0,!0===T){for(;!0!==B()&&(C=K());)if(C!==l){if(C===g){q=!0;break}}else j=U.backslashes=!0,C=K();continue}break}if(!0===D){if(q=!0,!0===T)continue;break}}else H=U.negated=!0,w++}else{if(A.push($),E.push(U),U={value:"",depth:0,isGlob:!1},!0===q)continue;if(x===c&&$===w+1){w+=2;continue}M=$+1}}else j=U.backslashes=!0,C=K(),C===h&&(I=!0)}!0===r.noext&&(L=!1,D=!1);let J=P,F="",W="";w>0&&(F=P.slice(0,w),P=P.slice(w),M-=w),J&&!0===D&&M>0?(J=P.slice(0,M),W=P.slice(M)):!0===D?(J="",W=P):J=P,J&&""!==J&&"/"!==J&&J!==P&&S(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(W&&(W=s.removeBackslashes(W)),J&&!0===j&&(J=s.removeBackslashes(J)));const V={prefix:F,input:e,start:w,base:J,glob:W,isBrace:_,isBracket:N,isGlob:D,isExtglob:L,isGlobstar:k,negated:H};if(!0===r.tokens&&(V.maxDepth=0,S(C)||E.push(U),V.tokens=E),!0===r.parts||!0===r.tokens){let t;for(let s=0;s<A.length;s++){const n=t?t+1:w,i=A[s],o=e.slice(n,i);r.tokens&&(0===s&&0!==w?(E[s].isPrefix=!0,E[s].value=F):E[s].value=o,b(E[s]),V.maxDepth+=E[s].depth),0===s&&""===o||v.push(o),t=i}if(t&&t+1<e.length){const s=e.slice(t+1);v.push(s),r.tokens&&(E[E.length-1].value=s,b(E[E.length-1]),V.maxDepth+=E[E.length-1].depth)}V.slashes=A,V.parts=v}return V}},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(/.*\//,"")},870:(e,t,r)=>{e.exports=r(555)},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:t=>{t.exports=e},598:e=>{e.exports=t},739:e=>{e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{n.r(i),n.d(i,{AcceptMime:()=>Dr,AdditionalProperties:()=>at,All:()=>ss,AllOf:()=>ct,Allow:()=>ut,Any:()=>ht,AnyOf:()=>lt,ArrayOf:()=>Qe,Children:()=>Ve,CollectionContains:()=>Ze,CollectionOf:()=>ze,Const:()=>mt,Consumes:()=>Lr,ContentType:()=>Br,Converter:()=>Bs,CustomKey:()=>dt,CustomKeys:()=>ft,DateFormat:()=>Nt,DateTime:()=>_t,DecoratorContext:()=>kr,Default:()=>yt,DefaultMsg:()=>gt,Delete:()=>as,Deprecated:()=>Kr,Description:()=>Ot,Discriminator:()=>b,DiscriminatorKey:()=>St,DiscriminatorValue:()=>Xe,Email:()=>Mt,EndpointMetadata:()=>B,Enum:()=>bt,ErrorMsg:()=>et,Example:()=>Rt,Examples:()=>Tt,ExclusiveMaximum:()=>vt,ExclusiveMinimum:()=>Pt,For:()=>sr,Format:()=>wt,ForwardGroups:()=>It,GenericOf:()=>Mr,Generics:()=>_r,Get:()=>ns,Groups:()=>Ut,HTTP_METHODS:()=>$e,HTTP_STATUS_MESSAGES:()=>Oe,Head:()=>cs,Header:()=>Jr,Hidden:()=>Bt,Ignore:()=>Jt,In:()=>Fr,InFile:()=>Wr,Integer:()=>Ft,JSON_TYPES:()=>f,JsonClassStore:()=>v,JsonEntitiesContainer:()=>t,JsonEntityComponent:()=>E,JsonEntityFn:()=>We,JsonEntityStore:()=>r,JsonFormatTypes:()=>$t,JsonLazyRef:()=>J,JsonMap:()=>P,JsonMedia:()=>H,JsonMethodStore:()=>U,JsonOperation:()=>G,JsonOperationPathsMap:()=>Me,JsonOperationRoute:()=>gs,JsonParameter:()=>_,JsonParameterStore:()=>N,JsonParameterTypes:()=>$,JsonPropertyStore:()=>x,JsonRequestBody:()=>Ae,JsonResponse:()=>q,JsonSchema:()=>A,Location:()=>Vr,MapOf:()=>Ye,Max:()=>Et,MaxItems:()=>rt,MaxLength:()=>Wt,MaxProperties:()=>st,Maximum:()=>At,Min:()=>Ct,MinItems:()=>nt,MinLength:()=>Vt,MinProperties:()=>it,Minimum:()=>xt,MultipleOf:()=>Xt,Name:()=>zt,Nullable:()=>Qt,OneOf:()=>Yt,OperationId:()=>Xr,OperationMethods:()=>we,OperationPath:()=>zr,Optional:()=>Zt,Options:()=>us,ParamMetadata:()=>D,Partial:()=>Qr,Patch:()=>ps,Path:()=>Yr,Pattern:()=>er,Post:()=>is,Produces:()=>Nr,Property:()=>pt,PropertyMetadata:()=>C,Put:()=>os,ReadOnly:()=>tr,RecordOf:()=>nr,Redirect:()=>Zr,Required:()=>ir,RequiredGroups:()=>or,Returns:()=>Ur,Route:()=>rs,Schema:()=>rr,Security:()=>hs,SpecTypes:()=>X,Status:()=>ls,Summary:()=>ms,Tags:()=>ds,TimeFormat:()=>Dt,Title:()=>ar,TypeError:()=>cr,UniqueItems:()=>ot,Uri:()=>Lt,Url:()=>kt,View:()=>fs,WriteOnly:()=>pr,allOf:()=>Pr,alterIgnore:()=>ce,alterOneOf:()=>Ue,alterRequiredGroups:()=>qe,any:()=>vr,anyMapper:()=>ee,anyOf:()=>xr,array:()=>Rr,boolean:()=>dr,buildPath:()=>xe,classMapper:()=>te,concatParameters:()=>Ce,concatPath:()=>ys,createRef:()=>Y,createRefName:()=>Q,date:()=>fr,datetime:()=>yr,defineStatusModel:()=>jr,email:()=>Or,enums:()=>wr,enumsRegistry:()=>a,execMapper:()=>h,formatParameterType:()=>w,from:()=>ur,generateSpec:()=>Js,genericsMapper:()=>re,getComputedType:()=>d,getGenericsMap:()=>F,getInheritedStores:()=>se,getJsonEntityStore:()=>K,getJsonPathParameters:()=>Pe,getJsonSchema:()=>Ws,getJsonSchemaMapper:()=>u,getJsonType:()=>y,getOperationsRoutes:()=>Vs,getOperationsStores:()=>_e,getProperties:()=>zs,getPropertiesStores:()=>Xs,getRequiredProperties:()=>Ge,getSpec:()=>xs,getSpecType:()=>Cs,getSpecTypeFromSpec:()=>Ps,getStatusConstant:()=>Se,getStatusMessage:()=>be,getStatusModel:()=>Hr,hasMapper:()=>l,inheritedClassMapper:()=>ne,inlineEnums:()=>Be,integer:()=>lr,isParameterType:()=>M,isRedirectionStatus:()=>k,isSuccessStatus:()=>L,itemMapper:()=>ie,lazyRef:()=>$r,lazyRefMapper:()=>oe,map:()=>Tr,mapAliasedProperties:()=>He,mapGenericsOptions:()=>W,mapHeaders:()=>I,mapMapper:()=>ae,mapNullableType:()=>pe,mapOpenSpec:()=>_s,mapOpenSpec2:()=>ws,mapOpenSpec3:()=>Ms,mapOpenSpecInfo:()=>$s,mapRouteOptions:()=>es,matchGroups:()=>Gt,mergeSpec:()=>As,number:()=>hr,object:()=>Er,objectMapper:()=>ue,ofMapper:()=>he,oneOf:()=>Cr,oneOfMapper:()=>m,operationIdFormatter:()=>Es,operationInFilesMapper:()=>le,operationInParameterMapper:()=>me,operationInParametersMapper:()=>de,operationInQueryMapper:()=>fe,operationMapper:()=>Re,operationMediaMapper:()=>Te,operationRequestBodyMapper:()=>Ee,operationResponseMapper:()=>ve,parameters:()=>Ss,pathsMapper:()=>Ie,popGenerics:()=>V,propertiesMapper:()=>je,registerJsonSchemaMapper:()=>p,schemaMapper:()=>Fe,schemesReducer:()=>Os,security:()=>bs,serializeEnum:()=>g,serializeEnumValues:()=>O,set:()=>Ar,string:()=>mr,tagsReducer:()=>Rs,time:()=>gr,toJsonMapCollection:()=>j,toJsonRegex:()=>S,toRef:()=>Z,transformInformation:()=>Us,transformSecurity:()=>Gs,transformToOS2:()=>Ks,uri:()=>Sr,url:()=>br,withErrorMsg:()=>tt});var e=n(803);const t=new Map;class r{propertyKey;propertyName;index;descriptor;decoratorType;collectionType;token;store;isStore=!0;parent;target;_type;_schema;constructor(e){const{target:t,propertyKey:r,descriptor:s,index:n,decoratorType:i}=e;this.target=t,this.propertyKey=r,this.propertyName=String(r),this.descriptor=s,this.index=n,this.decoratorType=i,this.token=t,this.store=e.store,this.parent=this}get targetName(){return(0,e.nameOf)(this.token)}get isCollection(){return!!this.collectionType}get isArray(){return(0,e.isArrayOrArrayClass)(this.collectionType)}get discriminatorAncestor(){const t=(0,e.ancestorsOf)(this.target).find((e=>r.from(e).schema.isDiscriminator));return t&&r.from(t)}get isPrimitive(){return(0,e.isPrimitiveOrPrimitiveClass)(this._type)}get isDate(){return(0,e.isDate)(this.computedType)}get isObject(){return(0,e.isObject)(this.computedType)}get isClass(){return(0,e.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(...r){if(r[0].isStore)return r[0];const s=r[0];r.length>1&&(r[0]=(0,e.prototypeOf)(r[0]));const n=e.Store.from(...r);if(!n.has("JsonEntityStore")){const i=(0,e.decoratorTypeOf)(r),o=t.get(i);if(!o)throw Error("Unsupported json entity type");const a=new o({store:n,decoratorType:i,target:(0,e.classOf)(s),propertyKey:r[1],index:"number"==typeof r[2]?r[2]:void 0,descriptor:"object"==typeof r[2]?r[2]:void 0});a.build(),n.set("JsonEntityStore",a)}return n.get("JsonEntityStore")}static fromMethod(t,r){return this.from(t,r,(0,e.descriptorOf)(t,r))}static get(t,s,n){return r.from((0,e.prototypeOf)(t),s,n)}isGetterOnly(){return(0,e.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(t){(0,e.isCollection)(t)?this.collectionType=t:(this._type=t,this._type&&(0,e.isPlainObject)(this._type)&&(this._type=String))}getBestType(){return this.itemSchema.isDiscriminator?this.itemSchema.discriminator():(0,e.isClassObject)(this.type)?this.itemSchema.getTarget():this.type}}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 o(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create,Object.create;const a=new Map,c=new Map;function p(e,t){return c.set(e,t)}function u(e){if(!c.has(e))throw new Error(`JsonSchema ${e} mapper doesn't exists`);return c.get(e)}function h(e,t,r,s){return u(e)(t,r,s)}function l(e){return c.has(e)}function m(...e){return e.find((e=>c.has(e)))}function d(t){return(0,e.isPromise)(t)||t===Function?Object:(0,e.isClass)(t)||(0,e.isSymbol)(t)||(0,e.isPrimitiveOrPrimitiveClass)(t)||(0,e.isClassObject)(t)||(0,e.isDate)(t)||(0,e.isCollection)(t)?(0,e.classOf)(t):(0,e.isArrowFn)(t)?t():t}const f=["string","number","integer","boolean","object","array","null","any"];function y(t){return null===t?"null":(0,e.isPrimitiveOrPrimitiveClass)(t)?f.indexOf(t)>-1?t:"string"==typeof t?"file"===t?"file":"generic":(0,e.primitiveOf)(t):t===Array?"array":(0,e.isArray)(t)?t.map(y):t===Set?"array":(0,e.isDate)(t)||(0,e.isBuffer)(t)?"string":"object"}const g=t=>(0,e.isObject)(t)&&null!==t?Object.entries(t).reduce(((e,[t,r])=>isNaN(+t)?e.concat(r):e),[]):t;function O(t){const r=t.reduce(((e,t)=>e.concat(g(t))),[]),s=r.reduce(((e,t)=>e.add((e=>null===e?"null":typeof e)(t))),new Set);return{values:(0,e.uniq)(r),types:s}}function S(e){return String(e).replace(/^(\/)(.*)(\/)$/,"$2")}class b{propertyName;base;values=new Map;types=new Map;constructor({base:t,propertyName:r,types:s,values:n}={}){Object.assign(this,(0,e.cleanObject)({base:t,propertyName:r,types:s?new Map(s):void 0,values:n?new Map(n):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 R(e){return e instanceof A?e:Object.entries(e).reduce(((e,[t,r])=>(e[S(t)]=T(r),e)),{})}function T(t){return(0,e.isArray)(t)?t.map(T):t.isStore||t.$isJsonDocument||t.isLazyRef?t:(0,e.classOf)(t)!==Object&&(0,e.isClass)(t)?r.from(t).schema:(0,e.isObject)(t)?A.from(t):(0,e.isPrimitiveClass)(t)?A.from({type:t}):t}class A extends Map{$kind="schema";$isJsonDocument=!0;$hooks=new e.Hooks;$required=new Set;$allow=[];$selfRequired;$forwardGroups=!1;isDiscriminatorKey=!1;isDiscriminator=!1;#e=!1;#t=null;#r;#s=[];#n=new Map;#i;#o;#a=!1;#c=!1;#p=!1;constructor(e={}){super(),e&&this.assign(e)}get alias(){return this.#n}get nestedGenerics(){return this.#s}set nestedGenerics(e){this.#s=e}get genericLabels(){return this.#r}set genericLabels(e){this.#r=e}get isClass(){return(0,e.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 t=(0,e.ancestorsOf)(this.#o).find((e=>r.from(e).schema.isDiscriminator));return t&&r.from(t).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||this.$allow.includes(null)}get isReadOnly(){return this.get("readOnly")}get isWriteOnly(){return this.get("writeOnly")}get hasDiscriminator(){return!!this.#t}static from(e={}){return new A(e)}nullable(e){this.#e=e}itemSchema(e={}){return this.#i=this.#i||T(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){if("boolean"==typeof e){const t=e;e=()=>t}return this.$hooks.on("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 b({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 A({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",T(e)),this}contains(e){return super.set("contains",T(e)),this}examples(e){return super.set("examples",e),this}example(...e){return this.examples(e)}items(e){return super.set("items",this.#i=T(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 this.$allow.push(...e),this}required(t=!0){if(!(0,e.isArray)(t)){const e=this.clone();return e.$selfRequired=t,e}return this.$required.clear(),t.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",R(e)),this}addProperty(e,t){const r=this.get("properties")||{};return r[e]=t,super.set("properties",R(r)),this}patternProperties(e){return super.set("patternProperties",R(e)),this}additionalProperties(e){return super.set("additionalProperties",T(e)),this}unknown(e=!0){return this.additionalProperties(e)}dependencies(e){return super.set("dependencies",R(e)),this}propertyNames(e){return super.set("propertyNames",T(e)),this}enum(e,...t){if(a.has(e))return this.enum(a.get(e));if(e instanceof A)e.getName()?super.set("enum",e):super.set("enum",e.get("enum")).any(...e.getJsonType());else{const{values:r,types:s}=O([e,t].flat());super.set("enum",r).any(...s)}return this}definitions(e){return super.set("definitions",R(e)),this}allOf(e){return super.set("allOf",e.map(T)),this}anyOf(e){return super.set("anyOf",e.map(T)),this}oneOf(e){let t=e.map(T);if(1===t.length&&!(e[0]instanceof A)){if(!t[0].hasDiscriminator)return this.type(e[0]);const r=t[0].discriminator().children();if(!r.length)return this.type(e[0]);t=r.map(T)}super.set("oneOf",t);const r=t[0];if(r.isDiscriminator){const e=r.discriminatorAncestor.discriminator(),{propertyName:t}=e;super.set("discriminator",{propertyName:t}),this.isDiscriminator=!0,this.#t=e}return this}not(e){return super.set("not",T(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",S(e)),this}format(e){return super.set("format",e),this}type(t){switch(t){case Map:super.set("type",y(t)),this.#o=t,this.#c=!0,this.has("additionalProperties")||super.set("additionalProperties",this.itemSchema({}));break;case Array:super.set("type",y(t)),this.#o=t,this.#c=!0,this.has("items")||super.set("items",this.itemSchema({}));break;case Set:super.set("type",y(t)),this.#o=t,this.#c=!0,this.uniqueItems(!0),this.has("items")||super.set("items",this.itemSchema({}));break;case"integer":super.set("type",y(t)),this.integer();break;case Object:case Date:case Boolean:case Number:case String:super.set("type",y(t)),this.#o=t,this.has("properties")||super.set("properties",{});break;default:if((0,e.isClass)(t)||(0,e.isFunction)(t))super.set("type",void 0),this.#o=t,this.has("properties")||super.set("properties",{});else{const e=y(t);"generic"===e?(this.#a=!0,super.set("$ref",t)):super.set("type",e)}}return this}any(...t){return t.filter((t=>(0,e.isClass)(t))).length>=2?this.oneOf(t.filter((e=>null!==e&&(this.nullable(!0),!0)))):(t.length?(t=(0,e.uniq)(t).map(y)).includes("null")&&(this.nullable(!0),t=t.filter((e=>"null"!==e))):(t=["integer","number","string","boolean","array","object"],this.nullable(!0)),this.type(1===t.length?t[0]:t)),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 h("schema",this,e)}assign(e={}){return(e instanceof A?[...e.entries()]:Object.entries(e)).forEach((([e,t])=>{this.set(e,t)})),e instanceof A&&(this.$selfRequired=e.$selfRequired,this.$allow.push(...e.$allow),e.$required.forEach((e=>{this.$required.add(e)})),this.#t=this.#t?new b(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,super.set("type",e.get("type"))),this}set(t,r){return t in this?(0,e.isFunction)(this[t])&&this[t](r):super.set(t,r),this}getComputedType(){return d(this.#o)}getComputedItemType(){return this.#i?this.#i.getComputedType():this.getComputedType()}getJsonType(){return this.get("type")||y(this.getComputedType())}getTarget(){return this.#o}getName(){return this.get("name")||((0,e.isClass)(this.#o)?(0,e.nameOf)((0,e.classOf)(this.getComputedType())):"")}clone(){return new A(this)}}function E(e){return r=>{t.set(e,r)}}let v=class extends r{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=A.from({type:this.type})}};v=s([E(e.DecoratorTypes.CLASS)],v);let x=class extends r{parent=r.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(e.Metadata.getType((0,e.prototypeOf)(this.target),this.propertyKey)),this._type=this._type||Object;let t=this.parent.schema.get("properties")[this.propertyName];t||(this.parent.children.set(this.propertyName,this),t=A.from({type:this.collectionType||this.type}),this.collectionType&&t.itemSchema(this.type)),this.parent.schema.addProperty(this.propertyName,t),this._schema=t}static get(t,s){return r.from((0,e.prototypeOf)(t),s)}};x=s([E(e.DecoratorTypes.PROP)],x);const C=x;class P extends Map{$kind="map";$isJsonDocument=!0;constructor(e={}){super(),this.assign(e)}assign(t={}){return Object.entries(t).forEach((([t,r])=>{(0,e.isFunction)(this[t])?this[t](r):this.set(t,r)})),this}toJSON(e){return h("map",this,e)}}var $;function w(e){return String(e).toLowerCase().replace("raw_","").replace("cookies","cookie")}function M(e){return Object.values($).includes(w(e))}!function(e){e.BODY="body",e.PATH="path",e.QUERY="query",e.HEADER="header",e.COOKIES="cookie",e.FILES="files"}($||($={}));class _ extends P{$kind="operationInParameter";nestedGenerics=[];groups;groupsName;$schema;expression;getName(){const e=this.get("name");return"files"===this.get("in")?e.split(".")[0]:e}name(e){return this.set("name",e),this}examples(e){return super.set("examples",e),this}description(e){return this.set("description",e),this}in(e,t=""){return this.set("in",w(e)),this.expression=t,this}required(e){return this.set("required",e),this}schema(e){return this.$schema=e,this}toJSON(e){return h("operationInParameter",this,e)}}let N=class extends r{paramType;expression;dataPath;pipes;parameter=new _;parent=r.fromMethod(this.target,this.propertyKey);constructor(e){super(e),this.pipes=e.pipes||[],this.paramType=e.paramType||this.paramType,this.expression=e.expression||this.expression,this.dataPath=e.dataPath||this.dataPath}get nestedGenerics(){return this.parameter.nestedGenerics}set nestedGenerics(e){this.parameter.nestedGenerics=e}get required(){return!!this.parameter.get("required")}set required(e){this.parameter.required(e)}get allowedRequiredValues(){return this.schema.$allow}static getParams(t,s){const n=[],i=(0,e.ancestorsOf)(t).reverse().find((t=>(0,e.isMethodDescriptor)(t,s)&&r.fromMethod(t,s).children.size));return i?(r.fromMethod(i,s).children.forEach(((e,t)=>{n[+t]=e})),n):[]}static get(t,s,n){return r.from((0,e.prototypeOf)(t),s,n)}isRequired(e){return this.required&&[void 0,null,""].includes(e)&&!this.allowedRequiredValues.includes(e)}getSchema(t){return(0,e.isCollection)(t)||!(0,e.isClass)(t)?A.from({type:t}):r.from(t).schema}build(){if(!this._type){const t=e.Metadata.getParamTypes((0,e.prototypeOf)(this.target),this.propertyKey)[this.index];this.buildType(t)}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))}};N=s([E(e.DecoratorTypes.PARAM),o("design:paramtypes",[Object])],N);const D=N,L=e=>Number(e)&&200<=Number(e)&&Number(e)<300,k=e=>Number(e)&&300<=Number(e)&&Number(e)<400;function I(t){return Object.keys(t).reduce(((r,s)=>{const n=t[s];let i=typeof n,o={example:n};return"object"===i&&(o=n,o.example=void 0===o.value?o.example:o.value,delete o.value,i=typeof o.example),o.type=o.type||i,r[s]=(0,e.cleanObject)(o),r}),{})}function j(e,t=P){return Object.entries(e).reduce(((e,[r,s])=>(e.set(r,new t(s)),e)),new P)}class H extends P{$kind="operationMedia";groups=[];groupsName;allowedGroups;schema(e){return this.set("schema",e),this}examples(e){return this.set("examples",e),this}}class q extends P{$kind="operationResponse";status;constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}headers(e){return this.set("headers",I(e)),this}content(e){return this.set("content",j(e,H)),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 H),this}}class G extends P{$kind="operation";operationPaths=new Map;#u;#h=!1;constructor(e={}){super({parameters:[],responses:new P,...e})}get response(){return this.getResponses().get(this.getStatus().toString())}get status(){return this.#u}tags(e){return super.set("tags",e),this}addTags(t){return t=(0,e.uniqBy)([...this.get("tags")||[],...t],"name"),this.tags(t)}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?k(e):this.#h}addResponse(t,r){if((L(t)||k(t))&&!this.#u){const e=this.getResponseOf(200);this.getResponses().set(t.toString(),e).delete("200"),this.defaultStatus(Number(t))}const s="default"===t?this.getStatus().toString():t.toString(),n=this.getResponses().get(s);return n?(r.forEach(((t,r)=>{["content"].includes(r)||n.set(r,(0,e.deepMerge)(n.get(r),t))})),n.status=Number(s)):(r.status=Number(s),this.getResponses().set(s,r)),this}getResponses(){return this.get("responses")}getResponseOf(e){return("default"===e?this.response:this.getResponses().get(String(e)))||new q}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(t,r){const s=this.get("security")||{};return s[t]=(0,e.uniq)([...s[t]||[],...r]),this.security(s)}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(t){const r=(0,e.uniq)([].concat(this.get("produces"),t)).filter(Boolean);this.set("produces",r)}addOperationPath(e,t,r={}){return this.operationPaths.set(String(e)+String(t),{...r,method:e,path:t}),this}}let U=class extends r{parent=r.from(this.target);middlewares=[];beforeMiddlewares=[];afterMiddlewares=[];operation=new G;children=new Map;constructor(t){super({store:e.Store.fromMethod(t.target,t.propertyKey),descriptor:(0,e.descriptorOf)(t.target,t.propertyKey),...t});const{beforeMiddlewares:r=[],middlewares:s=[],afterMiddlewares:n=[]}=t;this.after(n),this.before(r),this.use(s)}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(t,s,n){return n=n||(0,e.descriptorOf)((0,e.prototypeOf)(t),s),r.from((0,e.prototypeOf)(t),s,n)}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(t){return this.beforeMiddlewares=this.beforeMiddlewares.concat(t).filter(e.isFunction),this}after(t){return this.afterMiddlewares=this.afterMiddlewares.concat(t).filter(e.isFunction),this}use(t){return this.middlewares=this.middlewares.concat(t).filter(e.isFunction),this}get(t){const r=e.Store.from(this.target).get(t);return(0,e.deepMerge)(r,this.store.get(t))}getParamTypes(){return[...this.children.values()].reduce(((e,t)=>({...e,[t.paramType]:!0})),{})}build(){if(!this._type){let t=e.Metadata.getReturnType(this.target,this.propertyKey);t=(0,e.isPromise)(t)?void 0:t,this.buildType(t)}this._type=this._type||Object,this.parent.children.set(this.propertyName,this),(0,e.isCollection)(this._type)&&(this.collectionType=this._type,delete this._type),this._schema=A.from({type:this.collectionType||this.type}),this.collectionType&&this._schema.itemSchema(this.type),this.parent.schema.addProperty(this.propertyName,this.schema)}};U=s([E(e.DecoratorTypes.METHOD),o("design:paramtypes",[Object])],U);const B=U;function K(...e){return r.from(...e)}t.set(e.DecoratorTypes.CLASS,v),t.set(e.DecoratorTypes.PROP,x),t.set(e.DecoratorTypes.PARAM,N),t.set(e.DecoratorTypes.METHOD,U);class J{getType;isLazyRef=!0;constructor(e){this.getType=e}get target(){return this.getType()}get schema(){return K(this.getType()).schema}get name(){return(0,e.nameOf)(this.getType())}}function F(e,t){return e.reduce(((e,r,s)=>e.set(r,t[s])),new Map)}function W(e){if(e.genericLabels&&e.genericTypes){const{genericLabels:t,genericTypes:r,...s}=e;return{...s,generics:F(t,r)}}return e}function V(e){const[t,...r]=e.nestedGenerics;return{genericTypes:t,nestedGenerics:r}}var X,z=n(598);function Q(e,t){return t.groups&&t.groups.length?(0,z.pascalCase)(`${e} ${t.groupsName||t.groups.join(" ")}`):e}function Y(t,r,s){const n=function(e){const{host:t="#/"+("openapi3"===e.specType?"components/schemas":"definitions")}=e;return t}(s),i={$ref:`${n}/${t}`},o=r.isNullable,a=r.isReadOnly,c=r.isWriteOnly;if(o||a||c)switch(s.specType){case X.OPENAPI:return(0,e.cleanObject)({nullable:!!o||void 0,readOnly:!!a||void 0,writeOnly:!!c||void 0,oneOf:[i]});case X.JSON:return(0,e.cleanObject)({readOnly:a,writeOnly:c,oneOf:[i]})}return i}function Z(e,t,r){const s=Q(e.getName(),r);return r.schemas[s]=t,Y(s,e,r)}function ee(e,t={}){if("object"!=typeof e||null===e)return e;if(e instanceof J)return h("lazyRef",e,t);if(e instanceof A&&e.get("enum")instanceof A){const r=e.get("enum");return Z(r,r.toJSON(t),t)}if(e.$kind&&e.$isJsonDocument){const r=h(m(e.$kind,"map"),e,W(t));return e.canRef?Z(e,r,t):r}return h("object",e,t)}function te(e,t){const s=r.from(e.class),n=Q(s.schema.getName()||e.getName(),t);if(e.hasGenerics){const{type:r,properties:n,additionalProperties:i,items:o,...a}=e.toJSON(t),c={...h("any",s.schema,{...t,...V(e),root:!1}),...a};if(c.title){const r=Q(c.title,t);return t.schemas[r]=c,delete c.title,Y(r,e,t)}return c}return t.schemas&&!t.schemas[n]&&(t.schemas[n]={},t.schemas[n]=h("any",s.schema,W({...t,root:!1}))),Y(n,e,t)}function re(t,s){const{generics:n}=s;if(n&&t.$ref&&n.has(t.$ref)){let i=n.get(t.$ref);if((0,e.isPrimitiveClass)(i))return{type:y(i)};if(i===Date)return{type:"string",format:"date-time"};if(i.toJSON)return i.toJSON({...s,generics:void 0});if(i===Object)return{type:"object"};if((0,e.isClass)(i)){const e={class:i};return 0===s.nestedGenerics.length?h("class",e,{...s,generics:void 0}):h("schema",r.from(e.class).schema,{...s,...V(s),root:!1})}}return t}function se(t){const r=t.isStore?t:K(t);return r.$inherited||(r.$inherited=(0,e.ancestorsOf)(r.target).reverse().reduce(((e,t)=>e.set(t,K(t))),new Map)),r.$inherited}function ne(t,{target:r,...s}){const n=Array.from(se(r).entries()).filter((([t])=>(0,e.classOf)(t)!==(0,e.classOf)(r)));if(n.length){const r=n.reduce(((t,[,r])=>(0,e.deepMerge)(t,h("schema",r.schema,s))),{});t=(0,e.deepMerge)(r,t)}return t}function ie(e,t){return e&&e.isClass?h("class",e,t):h("any",e,t)}function oe(e,t){const r=e.name;if(t.$refs?.find((t=>t===e.target)))return Y(r,e.schema,t);t.$refs=[...t.$refs||[],e.target];const s=e.getType()&&h("schema",e.schema,W(t));return Z(e.schema,s,t)}function ae(e,{ignore:t=[],...r}={}){return r=W(r),Array.from(e.entries()).reduce(((e,[s,n])=>(t.includes(s)||(e[s]=h("item",n,r)),e)),{})}function ce(e,t){let r=e?.$hooks?.alter("ignore",!1,[t]);return r||(!1!==t.groups?e?.$hooks?.alter("groups",!1,[t.groups]):r)}function pe(t,r,s){if(!r?.isNullable)return t;let n=[].concat(t.type).filter(Boolean);switch(s.specType){default:case X.JSON:t.discriminator||(t.oneOf?function(e){return e.oneOf.find((e=>"null"===e.type))}(t)||t.oneOf.unshift({type:"null"}):t.type=(0,e.uniq)(["null",...n]));break;case X.OPENAPI:t.nullable=!0,t.oneOf||(n.length>1?(t.oneOf=n.map((e=>({type:e}))),delete t.type):t.type=n[0])}return t}function ue(t,r){const{specType:s,operationIdFormatter:n,root:i,schemas:o,genericTypes:a,nestedGenerics:c,useAlias:p,genericLabels:u,...l}=r;return Object.entries(t).reduce(((e,[s,n])=>{if(!1!==r.withIgnoredProps&&!ce(n,l)){const i={...r,groups:t?.$forwardGroups||n?.$forwardGroups?r.groups:void 0};e[s]=h("item",n,i),e[s]=pe(e[s],n,i)}return e}),(0,e.isArray)(t)?[]:{})}function he(e,t,r){return e.map((e=>h("item",e,{...t,genericLabels:r.genericLabels})))}function le(t,{jsonSchema:r}){const s={type:"string",format:"binary",oneOf:void 0};return"array"===r.type?(r.items=(0,e.cleanObject)({...r.items,...s}),t.schema=r,t):(t.schema=(0,e.cleanObject)({...r,...s}),t)}function me(e,t){const r=function(e,t={}){return{...t,groups:e.groups,groupsName:e.groupsName}}(e,t),s={...r.schemas||{}},{type:n,schema:i,...o}=h("map",e,r),a=h("item",e.$schema,{...r,...V(e)});o.required=o.required||e.get("in")===$.PATH;const c={...r,jsonSchema:a,jsonParameter:e,oldSchemas:s},p=(0,z.camelCase)(`operationIn ${e.get("in")}`);return l(p)?h(p,o,c):(o.schema=a,o)}function de(e,t){return e.flatMap((e=>h("operationInParameter",e,t))).filter(Boolean)}function fe(t,{jsonSchema:r,jsonParameters:s,...n}){if(r.$ref){if(!t.name)return function(t,{jsonParameter:r,...s}){const n=Q(r.$schema.getName(),s),i=s.schemas?.[n];return i&&!s.oldSchemas?.[n]&&delete s.schemas[r.$schema.getName()],Object.entries(i?.properties||{}).reduce(((r,[s,{description:n,...o}])=>[...r,(0,e.cleanObject)({...t,name:s,required:(i?.required||[]).includes(s),description:n,schema:o,style:o.$ref?"deepObject":void 0})]),[])}(t,n);t.style="deepObject"}return t.schema=r,t}!function(e){e.JSON="jsonschema",e.SWAGGER="swagger2",e.OPENAPI="openapi3"}(X||(X={})),p("any",ee),p("class",te),p("generics",re),p("inheritedClass",ne),p("item",ie),p("lazyRef",oe),p("map",ae),p("object",ue),p("anyOf",he),p("allOf",he),p("oneOf",he),p("operationInFiles",le),p("operationInParameter",me),p("operationInParameters",de),p("operationInQuery",fe);var ye=n(203),ge=n.n(ye);const Oe=ge().codes.reduce(((e,t)=>{const r=String(ge()(t));return{...e,[String(t)]:{label:r,code:(0,z.constantCase)(r)}}}),{});function Se(e){return Oe[e]?.code}function be(e){return Oe[e]?.label}function Re(e,{tags:t=[],defaultTags:r=[],...s}={}){const{consumes:n,produces:i,...o}=h("map",e,{...s,ignore:["parameters"]});o.security&&(o.security=[].concat(o.security)),0===e.get("responses").size&&(o.responses={200:{description:be(200)}});const a={...s,consumes:e.get("consumes")?.length?e.get("consumes"):["application/json"]},[c,p]=function(e,t){return e.get("parameters").filter((e=>M(e.get("in")))).reduce(((e,t)=>{const[r,s]=e;return[$.BODY,$.FILES].includes(t.get("in"))?[r,[...s,t]]:[[...r,t],s]}),[[],[]])}(e);o.parameters=h("operationInParameters",c,s),p.length&&(o.requestBody=h("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 Te(e,t){return h("map",e,{...t,groups:[...e.groups||[]],groupsName:e.groupsName})}Oe[200].label="Success",Oe[200].code="SUCCESS",p("operation",Re),p("operationMedia",Te);class Ae extends P{$kind="operationRequestBody";constructor(e={}){super(e),this.content(e.content||{})}description(e){return this.set("description",e),this}content(e){return this.set("content",j(e)),this}addContent(e,t,r){const s=this.get("content"),n=new P;return n.set("schema",t),r&&n.set("examples",r),s.set(e,n),this}required(e){return this.set("required",e),this}}function Ee(e,{consumes:t,...r}){const{schema:s,examples:n,in:i,...o}=function(e,t){let r=new A;const s={},n=[];let i=0;return e.forEach((e=>{const o=e.getName();[...e.entries()].filter((([e])=>!["in","name"].includes(e))).forEach((([e,t])=>{void 0===s[e]&&(s[e]=t)}));const a=h("operationInParameter",e,t);o?(r.addProperty(o,a.schema||{type:a.type}),e.get("required")&&r.addRequired(o),i++):n.push(a)})),i||1!==n.length?(r.type("object"),{schema:r.toJSON(t),required:!1,...s}):n[0]}(e,r),a=new Ae(o);return t.forEach((e=>{a.addContent(e,s,n)})),h("map",a,r)}function ve(e,t={}){const r=h("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 xe(e){return e.split("/").filter(Boolean).join("/")}function Ce(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 Pe(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)}]}p("operationRequestBody",Ee),p("operationResponse",ve);const $e=["all","checkout","connect","copy","delete","get","head","lock","merge","mkactivity","mkcol","move","m-search","notify","options","param","patch","post","propfind","propatch","purge","put","report","search","subscribe","trace","unlock","unsuscribe"];var we;!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.CUSTOM="CUSTOM"}(we||(we={}));class Me extends Map{$kind="operationPaths";$isJsonDocument=!0;setOperationPath(e){if(e.method!==we.CUSTOM){const t=this.getKey(e.method,e.path);this.set(t,e)}}getKey=(e,t)=>`${e}-${t}`}function _e(e){const t=e.isStore?e:K(e);if(!t.$operations){const e=new Me;t.$operations=new Map,se(t).forEach((e=>{e.children.forEach((e=>{e instanceof U&&!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 Ne(e,{store:t,operationIdFormatter:r}){return r(t.parent.schema.get("name")||t.parent.targetName,t.propertyName,e)}function De(e,{path:t,method:r,operation:s}){return{...e,[t]:{...e[t],[r.toLowerCase()]:s}}}function Le(e){return!e.store.get("hidden")}function ke({operationStore:e,operation:t}){return[...e.operation.operationPaths.values()].map((r=>({...r,operationStore:e,operation:t}))).filter((({method:e})=>e))}function Ie(e,{paths:t,rootPath:r,...s}){const n=xe(r+K(e).path);return s={...s,ctrlRootPath:n},[..._e(e).values()].filter(Le).map(function(e){return t=>({operation:h("operation",t.operation,e),operationStore:t})}(s)).flatMap(ke).flatMap(function(e){return({path:t,method:r,operation:s,operationStore:n})=>Pe(e.ctrlRootPath,t).map((({path:t,parameters:i})=>(t=t||"/",i=Ce(i.map((({type:e,...t})=>({...t,schema:{type:e}}))),s),{operation:{...s,parameters:i,operationId:s.operationId||Ne(t,{...e,store:n})},method:r,path:t})))}(s)).reduce(De,t)}function je(e,t,r){return e.isClass?h("class",e,t):h("any",e,{...t,genericLabels:r.genericLabels})}function He(e,t){return Object.entries(e).reduce(((e,[r,s])=>(e[r=t.get(r)||r]=s,e)),{})}function qe(e,t,r){return!1!==r.groups?t?.$hooks?.alter("requiredGroups",e,[r.groups]):e}function Ge(t,r,s){if(s.groups&&s.groups.includes("partial"))return t.discriminator?{...t,required:[t.discriminator.propertyName]}:t;let n=function(t,r,s){let n=t.required||[];return n=[...n,...r.$required],r.get("properties")&&(n=Object.entries(r.get("properties")).reduce(((e,[t,r])=>r&&void 0!==r.$selfRequired?r.$selfRequired?e.concat(t):e.filter((e=>e===t)):e),n)),qe((0,e.uniq)(n),r,s)}(t,r,s);return n=(0,e.uniq)(n).reduce(function(e,t,r={}){const{useAlias:s}=r,n=Object.keys(e.properties||{});return(r,i)=>{const o=s&&t.alias.get(i)||i;if(n.includes(o)){const s=t.get("properties")[i],n=e.properties[o];return e.properties[o]=function(e,t){if(!t?.$allow.includes("")&&[].concat(t?.get("type")).includes("string")){const t=e?.minLength;if(void 0===t)return{...e,minLength:1}}return e}(n,s),r.concat(o)}return r}}(t,r,s),[]),t.discriminator&&n.push(t.discriminator.propertyName),n.length?{...t,required:n}:t}function Ue(e,t,r){return e.oneOf&&!1!==r.groups&&(e={...e,oneOf:t.$hooks.alter("oneOf",e.oneOf,[r.groups])}),!(e.oneOf||e.allOf||e.anyOf)||e.items||e.properties||delete e.type,e}function Be(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}p("paths",Ie),p("properties",je),p("items",je),p("additionalProperties",je),p("propertyNames",je),p("contains",je),p("dependencies",je),p("patternProperties",je),p("additionalItems",je),p("not",je),p("definitions",je);const Ke=["name","$required","$hooks","_nestedGenerics",X.OPENAPI,X.SWAGGER,X.JSON],Je=["const"];function Fe(t,r){const{options:s,addDef:n}=function(e){let t=!1;e||(t=!0,e={schemas:{},inlineEnums:!0});const{useAlias:r=!0,schemas:s={}}=e;return{addDef:t,options:e={...e,useAlias:r,schemas:s}}}(r),i=function(t,r){let s=function(t,r){const{useAlias:s}=r;return[...t.keys()].filter((e=>!function(e,{specType:t=X.JSON,customKeys:r=!1}){return Ke.includes(e)||e.startsWith("#")&&(!1===r||t!==X.JSON)||t!==X.JSON&&Je.includes(e)}(e,r))).reduce(((n,i)=>{let o=t.get(i);if("type"===(i=i.replace(/^#/,"")))return{...n,[i]:t.getJsonType()};if(function(t,r,s){return"examples"===t&&(0,e.isObject)(r)&&X.OPENAPI===s.specType}(i,o,r)&&(i="example",o=Object.values(o)[0]),o&&"object"==typeof o&&l(i)){if(o=h(i,o,r,t),function(e,t){return"object"==typeof t&&["items","properties","additionalProperties"].includes(e)&&0===Object.keys(t).length}(i,o))return n;(function(e,t,r){return"object"==typeof t&&r&&["properties","additionalProperties"].includes(e)})(i,o,s)&&(o=He(o,t.alias))}return{...n,[i]:o}}),{})}(t,r);return t.isClass&&(s=h("inheritedClass",s,{...r,root:!1,target:t.getComputedType()})),s=h("generics",s,{...r,root:!1}),t.has(r.specType)&&(s={...s,...t.get(r.specType).toJSON(r)}),s=Ge(s,t,r),s=pe(s,t,r),s=Ue(s,t,r),s=Be(s,0,r),s}(t,s);return n&&s.schemas&&Object.keys(s.schemas).length&&(i.definitions=s.schemas),i}function We(e){return(...t)=>{const r=e(K(...t),t);"function"==typeof r&&r(...t)}}function Ve(...t){return We((r=>{r.store.set("childrenControllers",t),t.forEach((t=>{e.Store.from(t).set("parentController",r.token)}))}))}function Xe(e,...t){return We((r=>{e=e||(0,z.snakeCase)(r.targetName),r.discriminatorAncestor&&r.schema.discriminatorValue(e,...t)}))}function ze(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 s={};let n=!1;const i=(...i)=>{const o=r.from(...i);t&&(o.collectionType=t,o.schema.type(t)),o.type=e,o.itemSchema.type(e),o.schema.assign(s),o.isArray&&n&&(o.schema.set("contains",o.schema.get("items")),o.schema.delete("items"))};return i.MinItems=e=>(s.minItems=e,i),i.MaxItems=e=>(s.maxItems=e,i),i.MinProperties=e=>(s.minProperties=e,i),i.MaxProperties=e=>(s.maxProperties=e,i),i.Contains=()=>(n=!0,i),i.UniqueItems=(e=!0)=>(s.uniqueItems=e,i),i}function Qe(e){return ze(e,Array)}function Ye(e){return ze(e,Map)}function Ze(e){return ze(e).Contains()}function et(e){return We((t=>{const r=t.parentSchema.get("#errorMessage")||{};t.parentSchema.customKey("errorMessage",{...r,...e})}))}function tt(t,r){const s={};return(...n)=>{const i=(0,e.useDecorators)(r(...n));return i.Error=r=>(s.message=r,(0,e.useDecorators)(i,s.message&&et({[t]:r}))),i}}p("schema",Fe);const rt=tt("maxItems",(e=>{if(e<0)throw new Error("The value of maxItems MUST be a non-negative integer.");return We((t=>{t.schema.maxItems(e)}))})),st=tt("maxProperties",(e=>{if(e<0)throw new Error("The value of maxProperties MUST be a non-negative integer.");return We((t=>{t.isCollection?t.schema.maxProperties(e):t.itemSchema.maxProperties(e)}))})),nt=tt("minItems",(e=>{if(e<0)throw new Error("The value of minItems MUST be a non-negative integer.");return We((t=>{t.schema.minItems(e)}))})),it=tt("minProperties",(e=>{if(e<0)throw new Error("The value of minProperties MUST be a non-negative integer.");return We((t=>{t.isCollection?t.schema.minProperties(e):t.itemSchema.minProperties(e)}))})),ot=tt("uniqueItems",((e=!0)=>We((t=>{t.schema.uniqueItems(e)}))));function at(e){return We(((t,r)=>{t.itemSchema.additionalProperties(e)}))}function ct(...e){return We((t=>{t.itemSchema.allOf(e)}))}function pt(t){return We((r=>{t&&((0,e.isClass)(t)&&(r.type=t),r.itemSchema.type(t))}))}function ut(...t){const r=t.find((t=>(0,e.isClass)(t)));return(0,e.useDecorators)(r&&pt(r),We(((r,s)=>{r.schema.allow(...t),r.decoratorType===e.DecoratorTypes.PARAM&&(r.required=!0),r.decoratorType===e.DecoratorTypes.PROP&&r.parentSchema.addRequired(r.propertyName)})))}function ht(...e){return We((t=>{t.itemSchema.any(...e)}))}function lt(...e){return We((t=>{t.itemSchema.anyOf(e)}))}function mt(e){return We((t=>{t.itemSchema.const(e)}))}function dt(e,t){return We((r=>{r.itemSchema.customKey(e,t)}))}function ft(e){return We((t=>{Object.entries(e).forEach((([e,r])=>{t.itemSchema.customKey(e,r)}))}))}function yt(e){return We((t=>{t.itemSchema.default(e)}))}function gt(t){return(0,e.useDecorators)(et({_:t}))}function Ot(t){return We(((r,s)=>{switch((0,e.decoratorTypeOf)(s)){case e.DecoratorTypes.PROP:case e.DecoratorTypes.CLASS:r.schema.description(t);break;case e.DecoratorTypes.PARAM:r.parameter.description(t);break;case e.DecoratorTypes.METHOD:r.operation?.description(t)}}))}function St(){return(0,e.useDecorators)(pt(),We((e=>{e.discriminatorKey()})))}const bt=tt("enum",(function(e,...t){return We((r=>{r.itemSchema.enum(e,...t)}))}));function Rt(...e){return We((t=>{t.schema.examples(e)}))}function Tt(e){return We((t=>{t.parameter.examples(e)}))}const At=tt("maximum",((e,t=!1)=>We((r=>{t?r.itemSchema.exclusiveMaximum(e):r.itemSchema.maximum(e)})))),Et=At,vt=tt("exclusiveMaximum",((e,t=!0)=>At(e,t))),xt=tt("minimum",((e,t=!1)=>We((r=>{t?r.itemSchema.exclusiveMinimum(e):r.itemSchema.minimum(e)})))),Ct=xt,Pt=tt("exclusiveMinimum",((e,t=!0)=>xt(e,t)));var $t;!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"}($t||($t={}));const wt=tt("format",(e=>We((t=>{t.itemSchema.format(e)})))),Mt=tt("format",(()=>wt($t.EMAIL))),_t=tt("format",(()=>wt($t.DATE_TIME))),Nt=tt("format",(()=>wt($t.DATE))),Dt=tt("format",(()=>wt($t.TIME))),Lt=tt("format",(()=>wt($t.URI))),kt=tt("format",(()=>wt($t.URL)));function It(e=!0){return We((t=>{t.schema.$forwardGroups=e}))}var jt=n(870),Ht=n.n(jt);function qt(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=Ht()(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 Gt(e,t=[]){const r=e.filter((e=>e.startsWith("!"))).map((e=>e.replace("!",""))),s=e.filter((e=>!e.startsWith("!")));return!!(r.length&&t.length&&qt(r,t))||!!s.length&&!qt(e.filter((e=>!e.startsWith("!"))),t)}function Ut(...t){return We((r=>{switch(r.decoratorType){case e.DecoratorTypes.CLASS:!function(e,t){const r=Object.entries(e[0]);t.children.forEach((e=>{Ut(...r.filter((([,t])=>t.includes(e.propertyName))).map((([e])=>e)))(e.target,e.propertyKey)}))}(t,r);break;case e.DecoratorTypes.PROP:r.schema.$hooks.on("groups",((e,r)=>!(e||!Gt(t,r))||e));break;case e.DecoratorTypes.PARAM:let s="";2==t.length&&(0,e.isArray)(t[1])&&(s=t[0],t=t[1]),r.parameter.groups=t,r.parameter.groupsName=s}}))}function Bt(){return(0,e.StoreSet)("hidden",!0)}const Kt=(e,t)=>!0!==t.mongoose;function Jt(e=Kt){return We((t=>{t.schema.ignore(e)}))}function Ft(){return We((e=>{e.itemSchema.type("integer")}))}const Wt=tt("maxLength",(e=>{if(e<0)throw new Error("The value of maxLength MUST be a non-negative integer.");return We((t=>{t.itemSchema.maxLength(e)}))})),Vt=tt("minLength",(e=>{if(e<0)throw new Error("The value of minLength MUST be a non-negative integer.");return We((t=>{t.itemSchema.minLength(e)}))})),Xt=tt("multipleOf",(e=>{if(e<=0)throw new Error("The value of multipleOf MUST be a number, strictly greater than 0.");return We((t=>{t.itemSchema.multipleOf(e)}))}));function zt(t){return We(((r,s)=>{switch((0,e.decoratorTypeOf)(s)){case e.DecoratorTypes.CLASS:r.schema.name(t);break;case e.DecoratorTypes.PARAM:r.parameter.name(t);break;default:r.parent.schema.addAlias(s[1],t)}}))}function Qt(t,...r){return r=[t,...r],(0,e.useDecorators)(1===r.length&&pt(r[0]),ht(null,...r))}function Yt(...e){return We((t=>{t.itemSchema.oneOf(e),t.type=Object}))}function Zt(){return We((t=>{switch(t.decoratorType){case e.DecoratorTypes.PARAM:t.required=!1;break;case e.DecoratorTypes.PROP:t.parentSchema.removeRequired(t.propertyName)}}))}const er=tt("pattern",(e=>We((t=>{t.itemSchema.pattern(e)}))));function tr(e=!0){return We((t=>{t.itemSchema.readOnly(e)}))}function rr(e){return We((t=>{Object.entries(e).forEach((([e,r])=>{t.schema.set(e,r)}))}))}function sr(e,t){return We((r=>{r.schema.set(e,t)}))}function nr(e,...t){return rr({properties:{...t.reduce(((t,r)=>({...t,[r]:e})),{})}})}const ir=tt("required",((e=!0,...t)=>e?ut(...t):Zt()));function or(...e){return We((t=>{t.parent.schema.$hooks.on("requiredGroups",((r,s)=>Gt(e,s)?r.filter((e=>e!==t.propertyKey)):r))}))}function ar(e){return We((t=>{t.schema.title(e)}))}function cr(t){return We((()=>(0,e.useDecorators)(et({type:t}))))}function pr(e=!0){return We((t=>{t.itemSchema.writeOnly(e)}))}function ur(t=Object){if((0,e.isClass)(t)){const{schema:e}=K(t);return e.properties=function(e){return Object.entries(e).forEach((([e,r])=>{K(t.prototype,e).schema.assign(r)})),this},e}return A.from({type:t})}function hr(){return ur(Number)}function lr(){return ur(Number).integer()}function mr(){return ur(String)}function dr(){return ur(Boolean)}function fr(){return ur(Date).format($t.DATE)}function yr(){return ur(Date).format($t.DATE_TIME)}function gr(){return ur(Date).format($t.TIME)}function Or(){return ur(String).format($t.EMAIL)}function Sr(){return ur(String).format($t.URI)}function br(){return ur(String).format($t.URL)}function Rr(){return ur(Array)}function Tr(){return ur(Map).unknown(!0)}function Ar(){return ur(Array).uniqueItems(!0)}function Er(e={}){return ur(Object).properties(e)}function vr(...e){return ur().any(...e)}function xr(...e){return ur().anyOf(e)}function Cr(...e){return ur().oneOf(e)}function Pr(...e){return ur().allOf(e)}function $r(e){try{if(e())return r.from(e()).schema}catch(e){}return new J(e)}function wr(e){const t=mr().enum(e);return a.set(e,t),t}function Mr(...t){const s=[t.map((t=>function(t){return(0,e.isObject)(t)&&!("toJSON"in t)}(t)?mr().enum(Object.values(t)):t))],n=(...e)=>{r.from(...e).nestedGenerics=s};return n.Nested=(...e)=>(s.push(e),n),n}function _r(...e){return t=>{r.from(t).schema.genericLabels=e}}function Nr(...t){return We(((r,s)=>{switch(r.decoratorType){case e.DecoratorTypes.METHOD:r.operation.produces(t);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],Nr(...t));break;default:throw new e.UnsupportedDecoratorType(Nr,s)}}))}function Dr(...t){return(0,e.useDecorators)(Nr(...t),(0,e.StoreSet)("acceptMimes",t))}function Lr(...t){return We(((r,s)=>{switch(r.decoratorType){case e.DecoratorTypes.METHOD:r.operation.consumes(t);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],Lr(...t));break;default:throw new e.UnsupportedDecoratorType(Lr,s)}}))}class kr extends Map{methods;decoratorType;entity;actions=[];constructor(e={}){super(),Object.entries(e).forEach((([e,t])=>{this.set(e,t)}))}addAction(e){return this.actions.push(e),this}build(){const e=(...t)=>this.bind(t,e),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,z.pascalCase)(r)]=t(r)})),e}toObject(){return[...this.entries()].reduce(((e,[t,r])=>({...e,[t]:r})),{})}getMergedKey(t,r){let s=this.get(t)||r;if(s)return this.decoratorType===e.DecoratorTypes.CLASS&&(s={...s,...r||{}}),{...r||{},...s}}bind(e,t){this.entity=r.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 Ir=new Map;function jr(e,t){Ir.set(e,t)}function Hr(e){return Ir.get(e)}function qr(t){return t.map((t=>function(t){return(0,e.isObject)(t)&&!("toJSON"in t)}(t)?mr().enum(Object.values(t)):t))}class Gr extends kr{methods=["contentType","description","examples","type","status","of","ofInteger","oneOf","allOf","anyOf","nested","header","headers","schema","title","groups","allowedGroups","location"];constructor({status:e,model:t}){super(),this.model(t),this.status(e)}type(e){return this.model(e)}model(e){return e&&this.set("model",e),this}status(e){return this.set("status",e),e&&be(e)&&!this.get("description")&&(this.set("description",be(e)),this.get("model")||this.model(Hr(+e))),this}headers(e){return this.set("headers",{...this.get("headers")||{},...I(e)}),this}header(e,t){return this.headers({[e]:t})}location(e,t={}){return this.headers({Location:{...t,value:e}}),this}groups(...t){return 2===t.length&&(0,e.isArray)(t[1])?(this.set("groupsName",t[0]),this.set("groups",t[1])):this.set("groups",t),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(qr(e))})),this}of(...t){const r=this.get("model");return this.checkPrimitive(r),this.addAction((()=>{const s=this.get("schema");(0,e.isCollection)(r)?s?.itemSchema({type:t[0]}):s?.nestedGenerics.push(qr(t))})),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(t){return this.set("examples",(0,e.isString)(t)?[t]:t),this}title(e){return this.schema({title:e})}checkPrimitive(t){if((0,e.isPrimitiveOrPrimitiveClass)(t))throw new Error("Returns.Of cannot be used with the following primitive classes: String, Number, Boolean")}checkCollection(t){if((0,e.isCollection)(t))throw new Error("Returns.Nested cannot be used with the following classes: Map, Set, Array, String, Number, Boolean")}getContentType(){const t=this.get("model");let r=this.get("contentType");return!t||(0,e.isPlainObject)(t)||(0,e.isPrimitiveOrPrimitiveClass)(t)||(r=r||"application/json"),r}getStatus(){return this.get("status")||"default"}onInit(t,s){switch((0,e.decoratorTypeOf)(t)){case e.DecoratorTypes.METHOD:this.entity=r.from(...t),this.entity.operation&&this.map();break;case e.DecoratorTypes.CLASS:this.decoratorType=e.DecoratorTypes.CLASS,(0,e.decorateMethodsOf)(t[0],s)}}map(){const t=this.get("model"),{entity:r,decoratorType:s}=this,n=this.entity.operation,i=this.getStatus(),o=n.ensureResponseOf(i),a=this.getContentType();let{description:c=o.get("description")}=this.toObject();c&&(c=s===e.DecoratorTypes.CLASS&&o.get("description")||c,o.description(c));const p=this.getMergedKey("headers",o.get("headers"));return p&&o.headers(p),this.mapMedia(o),(L(this.get("status"))||"default"===i)&&t&&(r.type=t),a&&n.addProduce(a),this.runActions()}mapMedia(t){const r=this.getContentType(),s=this.get("model"),n=t.getMedia(r||"*/*"),i=n.get("schema")||new A({type:s}),o=this.get("groups"),a=this.get("groupsName"),c=this.get("allowedGroups"),p=this.entity.operation;if(s&&((0,e.isArray)(s)?i.oneOf(s.map((e=>({type:e})))):i.type(s)),this.set("schema",i),n.schema(i),n.groups=o,n.groupsName=a,c){n.allowedGroups=c;const e=new _;e.in("query").name("includes"),e.schema(A.from({type:"array",items:{type:"string",enum:[...c]}})),p.addParameter(-1,e)}const u=this.get("examples");return u&&n.examples(u),n}manyOf(t,r){const s=this.get("model");return this.addAction((()=>{const n=this.get("schema");(0,e.isCollection)(s)?(n.type(s||Object),n.itemSchema().set(t,r)):n.set(t,r)})),this}}function Ur(e,t){return new Gr({status:e,model:t}).build()}function Br(e){return Ur().ContentType(e)}function Kr(t=!0){return We(((r,s)=>{switch((0,e.decoratorTypeOf)(s)){case e.DecoratorTypes.METHOD:r.operation.deprecated(t);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],Kr(t));break;case e.DecoratorTypes.PARAM:r.parameter.set("deprecated",t);break;case e.DecoratorTypes.PROP:r.schema.set("deprecated",t);break;default:throw new e.UnsupportedDecoratorType(Kr,s)}}))}function Jr(e,t){return void 0!==t&&(e={[e]:t}),Ur().Headers(e)}function Fr(t){const s=new _,n={},i=(o,a,c)=>{const p=r.from(o,a,c);switch(p.decoratorType){case e.DecoratorTypes.PARAM:p.parameter.in(t);break;case e.DecoratorTypes.METHOD:s.in(t),p.operation.addParameter(-1,s),s.schema(A.from(n));break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(o,i);break;default:throw new e.UnsupportedDecoratorType(Fr,[o,a,c])}};return i.Type=e=>(n.type=e,i),i.Name=e=>(s.name(e),i),i.Description=e=>(s.description(e),i),i.Required=(e=!0)=>(s.required(e),i),i.Pattern=e=>i.Schema({pattern:e.toString()}),i.Schema=e=>(Object.assign(n,e),i),i}function Wr(t){return(...r)=>{const[s,n,i]=r,o=e.Metadata.getParamTypes(s,n)[i]===Array,a=[t="object"==typeof t?void 0:t,!o&&"0"].filter(Boolean).join(".");(0,e.useDecorators)(Fr($.FILES),zt(a),(0,e.useMethodDecorators)(Ur(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"),Lr("multipart/form-data")))(...r)}}function Vr(e,t){return Ur().Location(e,t)}function Xr(t){return We(((r,s)=>{if(r.decoratorType!==e.DecoratorTypes.METHOD)throw new e.UnsupportedDecoratorType(Xr,s);r.operation.operationId(t)}))}function zr(t,r="/"){return We(((s,n)=>{if(s.decoratorType!==e.DecoratorTypes.METHOD)throw new e.UnsupportedDecoratorType(zr,n);s.operation.addOperationPath(t.toUpperCase(),r)}))}function Qr(){return Ut("partial")}function Yr(t){return We(((r,s)=>{if(r.decoratorType!==e.DecoratorTypes.CLASS)throw new e.UnsupportedDecoratorType(Yr,s);r.path=t}))}function Zr(...t){const{status:r,url:s,meta:n}=t.reduce(((t,r)=>(0,e.isNumber)(r)?(t.status=r,t):(0,e.isString)(r)?(t.url=r,t):(t.meta=r,t)),{status:302,url:"",meta:{}});return(0,e.useDecorators)(Ur(r).Location(s,n),We((e=>{e.operation?.setRedirection(r)})))}function es(e){let t,r;const s=e.filter((e=>"string"==typeof e&&$e.includes(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 kr{methods=["name","description","summary","method","id","use","useAfter","useBefore"];beforeInit(){const e=this.get("path"),t=we[this.get("method")]||we.CUSTOM;e&&this.entity.operation.addOperationPath(t,e)}onMapKey(e,t){switch(e){case"name":case"id":return void this.entity.operation.operationId(t);case"summary":return void this.entity.operation.summary(t);case"description":return void this.entity.operation.description(t);case"use":return void this.entity.use(t);case"useAfter":return void this.entity.after(t);case"useBefore":return void this.entity.before(t)}return super.onMapKey(e,t)}}function rs(...e){const t=es(e);return new ts(t).build()}function ss(e="/",...t){return rs(...[we.ALL,e].concat(t))}function ns(e="/",...t){return rs(...[we.GET,e].concat(t))}function is(e="/",...t){return rs(...[we.POST,e].concat(t))}function os(e="/",...t){return rs(...[we.PUT,e].concat(t))}function as(e="/",...t){return rs(...[we.DELETE,e].concat(t))}function cs(e="/",...t){return rs(...[we.HEAD,e].concat(t))}function ps(e="/",...t){return rs(...[we.PATCH,e].concat(t))}function us(e="/",...t){return rs(...[we.OPTIONS,e].concat(t))}function hs(t,...r){return We(((s,n)=>{switch(s.decoratorType){case e.DecoratorTypes.METHOD:s.operation.addSecurityScopes(t,r);break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(n[0],hs(t,...r));break;default:throw new e.UnsupportedDecoratorType(hs,n)}}))}function ls(e,t){return Ur(e,t)}function ms(t){return We(((r,s)=>{if(r.decoratorType!==e.DecoratorTypes.METHOD)throw new e.UnsupportedDecoratorType(ms,s);r.operation.summary(t)}))}function ds(...t){return We(((r,s)=>{switch(r.decoratorType){case e.DecoratorTypes.METHOD:r.operation.addTags(function(e){return e.map((e=>"string"==typeof e?{name:e}:e))}(t));break;case e.DecoratorTypes.CLASS:(0,e.decorateMethodsOf)(s[0],ds(...t));break;default:throw new e.UnsupportedDecoratorType(ds,s)}}))}function fs(t,r){return(0,e.StoreSet)("view",{path:t,options:r})}function ys(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 gs{token;endpoint;operationPath;basePath;paramsTypes;constructor(e){Object.assign(this,e),this.paramsTypes=this.endpoint.getParamTypes()}get url(){return this.fullPath}get path(){return this.operationPath?.path}get fullPath(){return ys(this.basePath,this.path)}get method(){return this.operationPath?.method||"USE"}get name(){return`${this.endpoint.targetName}.${this.methodClassName}()`}get className(){return this.endpoint.targetName}get methodClassName(){return this.propertyKey}get parameters(){return this.endpoint.parameters}get propertyKey(){return String(this.endpoint.propertyKey)}get propertyName(){return this.endpoint.propertyName}get store(){return this.endpoint.store}get operation(){return this.endpoint.operation}get operationId(){return this.operation.get("operationId")||this.endpoint.propertyKey}has(e){return this.paramsTypes[e]}}const Os=(0,e.mergeReducerBuilder)(((e,t)=>e.type&&e.type===t.type||e.$ref&&e.$ref===t.$ref)),Ss=(0,e.mergeReducerBuilder)(((e,t)=>e.in===t.in&&e.name===t.name)),bs=(0,e.mergeReducerBuilder)(((e,t)=>!!Object.keys(t).find((t=>!!e[t])))),Rs=(0,e.mergeReducerBuilder)(((e,t)=>e.name===t.name)),Ts={security:bs,parameters:Ss,oneOf:Os,anyOf:Os,allOf:Os,tags:Rs};function As(t,r){return(0,e.deepMerge)(t,r,{reducers:Ts,cleanUndefinedProps:!0})}function Es(e=""){const t=new Map;return(r,s,n="")=>{const i=((t,r)=>{const s=(e||"%c.%m").replace(/%c/,t).replace(/%m/,r);return""===e?(0,z.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,z.camelCase)(`${i} By ${a}`)}const c=t.get(o)+1;return t.set(o,c),`${i}_${c}`}}const vs=new Map;function xs(t,r={}){if(r={specType:X.OPENAPI,...r,tags:[],paths:{},schemas:{},operationIdFormatter:r.operationIdFormatter||Es(r.operationIdPattern),root:!1},(0,e.isArray)(t)){let e={};return r={...r,append(t){e=As(e,t)}},t.forEach((({token:e,...t})=>{const s=xs(e,{...r,...t});r.append(s)})),e}return function(e,t,r){vs.has(e)||vs.set(e,new Map);const s=vs.get(e),n=JSON.stringify(t);return s.has(n)||s.set(n,r()),s.get(n)}(t,r,(()=>function(t,r){const s=K(t),{rootPath:n="/"}=r,i=X.OPENAPI,o={paths:h("paths",t,r={...r,rootPath:n,defaultTags:[(0,e.cleanObject)({name:s.schema.getName(),description:s.schema.get("description")})],specType:i})};return o.tags=(0,e.uniqBy)(r.tags,"name"),Object.keys(r.schemas).length&&(o.components={schemas:r.schemas}),o}(t,r)))}function Cs(e){return e.startsWith("3.")?X.OPENAPI:X.SWAGGER}function Ps(e){return"openapi"in e?X.OPENAPI:X.SWAGGER}function $s(t){const{title:r,description:s,version:n,termsOfService:i,contact:o,license:a}=t;return(0,e.cleanObject)({version:n,title:r,description:s,termsOfService:i,contact:o,license:a})}function ws(t,{version:r,specVersion:s,acceptMimes:n=["application/json"]}){const{paths:i,security:o,tags:a,host:c,basePath:p,schemes:u,consumes:h=[],produces:l=["application/json"],definitions:m,parameters:d,responses:f,securityDefinitions:y,externalDocs:g}=t;return{swagger:s,consumes:(0,e.uniq)([...n,...h]),produces:(0,e.uniq)([...l]),info:$s((0,e.getValue)(t,"info",{})),paths:i,host:c,basePath:p,schemes:u,definitions:m,parameters:d,responses:f,security:o,securityDefinitions:y,tags:a,externalDocs:g}}function Ms(t,{specVersion:r}){const{servers:s,paths:n,components:i,security:o,tags:a,externalDocs:c}=t;return{openapi:r,info:$s((0,e.getValue)(t,"info",{})),servers:s,paths:n,components:i,security:o,tags:a,externalDocs:c}}function _s(t,{fileSpec:r,acceptMimes:s,specVersion:n,version:i}){const o={specVersion:n=n||(0,e.getValue)(t,"openapi",(0,e.getValue)(t,"swagger","2.0")),acceptMimes:s};switch(Cs(n)){case X.OPENAPI:t=Ms(t,o),r=r?Ms(r,o):r;break;default:case X.SWAGGER:t=ws(t,o),r=r?ws(r,o):r}return t=As(t,r),(0,e.setValue)(t,"info.title",(0,e.getValue)(t,"info.title","Api documentation")),(0,e.setValue)(t,"info.version",(0,e.getValue)(t,"info.version",i)),t}const Ns=["get","put","post","delete","options","head","patch","trace"],Ds=["format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","minLength","maxLength","multipleOf","minItems","maxItems","uniqueItems","minProperties","maxProperties","additionalProperties","pattern","enum","default"],Ls=["type","items"],ks=/^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/,Is={APPLICATION_X_WWW_URLENCODED:"application/x-www-form-urlencoded",MULTIPART_FORM_DATA:"multipart/form-data"};function js(e){if(Array.isArray(e))e.forEach(js);else if("object"==typeof e)for(let t in e)"$ref"===t?e.$ref=e.$ref.replace("#/components/schemas/","#/definitions/").replace("#/components/","#/x-components/"):js(e[t])}function Hs(e){return new RegExp(ks,"i").test(e)}function qs(e){const t=Object.keys(Is).map((e=>Is[e]));return Object.keys(e).filter((e=>t.indexOf(e)>-1||Hs(e)))}function Gs(e){function t(e){const{scheme:t,type:r,name:s,bearerFormat:n,flows:i,...o}=e;switch(r){case"http":if("basic"===t)return{...o,type:t};if("bearer"===t)return{...o,type:"apiKey",name:"Authorization",in:"header"};break;case"oauth2":const e=Object.keys(i)[0],s=i[e];let n=e;return"clientCredentials"===n?n="application":"authorizationCode"===n&&(n="accessCode"),{type:r,flow:n,authorizationUrl:s.authorizationUrl,tokenUrl:s.tokenUrl,scopes:s.scopes}}}return Object.entries(e).reduce(((e,[r,s])=>({...e,[r]:t(s)})),{})}function Us(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 Bs{spec;constructor(e){this.spec=JSON.parse(JSON.stringify(e))}convertInfos(){const e=this.spec.servers&&this.spec.servers[0];return e?Us(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 t={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,js(this.spec)),delete this.spec.servers,delete this.spec.openapi,delete this.spec["x-components"],(0,e.cleanObject)({...t,...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(Ns.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=qs(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=qs(t)[0],delete i.content,[Is.APPLICATION_X_WWW_URLENCODED,Is.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,Ds),this.copySchemaProperties(t,Ls),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&&Hs(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=Gs(this.spec.components.securitySchemes),delete this.spec.components.securitySchemes)}}function Ks(e){return new Bs(e).convert()}async function Js({tokens:t,...r}){const{version:s="1.0.0",acceptMimes:n,specPath:i,specVersion:o}=r,a=_s((0,e.getValue)(r,"spec",{}),{fileSpec:{},version:s,specVersion:o,acceptMimes:n}),c=Ps(a),p=As(a,xs(t,r));return c===X.SWAGGER?Ks(p):p}const Fs="$cache:schemes";function Ws(e,t={}){const r=K(e),s=t.specType||X.JSON;return t={endpoint:!0,groups:[],inlineEnums:s===X.JSON,...t,specType:s,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(Fs)||new Map,s=function(e){return JSON.stringify(e)}(t);if(!r.has(s)){const n=h("schema",e.schema,t);Object.keys(t.schemas).length&&(n.definitions=t.schemas),r.set(s,n)}return e.store.set(Fs,r),r.get(s)}(r,t)}function Vs(e,t={}){const r=e.isStore?e:K(e),s=ys(t.basePath,r.path);let n=[];return t.withChildren&&(n=r.get("childrenControllers",[]).reduce(((e,r)=>e.concat(Vs(r,{...t,basePath:s}))),n)),[..._e(e).values()].reduce(((t,r)=>{const{operation:n}=r;return n&&n.operationPaths.forEach((n=>{t.push(new gs({basePath:s,token:e,endpoint:r,operationPath:n}))})),t}),n)}function Xs(e){const t=e.isStore?e:K(e);if(!t.$properties){const e=se(t);t.$properties=new Map,e.forEach((e=>{e.children.forEach((e=>{t.$properties.has(e.propertyKey)||t.$properties.set(e.propertyKey,e)}))}))}return t.$properties}function zs(e,t={}){const r=Xs(e),s=new Map;return r.forEach(((e,r)=>{!t.withIgnoredProps&&ce(e.itemSchema,t)||s.set(r,e)})),s}})(),i})()));
|
|
3
3
|
//# sourceMappingURL=schema.umd.min.js.map
|