diff --git a/bundles/@yarnpkg/plugin-catalogs.js b/bundles/@yarnpkg/plugin-catalogs.js index d5ce6b4..18b062d 100644 --- a/bundles/@yarnpkg/plugin-catalogs.js +++ b/bundles/@yarnpkg/plugin-catalogs.js @@ -3,17 +3,17 @@ module.exports = { name: "@yarnpkg/plugin-catalogs", factory: function (require) { -"use strict";var plugin=(()=>{var Qe=Object.create;var St=Object.defineProperty;var Ze=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var Je=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty;var V=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var lt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),er=(e,r)=>{for(var t in r)St(e,t,{get:r[t],enumerable:!0})},oe=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of ze(r))!tr.call(e,n)&&n!==t&&St(e,n,{get:()=>r[n],enumerable:!(o=Ze(r,n))||o.enumerable});return e};var vt=(e,r,t)=>(t=e!=null?Qe(Je(e)):{},oe(r||!e||!e.__esModule?St(t,"default",{value:e,enumerable:!0}):t,e)),rr=e=>oe(St({},"__esModule",{value:!0}),e);var yt=lt((ho,Re)=>{"use strict";var Z="\\\\/",he=`[^${Z}]`,et="\\.",yr="\\+",Ar="\\?",Lt="\\/",Rr="(?=.)",me="[^/]",Vt=`(?:${Lt}|$)`,ye=`(?:^|${Lt})`,Ut=`${et}{1,2}${Vt}`,br=`(?!${et})`,Cr=`(?!${ye}${Ut})`,_r=`(?!${et}{0,1}${Vt})`,Er=`(?!${Ut})`,xr=`[^.${Lt}]`,Or=`${me}*?`,Sr="/",Ae={DOT_LITERAL:et,PLUS_LITERAL:yr,QMARK_LITERAL:Ar,SLASH_LITERAL:Lt,ONE_CHAR:Rr,QMARK:me,END_ANCHOR:Vt,DOTS_SLASH:Ut,NO_DOT:br,NO_DOTS:Cr,NO_DOT_SLASH:_r,NO_DOTS_SLASH:Er,QMARK_NO_DOT:xr,STAR:Or,START_ANCHOR:ye,SEP:Sr},vr={...Ae,SLASH_LITERAL:`[${Z}]`,QMARK:he,STAR:`${he}*?`,DOTS_SLASH:`${et}{1,2}(?:[${Z}]|$)`,NO_DOT:`(?!${et})`,NO_DOTS:`(?!(?:^|[${Z}])${et}{1,2}(?:[${Z}]|$))`,NO_DOT_SLASH:`(?!${et}{0,1}(?:[${Z}]|$))`,NO_DOTS_SLASH:`(?!${et}{1,2}(?:[${Z}]|$))`,QMARK_NO_DOT:`[^.${Z}]`,START_ANCHOR:`(?:^|[${Z}])`,END_ANCHOR:`(?:[${Z}]|$)`,SEP:"\\"},Tr={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"};Re.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Tr,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){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?vr:Ae}}});var At=lt(B=>{"use strict";var{REGEX_BACKSLASH:$r,REGEX_REMOVE_BACKSLASH:wr,REGEX_SPECIAL_CHARS:Lr,REGEX_SPECIAL_CHARS_GLOBAL:kr}=yt();B.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);B.hasRegexChars=e=>Lr.test(e);B.isRegexChar=e=>e.length===1&&B.hasRegexChars(e);B.escapeRegex=e=>e.replace(kr,"\\$1");B.toPosixSlashes=e=>e.replace($r,"/");B.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":!1};B.removeBackslashes=e=>e.replace(wr,r=>r==="\\"?"":r);B.escapeLast=(e,r,t)=>{let o=e.lastIndexOf(r,t);return o===-1?e:e[o-1]==="\\"?B.escapeLast(e,r,o-1):`${e.slice(0,o)}\\${e.slice(o)}`};B.removePrefix=(e,r={})=>{let t=e;return t.startsWith("./")&&(t=t.slice(2),r.prefix="./"),t};B.wrapOutput=(e,r={},t={})=>{let o=t.contains?"":"^",n=t.contains?"":"$",a=`${o}(?:${e})${n}`;return r.negated===!0&&(a=`(?:^(?!${a}).*$)`),a};B.basename=(e,{windows:r}={})=>{let t=e.split(r?/[\\/]/:"/"),o=t[t.length-1];return o===""?t[t.length-2]:o}});var ve=lt((yo,Se)=>{"use strict";var be=At(),{CHAR_ASTERISK:Kt,CHAR_AT:Ir,CHAR_BACKWARD_SLASH:Rt,CHAR_COMMA:Nr,CHAR_DOT:Yt,CHAR_EXCLAMATION_MARK:Xt,CHAR_FORWARD_SLASH:Oe,CHAR_LEFT_CURLY_BRACE:qt,CHAR_LEFT_PARENTHESES:Qt,CHAR_LEFT_SQUARE_BRACKET:Pr,CHAR_PLUS:Hr,CHAR_QUESTION_MARK:Ce,CHAR_RIGHT_CURLY_BRACE:Mr,CHAR_RIGHT_PARENTHESES:_e,CHAR_RIGHT_SQUARE_BRACKET:Gr}=yt(),Ee=e=>e===Oe||e===Rt,xe=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},Dr=(e,r)=>{let t=r||{},o=e.length-1,n=t.parts===!0||t.scanToEnd===!0,a=[],s=[],f=[],g=e,A=-1,R=0,H=0,w=!1,W=!1,b=!1,I=!1,at=!1,q=!1,_=!1,Q=!1,it=!1,M=!1,N=0,F,d,m={value:"",depth:0,isGlob:!1},l=()=>A>=o,D=()=>g.charCodeAt(A+1),L=()=>(F=d,g.charCodeAt(++A));for(;A0&&(i=g.slice(0,R),g=g.slice(R),H-=R),T&&b===!0&&H>0?(T=g.slice(0,H),c=g.slice(H)):b===!0?(T="",c=g):T=g,T&&T!==""&&T!=="/"&&T!==g&&Ee(T.charCodeAt(T.length-1))&&(T=T.slice(0,-1)),t.unescape===!0&&(c&&(c=be.removeBackslashes(c)),T&&_===!0&&(T=be.removeBackslashes(T)));let U={prefix:i,input:e,start:R,base:T,glob:c,isBrace:w,isBracket:W,isGlob:b,isExtglob:I,isGlobstar:at,negated:Q,negatedExtglob:it};if(t.tokens===!0&&(U.maxDepth=0,Ee(d)||s.push(m),U.tokens=s),t.parts===!0||t.tokens===!0){let C;for(let O=0;O{"use strict";var kt=yt(),z=At(),{MAX_LENGTH:It,POSIX_REGEX_SOURCE:jr,REGEX_NON_SPECIAL_CHARS:Br,REGEX_SPECIAL_CHARS_BACKREF:Wr,REPLACEMENTS:Te}=kt,Fr=(e,r)=>{if(typeof r.expandRange=="function")return r.expandRange(...e,r);e.sort();let t=`[${e.join("-")}]`;try{new RegExp(t)}catch{return e.map(n=>z.escapeRegex(n)).join("..")}return t},ft=(e,r)=>`Missing ${e}: "${r}" - use "\\\\${r}" to match literal characters`,Zt=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Te[e]||e;let t={...r},o=typeof t.maxLength=="number"?Math.min(It,t.maxLength):It,n=e.length;if(n>o)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${o}`);let a={type:"bos",value:"",output:t.prepend||""},s=[a],f=t.capture?"":"?:",g=kt.globChars(t.windows),A=kt.extglobChars(g),{DOT_LITERAL:R,PLUS_LITERAL:H,SLASH_LITERAL:w,ONE_CHAR:W,DOTS_SLASH:b,NO_DOT:I,NO_DOT_SLASH:at,NO_DOTS_SLASH:q,QMARK:_,QMARK_NO_DOT:Q,STAR:it,START_ANCHOR:M}=g,N=p=>`(${f}(?:(?!${M}${p.dot?b:R}).)*?)`,F=t.dot?"":I,d=t.dot?_:Q,m=t.bash===!0?N(t):it;t.capture&&(m=`(${m})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let l={input:e,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:s};e=z.removePrefix(e,l),n=e.length;let D=[],L=[],T=[],i=a,c,U=()=>l.index===n-1,C=l.peek=(p=1)=>e[l.index+p],O=l.advance=()=>e[++l.index]||"",tt=()=>e.slice(l.index+1),K=(p="",E=0)=>{l.consumed+=p,l.index+=E},st=p=>{l.output+=p.output!=null?p.output:p.value,K(p.value)},Xe=()=>{let p=1;for(;C()==="!"&&(C(2)!=="("||C(3)==="?");)O(),l.start++,p++;return p%2===0?!1:(l.negated=!0,l.start++,!0)},Et=p=>{l[p]++,T.push(p)},ct=p=>{l[p]--,T.pop()},y=p=>{if(i.type==="globstar"){let E=l.braces>0&&(p.type==="comma"||p.type==="brace"),u=p.extglob===!0||D.length&&(p.type==="pipe"||p.type==="paren");p.type!=="slash"&&p.type!=="paren"&&!E&&!u&&(l.output=l.output.slice(0,-i.output.length),i.type="star",i.value="*",i.output=m,l.output+=i.output)}if(D.length&&p.type!=="paren"&&(D[D.length-1].inner+=p.value),(p.value||p.output)&&st(p),i&&i.type==="text"&&p.type==="text"){i.output=(i.output||i.value)+p.value,i.value+=p.value;return}p.prev=i,s.push(p),i=p},xt=(p,E)=>{let u={...A[E],conditions:1,inner:""};u.prev=i,u.parens=l.parens,u.output=l.output;let h=(t.capture?"(":"")+u.open;Et("parens"),y({type:p,value:E,output:l.output?"":W}),y({type:"paren",extglob:!0,value:O(),output:h}),D.push(u)},qe=p=>{let E=p.close+(t.capture?")":""),u;if(p.type==="negate"){let h=m;if(p.inner&&p.inner.length>1&&p.inner.includes("/")&&(h=N(t)),(h!==m||U()||/^\)+$/.test(tt()))&&(E=p.close=`)$))${h}`),p.inner.includes("*")&&(u=tt())&&/^\.[^\\/.]+$/.test(u)){let S=Zt(u,{...r,fastpaths:!1}).output;E=p.close=`)${S})${h})`}p.prev.type==="bos"&&(l.negatedExtglob=!0)}y({type:"paren",extglob:!0,value:c,output:E}),ct("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let p=!1,E=e.replace(Wr,(u,h,S,G,k,Dt)=>G==="\\"?(p=!0,u):G==="?"?h?h+G+(k?_.repeat(k.length):""):Dt===0?d+(k?_.repeat(k.length):""):_.repeat(S.length):G==="."?R.repeat(S.length):G==="*"?h?h+G+(k?m:""):m:h?u:`\\${u}`);return p===!0&&(t.unescape===!0?E=E.replace(/\\/g,""):E=E.replace(/\\+/g,u=>u.length%2===0?"\\\\":u?"\\":"")),E===e&&t.contains===!0?(l.output=e,l):(l.output=z.wrapOutput(E,l,r),l)}for(;!U();){if(c=O(),c==="\0")continue;if(c==="\\"){let u=C();if(u==="/"&&t.bash!==!0||u==="."||u===";")continue;if(!u){c+="\\",y({type:"text",value:c});continue}let h=/^\\+/.exec(tt()),S=0;if(h&&h[0].length>2&&(S=h[0].length,l.index+=S,S%2!==0&&(c+="\\")),t.unescape===!0?c=O():c+=O(),l.brackets===0){y({type:"text",value:c});continue}}if(l.brackets>0&&(c!=="]"||i.value==="["||i.value==="[^")){if(t.posix!==!1&&c===":"){let u=i.value.slice(1);if(u.includes("[")&&(i.posix=!0,u.includes(":"))){let h=i.value.lastIndexOf("["),S=i.value.slice(0,h),G=i.value.slice(h+2),k=jr[G];if(k){i.value=S+k,l.backtrack=!0,O(),!a.output&&s.indexOf(i)===1&&(a.output=W);continue}}}(c==="["&&C()!==":"||c==="-"&&C()==="]")&&(c=`\\${c}`),c==="]"&&(i.value==="["||i.value==="[^")&&(c=`\\${c}`),t.posix===!0&&c==="!"&&i.value==="["&&(c="^"),i.value+=c,st({value:c});continue}if(l.quotes===1&&c!=='"'){c=z.escapeRegex(c),i.value+=c,st({value:c});continue}if(c==='"'){l.quotes=l.quotes===1?0:1,t.keepQuotes===!0&&y({type:"text",value:c});continue}if(c==="("){Et("parens"),y({type:"paren",value:c});continue}if(c===")"){if(l.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ft("opening","("));let u=D[D.length-1];if(u&&l.parens===u.parens+1){qe(D.pop());continue}y({type:"paren",value:c,output:l.parens?")":"\\)"}),ct("parens");continue}if(c==="["){if(t.nobracket===!0||!tt().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ft("closing","]"));c=`\\${c}`}else Et("brackets");y({type:"bracket",value:c});continue}if(c==="]"){if(t.nobracket===!0||i&&i.type==="bracket"&&i.value.length===1){y({type:"text",value:c,output:`\\${c}`});continue}if(l.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ft("opening","["));y({type:"text",value:c,output:`\\${c}`});continue}ct("brackets");let u=i.value.slice(1);if(i.posix!==!0&&u[0]==="^"&&!u.includes("/")&&(c=`/${c}`),i.value+=c,st({value:c}),t.literalBrackets===!1||z.hasRegexChars(u))continue;let h=z.escapeRegex(i.value);if(l.output=l.output.slice(0,-i.value.length),t.literalBrackets===!0){l.output+=h,i.value=h;continue}i.value=`(${f}${h}|${i.value})`,l.output+=i.value;continue}if(c==="{"&&t.nobrace!==!0){Et("braces");let u={type:"brace",value:c,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};L.push(u),y(u);continue}if(c==="}"){let u=L[L.length-1];if(t.nobrace===!0||!u){y({type:"text",value:c,output:c});continue}let h=")";if(u.dots===!0){let S=s.slice(),G=[];for(let k=S.length-1;k>=0&&(s.pop(),S[k].type!=="brace");k--)S[k].type!=="dots"&&G.unshift(S[k].value);h=Fr(G,t),l.backtrack=!0}if(u.comma!==!0&&u.dots!==!0){let S=l.output.slice(0,u.outputIndex),G=l.tokens.slice(u.tokensIndex);u.value=u.output="\\{",c=h="\\}",l.output=S;for(let k of G)l.output+=k.output||k.value}y({type:"brace",value:c,output:h}),ct("braces"),L.pop();continue}if(c==="|"){D.length>0&&D[D.length-1].conditions++,y({type:"text",value:c});continue}if(c===","){let u=c,h=L[L.length-1];h&&T[T.length-1]==="braces"&&(h.comma=!0,u="|"),y({type:"comma",value:c,output:u});continue}if(c==="/"){if(i.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",s.pop(),i=a;continue}y({type:"slash",value:c,output:w});continue}if(c==="."){if(l.braces>0&&i.type==="dot"){i.value==="."&&(i.output=R);let u=L[L.length-1];i.type="dots",i.output+=c,i.value+=c,u.dots=!0;continue}if(l.braces+l.parens===0&&i.type!=="bos"&&i.type!=="slash"){y({type:"text",value:c,output:R});continue}y({type:"dot",value:c,output:R});continue}if(c==="?"){if(!(i&&i.value==="(")&&t.noextglob!==!0&&C()==="("&&C(2)!=="?"){xt("qmark",c);continue}if(i&&i.type==="paren"){let h=C(),S=c;(i.value==="("&&!/[!=<:]/.test(h)||h==="<"&&!/<([!=]|\w+>)/.test(tt()))&&(S=`\\${c}`),y({type:"text",value:c,output:S});continue}if(t.dot!==!0&&(i.type==="slash"||i.type==="bos")){y({type:"qmark",value:c,output:Q});continue}y({type:"qmark",value:c,output:_});continue}if(c==="!"){if(t.noextglob!==!0&&C()==="("&&(C(2)!=="?"||!/[!=<:]/.test(C(3)))){xt("negate",c);continue}if(t.nonegate!==!0&&l.index===0){Xe();continue}}if(c==="+"){if(t.noextglob!==!0&&C()==="("&&C(2)!=="?"){xt("plus",c);continue}if(i&&i.value==="("||t.regex===!1){y({type:"plus",value:c,output:H});continue}if(i&&(i.type==="bracket"||i.type==="paren"||i.type==="brace")||l.parens>0){y({type:"plus",value:c});continue}y({type:"plus",value:H});continue}if(c==="@"){if(t.noextglob!==!0&&C()==="("&&C(2)!=="?"){y({type:"at",extglob:!0,value:c,output:""});continue}y({type:"text",value:c});continue}if(c!=="*"){(c==="$"||c==="^")&&(c=`\\${c}`);let u=Br.exec(tt());u&&(c+=u[0],l.index+=u[0].length),y({type:"text",value:c});continue}if(i&&(i.type==="globstar"||i.star===!0)){i.type="star",i.star=!0,i.value+=c,i.output=m,l.backtrack=!0,l.globstar=!0,K(c);continue}let p=tt();if(t.noextglob!==!0&&/^\([^?]/.test(p)){xt("star",c);continue}if(i.type==="star"){if(t.noglobstar===!0){K(c);continue}let u=i.prev,h=u.prev,S=u.type==="slash"||u.type==="bos",G=h&&(h.type==="star"||h.type==="globstar");if(t.bash===!0&&(!S||p[0]&&p[0]!=="/")){y({type:"star",value:c,output:""});continue}let k=l.braces>0&&(u.type==="comma"||u.type==="brace"),Dt=D.length&&(u.type==="pipe"||u.type==="paren");if(!S&&u.type!=="paren"&&!k&&!Dt){y({type:"star",value:c,output:""});continue}for(;p.slice(0,3)==="/**";){let Ot=e[l.index+4];if(Ot&&Ot!=="/")break;p=p.slice(3),K("/**",3)}if(u.type==="bos"&&U()){i.type="globstar",i.value+=c,i.output=N(t),l.output=i.output,l.globstar=!0,K(c);continue}if(u.type==="slash"&&u.prev.type!=="bos"&&!G&&U()){l.output=l.output.slice(0,-(u.output+i.output).length),u.output=`(?:${u.output}`,i.type="globstar",i.output=N(t)+(t.strictSlashes?")":"|$)"),i.value+=c,l.globstar=!0,l.output+=u.output+i.output,K(c);continue}if(u.type==="slash"&&u.prev.type!=="bos"&&p[0]==="/"){let Ot=p[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(u.output+i.output).length),u.output=`(?:${u.output}`,i.type="globstar",i.output=`${N(t)}${w}|${w}${Ot})`,i.value+=c,l.output+=u.output+i.output,l.globstar=!0,K(c+O()),y({type:"slash",value:"/",output:""});continue}if(u.type==="bos"&&p[0]==="/"){i.type="globstar",i.value+=c,i.output=`(?:^|${w}|${N(t)}${w})`,l.output=i.output,l.globstar=!0,K(c+O()),y({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-i.output.length),i.type="globstar",i.output=N(t),i.value+=c,l.output+=i.output,l.globstar=!0,K(c);continue}let E={type:"star",value:c,output:m};if(t.bash===!0){E.output=".*?",(i.type==="bos"||i.type==="slash")&&(E.output=F+E.output),y(E);continue}if(i&&(i.type==="bracket"||i.type==="paren")&&t.regex===!0){E.output=c,y(E);continue}(l.index===l.start||i.type==="slash"||i.type==="dot")&&(i.type==="dot"?(l.output+=at,i.output+=at):t.dot===!0?(l.output+=q,i.output+=q):(l.output+=F,i.output+=F),C()!=="*"&&(l.output+=W,i.output+=W)),y(E)}for(;l.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ft("closing","]"));l.output=z.escapeLast(l.output,"["),ct("brackets")}for(;l.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ft("closing",")"));l.output=z.escapeLast(l.output,"("),ct("parens")}for(;l.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ft("closing","}"));l.output=z.escapeLast(l.output,"{"),ct("braces")}if(t.strictSlashes!==!0&&(i.type==="star"||i.type==="bracket")&&y({type:"maybe_slash",value:"",output:`${w}?`}),l.backtrack===!0){l.output="";for(let p of l.tokens)l.output+=p.output!=null?p.output:p.value,p.suffix&&(l.output+=p.suffix)}return l};Zt.fastpaths=(e,r)=>{let t={...r},o=typeof t.maxLength=="number"?Math.min(It,t.maxLength):It,n=e.length;if(n>o)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${o}`);e=Te[e]||e;let{DOT_LITERAL:a,SLASH_LITERAL:s,ONE_CHAR:f,DOTS_SLASH:g,NO_DOT:A,NO_DOTS:R,NO_DOTS_SLASH:H,STAR:w,START_ANCHOR:W}=kt.globChars(t.windows),b=t.dot?R:A,I=t.dot?H:A,at=t.capture?"":"?:",q={negated:!1,prefix:""},_=t.bash===!0?".*?":w;t.capture&&(_=`(${_})`);let Q=F=>F.noglobstar===!0?_:`(${at}(?:(?!${W}${F.dot?g:a}).)*?)`,it=F=>{switch(F){case"*":return`${b}${f}${_}`;case".*":return`${a}${f}${_}`;case"*.*":return`${b}${_}${a}${f}${_}`;case"*/*":return`${b}${_}${s}${f}${I}${_}`;case"**":return b+Q(t);case"**/*":return`(?:${b}${Q(t)}${s})?${I}${f}${_}`;case"**/*.*":return`(?:${b}${Q(t)}${s})?${I}${_}${a}${f}${_}`;case"**/.*":return`(?:${b}${Q(t)}${s})?${a}${f}${_}`;default:{let d=/^(.*?)\.(\w+)$/.exec(F);if(!d)return;let m=it(d[1]);return m?m+a+d[2]:void 0}}},M=z.removePrefix(e,q),N=it(M);return N&&t.strictSlashes!==!0&&(N+=`${s}?`),N};$e.exports=Zt});var Ie=lt((Ro,ke)=>{"use strict";var Vr=ve(),zt=we(),Le=At(),Ur=yt(),Kr=e=>e&&typeof e=="object"&&!Array.isArray(e),$=(e,r,t=!1)=>{if(Array.isArray(e)){let R=e.map(w=>$(w,r,t));return w=>{for(let W of R){let b=W(w);if(b)return b}return!1}}let o=Kr(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let n=r||{},a=n.windows,s=o?$.compileRe(e,r):$.makeRe(e,r,!1,!0),f=s.state;delete s.state;let g=()=>!1;if(n.ignore){let R={...r,ignore:null,onMatch:null,onResult:null};g=$(n.ignore,R,t)}let A=(R,H=!1)=>{let{isMatch:w,match:W,output:b}=$.test(R,s,r,{glob:e,posix:a}),I={glob:e,state:f,regex:s,posix:a,input:R,output:b,match:W,isMatch:w};return typeof n.onResult=="function"&&n.onResult(I),w===!1?(I.isMatch=!1,H?I:!1):g(R)?(typeof n.onIgnore=="function"&&n.onIgnore(I),I.isMatch=!1,H?I:!1):(typeof n.onMatch=="function"&&n.onMatch(I),H?I:!0)};return t&&(A.state=f),A};$.test=(e,r,t,{glob:o,posix:n}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let a=t||{},s=a.format||(n?Le.toPosixSlashes:null),f=e===o,g=f&&s?s(e):e;return f===!1&&(g=s?s(e):e,f=g===o),(f===!1||a.capture===!0)&&(a.matchBase===!0||a.basename===!0?f=$.matchBase(e,r,t,n):f=r.exec(g)),{isMatch:!!f,match:f,output:g}};$.matchBase=(e,r,t)=>(r instanceof RegExp?r:$.makeRe(r,t)).test(Le.basename(e));$.isMatch=(e,r,t)=>$(r,t)(e);$.parse=(e,r)=>Array.isArray(e)?e.map(t=>$.parse(t,r)):zt(e,{...r,fastpaths:!1});$.scan=(e,r)=>Vr(e,r);$.compileRe=(e,r,t=!1,o=!1)=>{if(t===!0)return e.output;let n=r||{},a=n.contains?"":"^",s=n.contains?"":"$",f=`${a}(?:${e.output})${s}`;e&&e.negated===!0&&(f=`^(?!${f}).*$`);let g=$.toRegex(f,r);return o===!0&&(g.state=e),g};$.makeRe=(e,r={},t=!1,o=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return r.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(n.output=zt.fastpaths(e,r)),n.output||(n=zt(e,r)),$.compileRe(n,r,t,o)};$.toRegex=(e,r)=>{try{let t=r||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(t){if(r&&r.debug===!0)throw t;return/$^/}};$.constants=Ur;ke.exports=$});var Me=lt((bo,He)=>{"use strict";var Ne=Ie(),Yr=At();function Pe(e,r,t=!1){return r&&(r.windows===null||r.windows===void 0)&&(r={...r,windows:Yr.isWindows()}),Ne(e,r,t)}Object.assign(Pe,Ne);He.exports=Pe});var ro={};er(ro,{default:()=>eo});var dt=V("@yarnpkg/core");var ne=(e=0)=>r=>`\x1B[${r+e}m`,se=(e=0)=>r=>`\x1B[${38+e};5;${r}m`,ae=(e=0)=>(r,t,o)=>`\x1B[${38+e};2;${r};${t};${o}m`,x={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},no=Object.keys(x.modifier),or=Object.keys(x.color),nr=Object.keys(x.bgColor),so=[...or,...nr];function sr(){let e=new Map;for(let[r,t]of Object.entries(x)){for(let[o,n]of Object.entries(t))x[o]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},t[o]=x[o],e.set(n[0],n[1]);Object.defineProperty(x,r,{value:t,enumerable:!1})}return Object.defineProperty(x,"codes",{value:e,enumerable:!1}),x.color.close="\x1B[39m",x.bgColor.close="\x1B[49m",x.color.ansi=ne(),x.color.ansi256=se(),x.color.ansi16m=ae(),x.bgColor.ansi=ne(10),x.bgColor.ansi256=se(10),x.bgColor.ansi16m=ae(10),Object.defineProperties(x,{rgbToAnsi256:{value(r,t,o){return r===t&&t===o?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(t/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(r){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(r.toString(16));if(!t)return[0,0,0];let[o]=t;o.length===3&&(o=[...o].map(a=>a+a).join(""));let n=Number.parseInt(o,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:r=>x.rgbToAnsi256(...x.hexToRgb(r)),enumerable:!1},ansi256ToAnsi:{value(r){if(r<8)return 30+r;if(r<16)return 90+(r-8);let t,o,n;if(r>=232)t=((r-232)*10+8)/255,o=t,n=t;else{r-=16;let f=r%36;t=Math.floor(r/36)/5,o=Math.floor(f/6)/5,n=f%6/5}let a=Math.max(t,o,n)*2;if(a===0)return 30;let s=30+(Math.round(n)<<2|Math.round(o)<<1|Math.round(t));return a===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(r,t,o)=>x.ansi256ToAnsi(x.rgbToAnsi256(r,t,o)),enumerable:!1},hexToAnsi:{value:r=>x.ansi256ToAnsi(x.hexToAnsi256(r)),enumerable:!1}}),x}var ar=sr(),X=ar;var $t=vt(V("process"),1),ce=vt(V("os"),1),jt=vt(V("tty"),1);function Y(e,r=globalThis.Deno?globalThis.Deno.args:$t.default.argv){let t=e.startsWith("-")?"":e.length===1?"-":"--",o=r.indexOf(t+e),n=r.indexOf("--");return o!==-1&&(n===-1||o=2,has16m:e>=3}}function lr(e,{streamIsTTY:r,sniffFlags:t=!0}={}){let o=ir();o!==void 0&&(Tt=o);let n=t?Tt:o;if(n===0)return 0;if(t){if(Y("color=16m")||Y("color=full")||Y("color=truecolor"))return 3;if(Y("color=256"))return 2}if("TF_BUILD"in v&&"AGENT_NAME"in v)return 1;if(e&&!r&&n===void 0)return 0;let a=n||0;if(v.TERM==="dumb")return a;if($t.default.platform==="win32"){let s=ce.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in v)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in v)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in v)||v.CI_NAME==="codeship"?1:a;if("TEAMCITY_VERSION"in v)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(v.TEAMCITY_VERSION)?1:0;if(v.COLORTERM==="truecolor"||v.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in v){let s=Number.parseInt((v.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(v.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(v.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(v.TERM)||"COLORTERM"in v?1:a}function ie(e,r={}){let t=lr(e,{streamIsTTY:e&&e.isTTY,...r});return cr(t)}var ur={stdout:ie({isTTY:jt.default.isatty(1)}),stderr:ie({isTTY:jt.default.isatty(2)})},le=ur;function ue(e,r,t){let o=e.indexOf(r);if(o===-1)return e;let n=r.length,a=0,s="";do s+=e.slice(a,o)+r+t,a=o+n,o=e.indexOf(r,a);while(o!==-1);return s+=e.slice(a),s}function pe(e,r,t,o){let n=0,a="";do{let s=e[o-1]==="\r";a+=e.slice(n,s?o-1:o)+r+(s?`\r +"use strict";var plugin=(()=>{var ze=Object.create;var St=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var tr=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,rr=Object.prototype.hasOwnProperty;var V=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ut=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),or=(e,r)=>{for(var t in r)St(e,t,{get:r[t],enumerable:!0})},se=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of tr(r))!rr.call(e,n)&&n!==t&&St(e,n,{get:()=>r[n],enumerable:!(o=Je(r,n))||o.enumerable});return e};var vt=(e,r,t)=>(t=e!=null?ze(er(e)):{},se(r||!e||!e.__esModule?St(t,"default",{value:e,enumerable:!0}):t,e)),nr=e=>se(St({},"__esModule",{value:!0}),e);var yt=ut((ho,Ce)=>{"use strict";var Z="\\\\/",ye=`[^${Z}]`,et="\\.",Rr="\\+",br="\\?",Lt="\\/",Cr="(?=.)",Ae="[^/]",Vt=`(?:${Lt}|$)`,Re=`(?:^|${Lt})`,Ut=`${et}{1,2}${Vt}`,_r=`(?!${et})`,Er=`(?!${Re}${Ut})`,xr=`(?!${et}{0,1}${Vt})`,Or=`(?!${Ut})`,Sr=`[^.${Lt}]`,vr=`${Ae}*?`,Tr="/",be={DOT_LITERAL:et,PLUS_LITERAL:Rr,QMARK_LITERAL:br,SLASH_LITERAL:Lt,ONE_CHAR:Cr,QMARK:Ae,END_ANCHOR:Vt,DOTS_SLASH:Ut,NO_DOT:_r,NO_DOTS:Er,NO_DOT_SLASH:xr,NO_DOTS_SLASH:Or,QMARK_NO_DOT:Sr,STAR:vr,START_ANCHOR:Re,SEP:Tr},wr={...be,SLASH_LITERAL:`[${Z}]`,QMARK:ye,STAR:`${ye}*?`,DOTS_SLASH:`${et}{1,2}(?:[${Z}]|$)`,NO_DOT:`(?!${et})`,NO_DOTS:`(?!(?:^|[${Z}])${et}{1,2}(?:[${Z}]|$))`,NO_DOT_SLASH:`(?!${et}{0,1}(?:[${Z}]|$))`,NO_DOTS_SLASH:`(?!${et}{1,2}(?:[${Z}]|$))`,QMARK_NO_DOT:`[^.${Z}]`,START_ANCHOR:`(?:^|[${Z}])`,END_ANCHOR:`(?:[${Z}]|$)`,SEP:"\\"},$r={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"};Ce.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:$r,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){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?wr:be}}});var At=ut(B=>{"use strict";var{REGEX_BACKSLASH:Lr,REGEX_REMOVE_BACKSLASH:kr,REGEX_SPECIAL_CHARS:Ir,REGEX_SPECIAL_CHARS_GLOBAL:Nr}=yt();B.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);B.hasRegexChars=e=>Ir.test(e);B.isRegexChar=e=>e.length===1&&B.hasRegexChars(e);B.escapeRegex=e=>e.replace(Nr,"\\$1");B.toPosixSlashes=e=>e.replace(Lr,"/");B.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":!1};B.removeBackslashes=e=>e.replace(kr,r=>r==="\\"?"":r);B.escapeLast=(e,r,t)=>{let o=e.lastIndexOf(r,t);return o===-1?e:e[o-1]==="\\"?B.escapeLast(e,r,o-1):`${e.slice(0,o)}\\${e.slice(o)}`};B.removePrefix=(e,r={})=>{let t=e;return t.startsWith("./")&&(t=t.slice(2),r.prefix="./"),t};B.wrapOutput=(e,r={},t={})=>{let o=t.contains?"":"^",n=t.contains?"":"$",s=`${o}(?:${e})${n}`;return r.negated===!0&&(s=`(?:^(?!${s}).*$)`),s};B.basename=(e,{windows:r}={})=>{let t=e.split(r?/[\\/]/:"/"),o=t[t.length-1];return o===""?t[t.length-2]:o}});var we=ut((yo,Te)=>{"use strict";var _e=At(),{CHAR_ASTERISK:Kt,CHAR_AT:Pr,CHAR_BACKWARD_SLASH:Rt,CHAR_COMMA:Hr,CHAR_DOT:Yt,CHAR_EXCLAMATION_MARK:Xt,CHAR_FORWARD_SLASH:ve,CHAR_LEFT_CURLY_BRACE:qt,CHAR_LEFT_PARENTHESES:Qt,CHAR_LEFT_SQUARE_BRACKET:Mr,CHAR_PLUS:Gr,CHAR_QUESTION_MARK:Ee,CHAR_RIGHT_CURLY_BRACE:jr,CHAR_RIGHT_PARENTHESES:xe,CHAR_RIGHT_SQUARE_BRACKET:Dr}=yt(),Oe=e=>e===ve||e===Rt,Se=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},Br=(e,r)=>{let t=r||{},o=e.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],a=[],f=[],g=e,A=-1,R=0,H=0,$=!1,F=!1,b=!1,N=!1,at=!1,q=!1,_=!1,Q=!1,it=!1,M=!1,P=0,W,d,m={value:"",depth:0,isGlob:!1},l=()=>A>=o,j=()=>g.charCodeAt(A+1),L=()=>(W=d,g.charCodeAt(++A));for(;A0&&(i=g.slice(0,R),g=g.slice(R),H-=R),T&&b===!0&&H>0?(T=g.slice(0,H),c=g.slice(H)):b===!0?(T="",c=g):T=g,T&&T!==""&&T!=="/"&&T!==g&&Oe(T.charCodeAt(T.length-1))&&(T=T.slice(0,-1)),t.unescape===!0&&(c&&(c=_e.removeBackslashes(c)),T&&_===!0&&(T=_e.removeBackslashes(T)));let U={prefix:i,input:e,start:R,base:T,glob:c,isBrace:$,isBracket:F,isGlob:b,isExtglob:N,isGlobstar:at,negated:Q,negatedExtglob:it};if(t.tokens===!0&&(U.maxDepth=0,Oe(d)||a.push(m),U.tokens=a),t.parts===!0||t.tokens===!0){let C;for(let O=0;O{"use strict";var kt=yt(),z=At(),{MAX_LENGTH:It,POSIX_REGEX_SOURCE:Fr,REGEX_NON_SPECIAL_CHARS:Wr,REGEX_SPECIAL_CHARS_BACKREF:Vr,REPLACEMENTS:$e}=kt,Ur=(e,r)=>{if(typeof r.expandRange=="function")return r.expandRange(...e,r);e.sort();let t=`[${e.join("-")}]`;try{new RegExp(t)}catch{return e.map(n=>z.escapeRegex(n)).join("..")}return t},gt=(e,r)=>`Missing ${e}: "${r}" - use "\\\\${r}" to match literal characters`,Zt=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=$e[e]||e;let t={...r},o=typeof t.maxLength=="number"?Math.min(It,t.maxLength):It,n=e.length;if(n>o)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${o}`);let s={type:"bos",value:"",output:t.prepend||""},a=[s],f=t.capture?"":"?:",g=kt.globChars(t.windows),A=kt.extglobChars(g),{DOT_LITERAL:R,PLUS_LITERAL:H,SLASH_LITERAL:$,ONE_CHAR:F,DOTS_SLASH:b,NO_DOT:N,NO_DOT_SLASH:at,NO_DOTS_SLASH:q,QMARK:_,QMARK_NO_DOT:Q,STAR:it,START_ANCHOR:M}=g,P=p=>`(${f}(?:(?!${M}${p.dot?b:R}).)*?)`,W=t.dot?"":N,d=t.dot?_:Q,m=t.bash===!0?P(t):it;t.capture&&(m=`(${m})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let l={input:e,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};e=z.removePrefix(e,l),n=e.length;let j=[],L=[],T=[],i=s,c,U=()=>l.index===n-1,C=l.peek=(p=1)=>e[l.index+p],O=l.advance=()=>e[++l.index]||"",tt=()=>e.slice(l.index+1),K=(p="",E=0)=>{l.consumed+=p,l.index+=E},st=p=>{l.output+=p.output!=null?p.output:p.value,K(p.value)},Qe=()=>{let p=1;for(;C()==="!"&&(C(2)!=="("||C(3)==="?");)O(),l.start++,p++;return p%2===0?!1:(l.negated=!0,l.start++,!0)},Et=p=>{l[p]++,T.push(p)},ct=p=>{l[p]--,T.pop()},y=p=>{if(i.type==="globstar"){let E=l.braces>0&&(p.type==="comma"||p.type==="brace"),u=p.extglob===!0||j.length&&(p.type==="pipe"||p.type==="paren");p.type!=="slash"&&p.type!=="paren"&&!E&&!u&&(l.output=l.output.slice(0,-i.output.length),i.type="star",i.value="*",i.output=m,l.output+=i.output)}if(j.length&&p.type!=="paren"&&(j[j.length-1].inner+=p.value),(p.value||p.output)&&st(p),i&&i.type==="text"&&p.type==="text"){i.output=(i.output||i.value)+p.value,i.value+=p.value;return}p.prev=i,a.push(p),i=p},xt=(p,E)=>{let u={...A[E],conditions:1,inner:""};u.prev=i,u.parens=l.parens,u.output=l.output;let h=(t.capture?"(":"")+u.open;Et("parens"),y({type:p,value:E,output:l.output?"":F}),y({type:"paren",extglob:!0,value:O(),output:h}),j.push(u)},Ze=p=>{let E=p.close+(t.capture?")":""),u;if(p.type==="negate"){let h=m;if(p.inner&&p.inner.length>1&&p.inner.includes("/")&&(h=P(t)),(h!==m||U()||/^\)+$/.test(tt()))&&(E=p.close=`)$))${h}`),p.inner.includes("*")&&(u=tt())&&/^\.[^\\/.]+$/.test(u)){let S=Zt(u,{...r,fastpaths:!1}).output;E=p.close=`)${S})${h})`}p.prev.type==="bos"&&(l.negatedExtglob=!0)}y({type:"paren",extglob:!0,value:c,output:E}),ct("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let p=!1,E=e.replace(Vr,(u,h,S,G,k,jt)=>G==="\\"?(p=!0,u):G==="?"?h?h+G+(k?_.repeat(k.length):""):jt===0?d+(k?_.repeat(k.length):""):_.repeat(S.length):G==="."?R.repeat(S.length):G==="*"?h?h+G+(k?m:""):m:h?u:`\\${u}`);return p===!0&&(t.unescape===!0?E=E.replace(/\\/g,""):E=E.replace(/\\+/g,u=>u.length%2===0?"\\\\":u?"\\":"")),E===e&&t.contains===!0?(l.output=e,l):(l.output=z.wrapOutput(E,l,r),l)}for(;!U();){if(c=O(),c==="\0")continue;if(c==="\\"){let u=C();if(u==="/"&&t.bash!==!0||u==="."||u===";")continue;if(!u){c+="\\",y({type:"text",value:c});continue}let h=/^\\+/.exec(tt()),S=0;if(h&&h[0].length>2&&(S=h[0].length,l.index+=S,S%2!==0&&(c+="\\")),t.unescape===!0?c=O():c+=O(),l.brackets===0){y({type:"text",value:c});continue}}if(l.brackets>0&&(c!=="]"||i.value==="["||i.value==="[^")){if(t.posix!==!1&&c===":"){let u=i.value.slice(1);if(u.includes("[")&&(i.posix=!0,u.includes(":"))){let h=i.value.lastIndexOf("["),S=i.value.slice(0,h),G=i.value.slice(h+2),k=Fr[G];if(k){i.value=S+k,l.backtrack=!0,O(),!s.output&&a.indexOf(i)===1&&(s.output=F);continue}}}(c==="["&&C()!==":"||c==="-"&&C()==="]")&&(c=`\\${c}`),c==="]"&&(i.value==="["||i.value==="[^")&&(c=`\\${c}`),t.posix===!0&&c==="!"&&i.value==="["&&(c="^"),i.value+=c,st({value:c});continue}if(l.quotes===1&&c!=='"'){c=z.escapeRegex(c),i.value+=c,st({value:c});continue}if(c==='"'){l.quotes=l.quotes===1?0:1,t.keepQuotes===!0&&y({type:"text",value:c});continue}if(c==="("){Et("parens"),y({type:"paren",value:c});continue}if(c===")"){if(l.parens===0&&t.strictBrackets===!0)throw new SyntaxError(gt("opening","("));let u=j[j.length-1];if(u&&l.parens===u.parens+1){Ze(j.pop());continue}y({type:"paren",value:c,output:l.parens?")":"\\)"}),ct("parens");continue}if(c==="["){if(t.nobracket===!0||!tt().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(gt("closing","]"));c=`\\${c}`}else Et("brackets");y({type:"bracket",value:c});continue}if(c==="]"){if(t.nobracket===!0||i&&i.type==="bracket"&&i.value.length===1){y({type:"text",value:c,output:`\\${c}`});continue}if(l.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(gt("opening","["));y({type:"text",value:c,output:`\\${c}`});continue}ct("brackets");let u=i.value.slice(1);if(i.posix!==!0&&u[0]==="^"&&!u.includes("/")&&(c=`/${c}`),i.value+=c,st({value:c}),t.literalBrackets===!1||z.hasRegexChars(u))continue;let h=z.escapeRegex(i.value);if(l.output=l.output.slice(0,-i.value.length),t.literalBrackets===!0){l.output+=h,i.value=h;continue}i.value=`(${f}${h}|${i.value})`,l.output+=i.value;continue}if(c==="{"&&t.nobrace!==!0){Et("braces");let u={type:"brace",value:c,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};L.push(u),y(u);continue}if(c==="}"){let u=L[L.length-1];if(t.nobrace===!0||!u){y({type:"text",value:c,output:c});continue}let h=")";if(u.dots===!0){let S=a.slice(),G=[];for(let k=S.length-1;k>=0&&(a.pop(),S[k].type!=="brace");k--)S[k].type!=="dots"&&G.unshift(S[k].value);h=Ur(G,t),l.backtrack=!0}if(u.comma!==!0&&u.dots!==!0){let S=l.output.slice(0,u.outputIndex),G=l.tokens.slice(u.tokensIndex);u.value=u.output="\\{",c=h="\\}",l.output=S;for(let k of G)l.output+=k.output||k.value}y({type:"brace",value:c,output:h}),ct("braces"),L.pop();continue}if(c==="|"){j.length>0&&j[j.length-1].conditions++,y({type:"text",value:c});continue}if(c===","){let u=c,h=L[L.length-1];h&&T[T.length-1]==="braces"&&(h.comma=!0,u="|"),y({type:"comma",value:c,output:u});continue}if(c==="/"){if(i.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",a.pop(),i=s;continue}y({type:"slash",value:c,output:$});continue}if(c==="."){if(l.braces>0&&i.type==="dot"){i.value==="."&&(i.output=R);let u=L[L.length-1];i.type="dots",i.output+=c,i.value+=c,u.dots=!0;continue}if(l.braces+l.parens===0&&i.type!=="bos"&&i.type!=="slash"){y({type:"text",value:c,output:R});continue}y({type:"dot",value:c,output:R});continue}if(c==="?"){if(!(i&&i.value==="(")&&t.noextglob!==!0&&C()==="("&&C(2)!=="?"){xt("qmark",c);continue}if(i&&i.type==="paren"){let h=C(),S=c;(i.value==="("&&!/[!=<:]/.test(h)||h==="<"&&!/<([!=]|\w+>)/.test(tt()))&&(S=`\\${c}`),y({type:"text",value:c,output:S});continue}if(t.dot!==!0&&(i.type==="slash"||i.type==="bos")){y({type:"qmark",value:c,output:Q});continue}y({type:"qmark",value:c,output:_});continue}if(c==="!"){if(t.noextglob!==!0&&C()==="("&&(C(2)!=="?"||!/[!=<:]/.test(C(3)))){xt("negate",c);continue}if(t.nonegate!==!0&&l.index===0){Qe();continue}}if(c==="+"){if(t.noextglob!==!0&&C()==="("&&C(2)!=="?"){xt("plus",c);continue}if(i&&i.value==="("||t.regex===!1){y({type:"plus",value:c,output:H});continue}if(i&&(i.type==="bracket"||i.type==="paren"||i.type==="brace")||l.parens>0){y({type:"plus",value:c});continue}y({type:"plus",value:H});continue}if(c==="@"){if(t.noextglob!==!0&&C()==="("&&C(2)!=="?"){y({type:"at",extglob:!0,value:c,output:""});continue}y({type:"text",value:c});continue}if(c!=="*"){(c==="$"||c==="^")&&(c=`\\${c}`);let u=Wr.exec(tt());u&&(c+=u[0],l.index+=u[0].length),y({type:"text",value:c});continue}if(i&&(i.type==="globstar"||i.star===!0)){i.type="star",i.star=!0,i.value+=c,i.output=m,l.backtrack=!0,l.globstar=!0,K(c);continue}let p=tt();if(t.noextglob!==!0&&/^\([^?]/.test(p)){xt("star",c);continue}if(i.type==="star"){if(t.noglobstar===!0){K(c);continue}let u=i.prev,h=u.prev,S=u.type==="slash"||u.type==="bos",G=h&&(h.type==="star"||h.type==="globstar");if(t.bash===!0&&(!S||p[0]&&p[0]!=="/")){y({type:"star",value:c,output:""});continue}let k=l.braces>0&&(u.type==="comma"||u.type==="brace"),jt=j.length&&(u.type==="pipe"||u.type==="paren");if(!S&&u.type!=="paren"&&!k&&!jt){y({type:"star",value:c,output:""});continue}for(;p.slice(0,3)==="/**";){let Ot=e[l.index+4];if(Ot&&Ot!=="/")break;p=p.slice(3),K("/**",3)}if(u.type==="bos"&&U()){i.type="globstar",i.value+=c,i.output=P(t),l.output=i.output,l.globstar=!0,K(c);continue}if(u.type==="slash"&&u.prev.type!=="bos"&&!G&&U()){l.output=l.output.slice(0,-(u.output+i.output).length),u.output=`(?:${u.output}`,i.type="globstar",i.output=P(t)+(t.strictSlashes?")":"|$)"),i.value+=c,l.globstar=!0,l.output+=u.output+i.output,K(c);continue}if(u.type==="slash"&&u.prev.type!=="bos"&&p[0]==="/"){let Ot=p[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(u.output+i.output).length),u.output=`(?:${u.output}`,i.type="globstar",i.output=`${P(t)}${$}|${$}${Ot})`,i.value+=c,l.output+=u.output+i.output,l.globstar=!0,K(c+O()),y({type:"slash",value:"/",output:""});continue}if(u.type==="bos"&&p[0]==="/"){i.type="globstar",i.value+=c,i.output=`(?:^|${$}|${P(t)}${$})`,l.output=i.output,l.globstar=!0,K(c+O()),y({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-i.output.length),i.type="globstar",i.output=P(t),i.value+=c,l.output+=i.output,l.globstar=!0,K(c);continue}let E={type:"star",value:c,output:m};if(t.bash===!0){E.output=".*?",(i.type==="bos"||i.type==="slash")&&(E.output=W+E.output),y(E);continue}if(i&&(i.type==="bracket"||i.type==="paren")&&t.regex===!0){E.output=c,y(E);continue}(l.index===l.start||i.type==="slash"||i.type==="dot")&&(i.type==="dot"?(l.output+=at,i.output+=at):t.dot===!0?(l.output+=q,i.output+=q):(l.output+=W,i.output+=W),C()!=="*"&&(l.output+=F,i.output+=F)),y(E)}for(;l.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(gt("closing","]"));l.output=z.escapeLast(l.output,"["),ct("brackets")}for(;l.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(gt("closing",")"));l.output=z.escapeLast(l.output,"("),ct("parens")}for(;l.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(gt("closing","}"));l.output=z.escapeLast(l.output,"{"),ct("braces")}if(t.strictSlashes!==!0&&(i.type==="star"||i.type==="bracket")&&y({type:"maybe_slash",value:"",output:`${$}?`}),l.backtrack===!0){l.output="";for(let p of l.tokens)l.output+=p.output!=null?p.output:p.value,p.suffix&&(l.output+=p.suffix)}return l};Zt.fastpaths=(e,r)=>{let t={...r},o=typeof t.maxLength=="number"?Math.min(It,t.maxLength):It,n=e.length;if(n>o)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${o}`);e=$e[e]||e;let{DOT_LITERAL:s,SLASH_LITERAL:a,ONE_CHAR:f,DOTS_SLASH:g,NO_DOT:A,NO_DOTS:R,NO_DOTS_SLASH:H,STAR:$,START_ANCHOR:F}=kt.globChars(t.windows),b=t.dot?R:A,N=t.dot?H:A,at=t.capture?"":"?:",q={negated:!1,prefix:""},_=t.bash===!0?".*?":$;t.capture&&(_=`(${_})`);let Q=W=>W.noglobstar===!0?_:`(${at}(?:(?!${F}${W.dot?g:s}).)*?)`,it=W=>{switch(W){case"*":return`${b}${f}${_}`;case".*":return`${s}${f}${_}`;case"*.*":return`${b}${_}${s}${f}${_}`;case"*/*":return`${b}${_}${a}${f}${N}${_}`;case"**":return b+Q(t);case"**/*":return`(?:${b}${Q(t)}${a})?${N}${f}${_}`;case"**/*.*":return`(?:${b}${Q(t)}${a})?${N}${_}${s}${f}${_}`;case"**/.*":return`(?:${b}${Q(t)}${a})?${s}${f}${_}`;default:{let d=/^(.*?)\.(\w+)$/.exec(W);if(!d)return;let m=it(d[1]);return m?m+s+d[2]:void 0}}},M=z.removePrefix(e,q),P=it(M);return P&&t.strictSlashes!==!0&&(P+=`${a}?`),P};Le.exports=Zt});var Pe=ut((Ro,Ne)=>{"use strict";var Kr=we(),zt=ke(),Ie=At(),Yr=yt(),Xr=e=>e&&typeof e=="object"&&!Array.isArray(e),w=(e,r,t=!1)=>{if(Array.isArray(e)){let R=e.map($=>w($,r,t));return $=>{for(let F of R){let b=F($);if(b)return b}return!1}}let o=Xr(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let n=r||{},s=n.windows,a=o?w.compileRe(e,r):w.makeRe(e,r,!1,!0),f=a.state;delete a.state;let g=()=>!1;if(n.ignore){let R={...r,ignore:null,onMatch:null,onResult:null};g=w(n.ignore,R,t)}let A=(R,H=!1)=>{let{isMatch:$,match:F,output:b}=w.test(R,a,r,{glob:e,posix:s}),N={glob:e,state:f,regex:a,posix:s,input:R,output:b,match:F,isMatch:$};return typeof n.onResult=="function"&&n.onResult(N),$===!1?(N.isMatch=!1,H?N:!1):g(R)?(typeof n.onIgnore=="function"&&n.onIgnore(N),N.isMatch=!1,H?N:!1):(typeof n.onMatch=="function"&&n.onMatch(N),H?N:!0)};return t&&(A.state=f),A};w.test=(e,r,t,{glob:o,posix:n}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let s=t||{},a=s.format||(n?Ie.toPosixSlashes:null),f=e===o,g=f&&a?a(e):e;return f===!1&&(g=a?a(e):e,f=g===o),(f===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?f=w.matchBase(e,r,t,n):f=r.exec(g)),{isMatch:!!f,match:f,output:g}};w.matchBase=(e,r,t)=>(r instanceof RegExp?r:w.makeRe(r,t)).test(Ie.basename(e));w.isMatch=(e,r,t)=>w(r,t)(e);w.parse=(e,r)=>Array.isArray(e)?e.map(t=>w.parse(t,r)):zt(e,{...r,fastpaths:!1});w.scan=(e,r)=>Kr(e,r);w.compileRe=(e,r,t=!1,o=!1)=>{if(t===!0)return e.output;let n=r||{},s=n.contains?"":"^",a=n.contains?"":"$",f=`${s}(?:${e.output})${a}`;e&&e.negated===!0&&(f=`^(?!${f}).*$`);let g=w.toRegex(f,r);return o===!0&&(g.state=e),g};w.makeRe=(e,r={},t=!1,o=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return r.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(n.output=zt.fastpaths(e,r)),n.output||(n=zt(e,r)),w.compileRe(n,r,t,o)};w.toRegex=(e,r)=>{try{let t=r||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(t){if(r&&r.debug===!0)throw t;return/$^/}};w.constants=Yr;Ne.exports=w});var je=ut((bo,Ge)=>{"use strict";var He=Pe(),qr=At();function Me(e,r,t=!1){return r&&(r.windows===null||r.windows===void 0)&&(r={...r,windows:qr.isWindows()}),He(e,r,t)}Object.assign(Me,He);Ge.exports=Me});var ro={};or(ro,{default:()=>eo});var lt=V("@yarnpkg/core");var ae=(e=0)=>r=>`\x1B[${r+e}m`,ie=(e=0)=>r=>`\x1B[${38+e};5;${r}m`,ce=(e=0)=>(r,t,o)=>`\x1B[${38+e};2;${r};${t};${o}m`,x={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},no=Object.keys(x.modifier),sr=Object.keys(x.color),ar=Object.keys(x.bgColor),so=[...sr,...ar];function ir(){let e=new Map;for(let[r,t]of Object.entries(x)){for(let[o,n]of Object.entries(t))x[o]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},t[o]=x[o],e.set(n[0],n[1]);Object.defineProperty(x,r,{value:t,enumerable:!1})}return Object.defineProperty(x,"codes",{value:e,enumerable:!1}),x.color.close="\x1B[39m",x.bgColor.close="\x1B[49m",x.color.ansi=ae(),x.color.ansi256=ie(),x.color.ansi16m=ce(),x.bgColor.ansi=ae(10),x.bgColor.ansi256=ie(10),x.bgColor.ansi16m=ce(10),Object.defineProperties(x,{rgbToAnsi256:{value(r,t,o){return r===t&&t===o?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(t/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(r){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(r.toString(16));if(!t)return[0,0,0];let[o]=t;o.length===3&&(o=[...o].map(s=>s+s).join(""));let n=Number.parseInt(o,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:r=>x.rgbToAnsi256(...x.hexToRgb(r)),enumerable:!1},ansi256ToAnsi:{value(r){if(r<8)return 30+r;if(r<16)return 90+(r-8);let t,o,n;if(r>=232)t=((r-232)*10+8)/255,o=t,n=t;else{r-=16;let f=r%36;t=Math.floor(r/36)/5,o=Math.floor(f/6)/5,n=f%6/5}let s=Math.max(t,o,n)*2;if(s===0)return 30;let a=30+(Math.round(n)<<2|Math.round(o)<<1|Math.round(t));return s===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(r,t,o)=>x.ansi256ToAnsi(x.rgbToAnsi256(r,t,o)),enumerable:!1},hexToAnsi:{value:r=>x.ansi256ToAnsi(x.hexToAnsi256(r)),enumerable:!1}}),x}var cr=ir(),X=cr;var wt=vt(V("process"),1),ue=vt(V("os"),1),Dt=vt(V("tty"),1);function Y(e,r=globalThis.Deno?globalThis.Deno.args:wt.default.argv){let t=e.startsWith("-")?"":e.length===1?"-":"--",o=r.indexOf(t+e),n=r.indexOf("--");return o!==-1&&(n===-1||o=2,has16m:e>=3}}function pr(e,{streamIsTTY:r,sniffFlags:t=!0}={}){let o=lr();o!==void 0&&(Tt=o);let n=t?Tt:o;if(n===0)return 0;if(t){if(Y("color=16m")||Y("color=full")||Y("color=truecolor"))return 3;if(Y("color=256"))return 2}if("TF_BUILD"in v&&"AGENT_NAME"in v)return 1;if(e&&!r&&n===void 0)return 0;let s=n||0;if(v.TERM==="dumb")return s;if(wt.default.platform==="win32"){let a=ue.default.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in v)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in v)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in v)||v.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in v)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(v.TEAMCITY_VERSION)?1:0;if(v.COLORTERM==="truecolor"||v.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in v){let a=Number.parseInt((v.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(v.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(v.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(v.TERM)||"COLORTERM"in v?1:s}function le(e,r={}){let t=pr(e,{streamIsTTY:e&&e.isTTY,...r});return ur(t)}var fr={stdout:le({isTTY:Dt.default.isatty(1)}),stderr:le({isTTY:Dt.default.isatty(2)})},pe=fr;function fe(e,r,t){let o=e.indexOf(r);if(o===-1)return e;let n=r.length,s=0,a="";do a+=e.slice(s,o)+r+t,s=o+n,o=e.indexOf(r,s);while(o!==-1);return a+=e.slice(s),a}function ge(e,r,t,o){let n=0,s="";do{let a=e[o-1]==="\r";s+=e.slice(n,a?o-1:o)+r+(a?`\r `:` `)+t,n=o+1,o=e.indexOf(` -`,n)}while(o!==-1);return a+=e.slice(n),a}var{stdout:fe,stderr:ge}=le,Bt=Symbol("GENERATOR"),ut=Symbol("STYLER"),ht=Symbol("IS_EMPTY"),de=["ansi","ansi","ansi256","ansi16m"],pt=Object.create(null),pr=(e,r={})=>{if(r.level&&!(Number.isInteger(r.level)&&r.level>=0&&r.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=fe?fe.level:0;e.level=r.level===void 0?t:r.level};var fr=e=>{let r=(...t)=>t.join(" ");return pr(r,e),Object.setPrototypeOf(r,mt.prototype),r};function mt(e){return fr(e)}Object.setPrototypeOf(mt.prototype,Function.prototype);for(let[e,r]of Object.entries(X))pt[e]={get(){let t=wt(this,Ft(r.open,r.close,this[ut]),this[ht]);return Object.defineProperty(this,e,{value:t}),t}};pt.visible={get(){let e=wt(this,this[ut],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Wt=(e,r,t,...o)=>e==="rgb"?r==="ansi16m"?X[t].ansi16m(...o):r==="ansi256"?X[t].ansi256(X.rgbToAnsi256(...o)):X[t].ansi(X.rgbToAnsi(...o)):e==="hex"?Wt("rgb",r,t,...X.hexToRgb(...o)):X[t][e](...o),gr=["rgb","hex","ansi256"];for(let e of gr){pt[e]={get(){let{level:t}=this;return function(...o){let n=Ft(Wt(e,de[t],"color",...o),X.color.close,this[ut]);return wt(this,n,this[ht])}}};let r="bg"+e[0].toUpperCase()+e.slice(1);pt[r]={get(){let{level:t}=this;return function(...o){let n=Ft(Wt(e,de[t],"bgColor",...o),X.bgColor.close,this[ut]);return wt(this,n,this[ht])}}}}var dr=Object.defineProperties(()=>{},{...pt,level:{enumerable:!0,get(){return this[Bt].level},set(e){this[Bt].level=e}}}),Ft=(e,r,t)=>{let o,n;return t===void 0?(o=e,n=r):(o=t.openAll+e,n=r+t.closeAll),{open:e,close:r,openAll:o,closeAll:n,parent:t}},wt=(e,r,t)=>{let o=(...n)=>hr(o,n.length===1?""+n[0]:n.join(" "));return Object.setPrototypeOf(o,dr),o[Bt]=e,o[ut]=r,o[ht]=t,o},hr=(e,r)=>{if(e.level<=0||!r)return e[ht]?"":r;let t=e[ut];if(t===void 0)return r;let{openAll:o,closeAll:n}=t;if(r.includes("\x1B"))for(;t!==void 0;)r=ue(r,t.close,t.open),t=t.parent;let a=r.indexOf(` -`);return a!==-1&&(r=pe(r,n,o,a)),o+r+n};Object.defineProperties(mt.prototype,pt);var mr=mt(),fo=mt({level:ge?ge.level:0});var j=mr;var Ue=V("@yarnpkg/cli"),gt=V("@yarnpkg/core"),Ct=V("@yarnpkg/fslib"),_t=V("@yarnpkg/parsers");var Mt=V("clipanion");var Be=V("@yarnpkg/core"),nt=V("@yarnpkg/fslib"),bt=V("@yarnpkg/parsers"),Jt=vt(Me());var rt="root",J="catalog:";var ot=class extends Error{constructor(t,o){super(t);this.code=o;this.name="CatalogConfigurationError"}static{this.FILE_NOT_FOUND="FILE_NOT_FOUND"}static{this.INVALID_FORMAT="INVALID_FORMAT"}static{this.INVALID_ALIAS="INVALID_ALIAS"}};function Ge(e){if(!e||typeof e!="object")return!1;let r=e;if(!("list"in r)||!r.list||typeof r.list!="object")return!1;for(let t of Object.values(r.list)){if(!t||typeof t!="object")return!1;for(let o of Object.values(t))if(typeof o!="string")return!1}if("options"in r&&r.options){let t=r.options;if(!t||typeof t!="object")return!1;let o=t;if(o.default){if(Array.isArray(o.default)){if(o.default.length===0||!o.default.every(n=>typeof n=="string"))return!1}else if(typeof o.default!="string"||o.default!=="max")return!1}if(o.includedWorkspaces&&(!Array.isArray(o.includedWorkspaces)||o.includedWorkspaces.length===0||!o.includedWorkspaces.every(n=>typeof n=="string"))||o.ignoredWorkspaces&&(!Array.isArray(o.ignoredWorkspaces)||o.ignoredWorkspaces.length===0||!o.ignoredWorkspaces.every(n=>typeof n=="string")))return!1;if(o.validation){let n=["warn","strict","off"],a=o.validation;if(typeof a=="string"){if(!n.includes(a))return!1}else if(typeof a=="object"&&a!==null){if(!Object.values(a).every(s=>typeof s=="string"&&n.includes(s)))return!1}else return!1}}return!0}function De(e,r){let t=Object.keys(e.list);for(let o of t)if(o.includes("/")){let n=r(o);for(let a=0;atypeof r=="string")}function je(e){return!e||typeof e!="object"||e instanceof Map?!1:Object.values(e).every(r=>Nt(r))}var Xr="catalogs.yml",Pt=class{constructor(){this.cache=new Map}async read(r){let t=String(r.cwd),o=this.cache.get(t);if(o!==void 0)return o;let n=nt.ppath.join(r.cwd,Xr);if(!await nt.xfs.existsPromise(n))return this.cache.set(t,null),null;let a=await nt.xfs.readFilePromise(n,"utf8"),s=(0,bt.parseSyml)(a);if(!Ge(s))throw new ot("Invalid catalogs.yml format. Expected structure: { options?: {...}, list: { [alias: string]: { [packageName: string]: string } } }",ot.INVALID_FORMAT);if(!De(s,this.getInheritanceChain.bind(this)))throw new ot("Invalid inheritance structure in catalogs.yml. Parent groups must exist in the inheritance chain.",ot.INVALID_ALIAS);return this.cache.set(t,s),s}async getOptions(r){return(await this.read(r))?.options}async getAppliedCatalogs(r){let t=r.configuration.get("catalog"),o=r.configuration.get("catalogs"),n={};if(t&&typeof t=="object"&&(t instanceof Map?n[rt]=Object.fromEntries(t.entries()):Nt(t)&&(n[rt]=t)),o&&typeof o=="object")if(o instanceof Map)for(let[a,s]of o.entries())s instanceof Map?n[a]=Object.fromEntries(s.entries()):Nt(s)&&(n[a]=s);else je(o)&&Object.assign(n,o);return n}async shouldIgnoreWorkspace(r){if(!r.manifest.name)return!1;let o=(await this.read(r.project))?.options;if(!o)return!1;let n=Be.structUtils.stringifyIdent(r.manifest.name);return!!(o.ignoredWorkspaces&&(0,Jt.isMatch)(n,o.ignoredWorkspaces)||o.includedWorkspaces&&!(0,Jt.isMatch)(n,o.includedWorkspaces))}async writeToYarnrc(r,t){let o=nt.ppath.join(r.cwd,".yarnrc.yml"),n={};if(await nt.xfs.existsPromise(o)){let s=await nt.xfs.readFilePromise(o,"utf8");n=(0,bt.parseSyml)(s)||{}}t.root&&Object.keys(t.root).length>0?n.catalog=t.root:n.catalog=void 0,Object.keys(t.named).length>0?n.catalogs=t.named:n.catalogs=void 0;let a=(0,bt.stringifySyml)(n);await nt.xfs.writeFilePromise(o,a)}resolveAllCatalogs(r){let t={named:{}};for(let[o,n]of Object.entries(r.list))o===rt?t.root={...n}:t.named[o]=this.resolveInheritedCatalog(o,r.list);return t}resolveInheritedCatalog(r,t){let o=this.getInheritanceChain(r),n={};for(let a of o){let s=t[a];if(!s)throw new ot(`Parent group "${a}" not found in inheritance chain for "${r}"`,ot.INVALID_ALIAS);Object.assign(n,s)}return n}getInheritanceChain(r){let t=r.split("/"),o=[];for(let n=0;n{if(r.level&&!(Number.isInteger(r.level)&&r.level>=0&&r.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=de?de.level:0;e.level=r.level===void 0?t:r.level};var dr=e=>{let r=(...t)=>t.join(" ");return gr(r,e),Object.setPrototypeOf(r,mt.prototype),r};function mt(e){return dr(e)}Object.setPrototypeOf(mt.prototype,Function.prototype);for(let[e,r]of Object.entries(X))ft[e]={get(){let t=$t(this,Wt(r.open,r.close,this[pt]),this[ht]);return Object.defineProperty(this,e,{value:t}),t}};ft.visible={get(){let e=$t(this,this[pt],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Ft=(e,r,t,...o)=>e==="rgb"?r==="ansi16m"?X[t].ansi16m(...o):r==="ansi256"?X[t].ansi256(X.rgbToAnsi256(...o)):X[t].ansi(X.rgbToAnsi(...o)):e==="hex"?Ft("rgb",r,t,...X.hexToRgb(...o)):X[t][e](...o),hr=["rgb","hex","ansi256"];for(let e of hr){ft[e]={get(){let{level:t}=this;return function(...o){let n=Wt(Ft(e,me[t],"color",...o),X.color.close,this[pt]);return $t(this,n,this[ht])}}};let r="bg"+e[0].toUpperCase()+e.slice(1);ft[r]={get(){let{level:t}=this;return function(...o){let n=Wt(Ft(e,me[t],"bgColor",...o),X.bgColor.close,this[pt]);return $t(this,n,this[ht])}}}}var mr=Object.defineProperties(()=>{},{...ft,level:{enumerable:!0,get(){return this[Bt].level},set(e){this[Bt].level=e}}}),Wt=(e,r,t)=>{let o,n;return t===void 0?(o=e,n=r):(o=t.openAll+e,n=r+t.closeAll),{open:e,close:r,openAll:o,closeAll:n,parent:t}},$t=(e,r,t)=>{let o=(...n)=>yr(o,n.length===1?""+n[0]:n.join(" "));return Object.setPrototypeOf(o,mr),o[Bt]=e,o[pt]=r,o[ht]=t,o},yr=(e,r)=>{if(e.level<=0||!r)return e[ht]?"":r;let t=e[pt];if(t===void 0)return r;let{openAll:o,closeAll:n}=t;if(r.includes("\x1B"))for(;t!==void 0;)r=fe(r,t.close,t.open),t=t.parent;let s=r.indexOf(` +`);return s!==-1&&(r=ge(r,n,o,s)),o+r+n};Object.defineProperties(mt.prototype,ft);var Ar=mt(),fo=mt({level:he?he.level:0});var D=Ar;var Ye=V("@yarnpkg/cli"),dt=V("@yarnpkg/core"),Ct=V("@yarnpkg/fslib"),_t=V("@yarnpkg/parsers");var Mt=V("clipanion");var We=V("@yarnpkg/core"),nt=V("@yarnpkg/fslib"),bt=V("@yarnpkg/parsers"),Jt=vt(je());var rt="root",J="catalog:";var ot=class extends Error{constructor(t,o){super(t);this.code=o;this.name="CatalogConfigurationError"}static{this.FILE_NOT_FOUND="FILE_NOT_FOUND"}static{this.INVALID_FORMAT="INVALID_FORMAT"}static{this.INVALID_ALIAS="INVALID_ALIAS"}};function De(e){if(!e||typeof e!="object")return!1;let r=e;if(!("list"in r)||!r.list||typeof r.list!="object")return!1;for(let t of Object.values(r.list)){if(!t||typeof t!="object")return!1;for(let o of Object.values(t))if(typeof o!="string")return!1}if("options"in r&&r.options){let t=r.options;if(!t||typeof t!="object")return!1;let o=t;if(o.default){if(Array.isArray(o.default)){if(o.default.length===0||!o.default.every(n=>typeof n=="string"))return!1}else if(typeof o.default!="string"||o.default!=="max")return!1}if(o.includedWorkspaces&&(!Array.isArray(o.includedWorkspaces)||o.includedWorkspaces.length===0||!o.includedWorkspaces.every(n=>typeof n=="string"))||o.ignoredWorkspaces&&(!Array.isArray(o.ignoredWorkspaces)||o.ignoredWorkspaces.length===0||!o.ignoredWorkspaces.every(n=>typeof n=="string")))return!1;if(o.validation){let n=["warn","strict","off"],s=o.validation;if(typeof s=="string"){if(!n.includes(s))return!1}else if(typeof s=="object"&&s!==null){if(!Object.values(s).every(a=>typeof a=="string"&&n.includes(a)))return!1}else return!1}}return!0}function Be(e,r){let t=Object.keys(e.list);for(let o of t)if(o.includes("/")){let n=r(o);for(let s=0;stypeof r=="string")}function Fe(e){return!e||typeof e!="object"||e instanceof Map?!1:Object.values(e).every(r=>Nt(r))}var Qr="catalogs.yml",Pt=class{constructor(){this.cache=new Map}async read(r){let t=String(r.cwd),o=this.cache.get(t);if(o!==void 0)return o;let n=nt.ppath.join(r.cwd,Qr);if(!await nt.xfs.existsPromise(n))return this.cache.set(t,null),null;let s=await nt.xfs.readFilePromise(n,"utf8"),a=(0,bt.parseSyml)(s);if(!De(a))throw new ot("Invalid catalogs.yml format. Expected structure: { options?: {...}, list: { [alias: string]: { [packageName: string]: string } } }",ot.INVALID_FORMAT);if(!Be(a,this.getInheritanceChain.bind(this)))throw new ot("Invalid inheritance structure in catalogs.yml. Parent groups must exist in the inheritance chain.",ot.INVALID_ALIAS);return this.cache.set(t,a),a}async getOptions(r){return(await this.read(r))?.options}async getAppliedCatalogs(r){let t=r.configuration.get("catalog"),o=r.configuration.get("catalogs"),n={};if(t&&typeof t=="object"&&(t instanceof Map?n[rt]=Object.fromEntries(t.entries()):Nt(t)&&(n[rt]=t)),o&&typeof o=="object")if(o instanceof Map)for(let[s,a]of o.entries())a instanceof Map?n[s]=Object.fromEntries(a.entries()):Nt(a)&&(n[s]=a);else Fe(o)&&Object.assign(n,o);return n}async shouldIgnoreWorkspace(r){if(!r.manifest.name)return!1;let o=(await this.read(r.project))?.options;if(!o)return!1;let n=We.structUtils.stringifyIdent(r.manifest.name);return!!(o.ignoredWorkspaces&&(0,Jt.isMatch)(n,o.ignoredWorkspaces)||o.includedWorkspaces&&!(0,Jt.isMatch)(n,o.includedWorkspaces))}async writeToYarnrc(r,t){let o=nt.ppath.join(r.cwd,".yarnrc.yml"),n={};if(await nt.xfs.existsPromise(o)){let a=await nt.xfs.readFilePromise(o,"utf8");n=(0,bt.parseSyml)(a)||{}}t.root&&Object.keys(t.root).length>0?n.catalog=t.root:n.catalog=void 0,Object.keys(t.named).length>0?n.catalogs=t.named:n.catalogs=void 0;let s=(0,bt.stringifySyml)(n);await nt.xfs.writeFilePromise(o,s)}resolveAllCatalogs(r){let t={named:{}};for(let[o,n]of Object.entries(r.list))o===rt?t.root={...n}:t.named[o]=this.resolveInheritedCatalog(o,r.list);return t}resolveInheritedCatalog(r,t){let o=this.getInheritanceChain(r),n={};for(let s of o){let a=t[s];if(!a)throw new ot(`Parent group "${s}" not found in inheritance chain for "${r}"`,ot.INVALID_ALIAS);Object.assign(n,a)}return n}getInheritanceChain(r){let t=r.split("/"),o=[];for(let n=0;n{let s=await P.read(o);if(!s){a.reportError(0,"No catalogs.yml file found in project root. Please create one to use this command.");return}let f=P.resolveAllCatalogs(s),g=await qr(o);if(!Qr(g,f)){this.reportNoChanges(a);return}this.check?this.reportCheckFailure(a,g,f):await this.applyChanges(a,o,g,f)})).exitCode()}reportNoChanges(t){let o=this.check?j.green("\u2713 .yarnrc.yml is up to date"):"No changes to apply - .yarnrc.yml is already up to date";t.reportInfo(0,o)}reportCheckFailure(t,o,n){t.reportError(0,".yarnrc.yml is out of date. Run 'yarn catalogs apply' to update it."),Ve(t,o,n);let a=We(n.root?1:0,Object.keys(n.named).length);t.reportInfo(0,`Would apply ${a} to .yarnrc.yml`)}async applyChanges(t,o,n,a){Ve(t,n,a),await P.writeToYarnrc(o,a),P.clearCache(o);let s=We(a.root?1:0,Object.keys(a.named).length);t.reportInfo(0,j.green(`\u2713 Applied ${s} to .yarnrc.yml`))}};async function qr(e){let r=Ct.ppath.join(e.cwd,".yarnrc.yml");if(!await Ct.xfs.existsPromise(r))return{};let t=await Ct.xfs.readFilePromise(r,"utf8");return(0,_t.parseSyml)(t)||{}}function Qr(e,r){let t={...e};r.root&&Object.keys(r.root).length>0?t.catalog=r.root:t.catalog=void 0,Object.keys(r.named).length>0?t.catalogs=r.named:t.catalogs=void 0;let o=(0,_t.stringifySyml)(e),n=(0,_t.stringifySyml)(t);return o!==n}function We(e,r){let t=[];return e>0&&t.push("1 root catalog"),r>0&&t.push(`${r} named catalog group${r>1?"s":""}`),t.length===0?"no catalogs":t.join(" and ")}function Fe(e,r,t,o){let n=new Set([...Object.keys(t),...Object.keys(o)]);if(Array.from(n).some(s=>t[s]!==o[s])){e.reportInfo(0,j.bold(`${r}:`));for(let s of Array.from(n).sort()){let f=t[s],g=o[s];f?g?f!==g&&(e.reportInfo(0,j.red(` - ${s}: ${f}`)),e.reportInfo(0,j.green(` + ${s}: ${g}`))):e.reportInfo(0,j.red(` - ${s}: ${f}`)):e.reportInfo(0,j.green(` + ${s}: ${g}`))}}}function Ve(e,r,t){let o=r.catalog,n=r.catalogs;(t.root||o)&&Fe(e,"root catalog",o||{},t.root||{});let a=new Set([...Object.keys(n||{}),...Object.keys(t.named)]);for(let s of Array.from(a).sort())Fe(e,s,n?.[s]||{},t.named[s]||{})}var Gt=V("@yarnpkg/core");async function Ke(e){let r=await P.shouldIgnoreWorkspace(e),t=[...Object.values(e.manifest.raw.dependencies||{}),...Object.values(e.manifest.raw.devDependencies||{})].some(a=>a.startsWith(J)),o=r&&t,n=[];return r||(n=await Zr(e)),{shouldIgnore:r,catalogProtocolViolations:n,ignoredWorkspaceWithCatalogProtocol:o}}async function te(e,r){if(r.range.startsWith(J)||await P.shouldIgnoreWorkspace(e))return null;let t=await ee(e),o=Gt.structUtils.stringifyIdent(r),a=(await Ye(e.project,o)).flatMap(({groupName:f})=>t.length===0||t.includes(f)?[f]:[]);return a.length===0?null:{validationLevel:await Jr(e,o),applicableGroups:a}}async function Zr(e){let r=[...Object.entries(e.manifest.raw.dependencies??{}),...Object.entries(e.manifest.raw.devDependencies??{})].map(([o,n])=>{let a=Gt.structUtils.parseIdent(o);return Gt.structUtils.makeDescriptor(a,n)}),t=[];for(let o of r){let n=await te(e,o);n&&n.validationLevel!=="off"&&t.push({descriptor:o,validationLevel:n.validationLevel,applicableGroups:n.applicableGroups})}return t}async function zr(e,r){let o=(await P.getOptions(e.project))?.validation||"warn";if(typeof o=="string")return o;let n=P.getInheritanceChain(r);for(let a=n.length-1;a>=0;a--){let s=n[a];if(o[s]!==void 0)return o[s]}return"warn"}async function Jr(e,r){let t=(await Ye(e.project,r)).map(({groupName:n})=>n);if(t.length===0)return"off";let o=[];for(let n of t){let a=await zr(e,n);o.push(a)}return o.includes("strict")?"strict":o.includes("warn")?"warn":"off"}async function Ye(e,r){let t=await P.getAppliedCatalogs(e),o=[];if(!t||Object.keys(t).length===0)return o;for(let[n,a]of Object.entries(t)){let s=a[r];s&&o.push({groupName:n,version:s})}return o}async function re(e,r){if(r.range.startsWith(J)){if(await P.shouldIgnoreWorkspace(e))throw new Error(j.red("The workspace is ignored from the catalogs, but the dependency to add is using the catalog protocol. Consider removing the protocol."));return}let t=await te(e,r);if(!t)return;let{validationLevel:o,applicableGroups:n}=t,a=await ee(e);if(a.length>0){for(let A of a)if(n.includes(A)){let R=A===rt?J:`${J}${A}`;r.range=R;return}}let s=n.map(A=>A===rt?"":A),f=s.filter(A=>A!=="").length>0?` (${s.join(", ")})`:"",g=`\u27A4 ${r.name} is listed in the catalogs config${f}, but it seems you're adding it without the catalog protocol. Consider running 'yarn add ${r.name}@${J}${s[0]}' instead.`;if(o==="strict")throw new Error(j.red(g));o==="warn"&&console.warn(j.yellow(g))}async function ee(e){let r=await P.getOptions(e.project);if(r){if(await P.shouldIgnoreWorkspace(e))return[];if(r.default){if(Array.isArray(r.default))return r.default;if(r.default==="max"){let t=await P.getAppliedCatalogs(e.project),o=Object.keys(t||{}),n=[...Object.entries(e.manifest.raw.dependencies??{}),...Object.entries(e.manifest.raw.devDependencies??{})],a=Object.fromEntries(o.map(f=>[f,0]));for(let[f,g]of n)if(g.startsWith(J)){let A=g.substring(J.length);a[A]=(a[A]||0)+1}let s=Math.max(...Object.values(a));return Object.keys(a).filter(f=>a[f]===s)}}}return[]}var to={commands:[Ht],hooks:{validateWorkspace:async(e,r)=>{let t=await Ke(e);if(t.catalogProtocolViolations.length>0){let o=t.catalogProtocolViolations.filter(s=>s.validationLevel==="strict"),n=t.catalogProtocolViolations.filter(s=>s.validationLevel==="warn"),a=s=>`The following dependencies are listed in the catalogs but not using the catalog protocol: ${s.map(g=>j.yellow(dt.structUtils.stringifyDescriptor(g.descriptor))).join(", ")}. Consider using the catalog protocol instead.`;o.length>0&&r.reportError(dt.MessageName.INVALID_MANIFEST,a(o)),n.length>0&&r.reportWarning(dt.MessageName.INVALID_MANIFEST,a(n))}t.ignoredWorkspaceWithCatalogProtocol&&r.reportError(dt.MessageName.INVALID_MANIFEST,"Workspace is ignored from the catalogs, but it has dependencies with the catalog protocol. Consider removing the protocol.")},afterWorkspaceDependencyAddition:async(e,r,t)=>{re(e,t)},afterWorkspaceDependencyReplacement:async(e,r,t,o)=>{re(e,o)}}},eo=to;return rr(ro);})(); + `,examples:[["Apply catalogs to .yarnrc.yml","yarn catalogs apply"],["Check if .yarnrc.yml is up to date","yarn catalogs apply --check"]]})}async execute(){let t=await dt.Configuration.find(this.context.cwd,this.context.plugins),{project:o}=await dt.Project.find(t,this.context.cwd);return(await dt.StreamReport.start({configuration:t,stdout:this.context.stdout},async s=>{let a=await I.read(o);if(!a){s.reportError(0,"No catalogs.yml file found in project root. Please create one to use this command.");return}let f=I.resolveAllCatalogs(a),g=await te(o);if(!ee(g,f)){this.reportNoChanges(s);return}this.check?this.reportCheckFailure(s,g,f):await this.applyChanges(s,o,g,f)})).exitCode()}reportNoChanges(t){let o=this.check?D.green("\u2713 .yarnrc.yml is up to date"):"No changes to apply - .yarnrc.yml is already up to date";t.reportInfo(0,o)}reportCheckFailure(t,o,n){t.reportError(0,".yarnrc.yml is out of date. Run 'yarn catalogs apply' to update it."),Ke(t,o,n);let s=Ve(n.root?1:0,Object.keys(n.named).length);t.reportInfo(0,`Would apply ${s} to .yarnrc.yml`)}async applyChanges(t,o,n,s){Ke(t,n,s),await I.writeToYarnrc(o,s),I.clearCache(o);let a=Ve(s.root?1:0,Object.keys(s.named).length);t.reportInfo(0,D.green(`\u2713 Applied ${a} to .yarnrc.yml`))}};async function te(e){let r=Ct.ppath.join(e.cwd,".yarnrc.yml");if(!await Ct.xfs.existsPromise(r))return{};let t=await Ct.xfs.readFilePromise(r,"utf8");return(0,_t.parseSyml)(t)||{}}function ee(e,r){let t={...e};r.root&&Object.keys(r.root).length>0?t.catalog=r.root:t.catalog=void 0,Object.keys(r.named).length>0?t.catalogs=r.named:t.catalogs=void 0;let o=(0,_t.stringifySyml)(e),n=(0,_t.stringifySyml)(t);return o!==n}function Ve(e,r){let t=[];return e>0&&t.push("1 root catalog"),r>0&&t.push(`${r} named catalog group${r>1?"s":""}`),t.length===0?"no catalogs":t.join(" and ")}function Ue(e,r,t,o){let n=new Set([...Object.keys(t),...Object.keys(o)]);if(Array.from(n).some(a=>t[a]!==o[a])){e.reportInfo(0,D.bold(`${r}:`));for(let a of Array.from(n).sort()){let f=t[a],g=o[a];f?g?f!==g&&(e.reportInfo(0,D.red(` - ${a}: ${f}`)),e.reportInfo(0,D.green(` + ${a}: ${g}`))):e.reportInfo(0,D.red(` - ${a}: ${f}`)):e.reportInfo(0,D.green(` + ${a}: ${g}`))}}}function Ke(e,r,t){let o=r.catalog,n=r.catalogs;(t.root||o)&&Ue(e,"root catalog",o||{},t.root||{});let s=new Set([...Object.keys(n||{}),...Object.keys(t.named)]);for(let a of Array.from(s).sort())Ue(e,a,n?.[a]||{},t.named[a]||{})}var Gt=V("@yarnpkg/core");async function Xe(e){let r=await I.shouldIgnoreWorkspace(e),t=[...Object.values(e.manifest.raw.dependencies||{}),...Object.values(e.manifest.raw.devDependencies||{})].some(s=>s.startsWith(J)),o=r&&t,n=[];return r||(n=await Zr(e)),{shouldIgnore:r,catalogProtocolViolations:n,ignoredWorkspaceWithCatalogProtocol:o}}async function re(e,r){if(r.range.startsWith(J)||await I.shouldIgnoreWorkspace(e))return null;let t=await oe(e),o=Gt.structUtils.stringifyIdent(r),s=(await qe(e.project,o)).flatMap(({groupName:f})=>t.length===0||t.includes(f)?[f]:[]);return s.length===0?null:{validationLevel:await Jr(e,o),applicableGroups:s}}async function Zr(e){let r=[...Object.entries(e.manifest.raw.dependencies??{}),...Object.entries(e.manifest.raw.devDependencies??{})].map(([o,n])=>{let s=Gt.structUtils.parseIdent(o);return Gt.structUtils.makeDescriptor(s,n)}),t=[];for(let o of r){let n=await re(e,o);n&&n.validationLevel!=="off"&&t.push({descriptor:o,validationLevel:n.validationLevel,applicableGroups:n.applicableGroups})}return t}async function zr(e,r){let o=(await I.getOptions(e.project))?.validation||"warn";if(typeof o=="string")return o;let n=I.getInheritanceChain(r);for(let s=n.length-1;s>=0;s--){let a=n[s];if(o[a]!==void 0)return o[a]}return"warn"}async function Jr(e,r){let t=(await qe(e.project,r)).map(({groupName:n})=>n);if(t.length===0)return"off";let o=[];for(let n of t){let s=await zr(e,n);o.push(s)}return o.includes("strict")?"strict":o.includes("warn")?"warn":"off"}async function qe(e,r){let t=await I.getAppliedCatalogs(e),o=[];if(!t||Object.keys(t).length===0)return o;for(let[n,s]of Object.entries(t)){let a=s[r];a&&o.push({groupName:n,version:a})}return o}async function ne(e,r){if(r.range.startsWith(J)){if(await I.shouldIgnoreWorkspace(e))throw new Error(D.red("The workspace is ignored from the catalogs, but the dependency to add is using the catalog protocol. Consider removing the protocol."));return}let t=await re(e,r);if(!t)return;let{validationLevel:o,applicableGroups:n}=t,s=await oe(e);if(s.length>0){for(let A of s)if(n.includes(A)){let R=A===rt?J:`${J}${A}`;r.range=R;return}}let a=n.map(A=>A===rt?"":A),f=a.filter(A=>A!=="").length>0?` (${a.join(", ")})`:"",g=`\u27A4 ${r.name} is listed in the catalogs config${f}, but it seems you're adding it without the catalog protocol. Consider running 'yarn add ${r.name}@${J}${a[0]}' instead.`;if(o==="strict")throw new Error(D.red(g));o==="warn"&&console.warn(D.yellow(g))}async function oe(e){let r=await I.getOptions(e.project);if(r){if(await I.shouldIgnoreWorkspace(e))return[];if(r.default){if(Array.isArray(r.default))return r.default;if(r.default==="max"){let t=await I.getAppliedCatalogs(e.project),o=Object.keys(t||{}),n=[...Object.entries(e.manifest.raw.dependencies??{}),...Object.entries(e.manifest.raw.devDependencies??{})],s=Object.fromEntries(o.map(f=>[f,0]));for(let[f,g]of n)if(g.startsWith(J)){let A=g.substring(J.length);s[A]=(s[A]||0)+1}let a=Math.max(...Object.values(s));return Object.keys(s).filter(f=>s[f]===a)}}}return[]}var to={commands:[Ht],hooks:{validateProject:async(e,r)=>{let t=await I.read(e);if(!t)return;let o=I.resolveAllCatalogs(t),n=await te(e);ee(n,o)&&r.reportError(lt.MessageName.INVALID_MANIFEST,".yarnrc.yml is out of date. Run 'yarn catalogs apply' to update it.")},validateWorkspace:async(e,r)=>{let t=await Xe(e);if(t.catalogProtocolViolations.length>0){let o=t.catalogProtocolViolations.filter(a=>a.validationLevel==="strict"),n=t.catalogProtocolViolations.filter(a=>a.validationLevel==="warn"),s=a=>`The following dependencies are listed in the catalogs but not using the catalog protocol: ${a.map(g=>D.yellow(lt.structUtils.stringifyDescriptor(g.descriptor))).join(", ")}. Consider using the catalog protocol instead.`;o.length>0&&r.reportError(lt.MessageName.INVALID_MANIFEST,s(o)),n.length>0&&r.reportWarning(lt.MessageName.INVALID_MANIFEST,s(n))}t.ignoredWorkspaceWithCatalogProtocol&&r.reportError(lt.MessageName.INVALID_MANIFEST,"Workspace is ignored from the catalogs, but it has dependencies with the catalog protocol. Consider removing the protocol.")},afterWorkspaceDependencyAddition:async(e,r,t)=>{ne(e,t)},afterWorkspaceDependencyReplacement:async(e,r,t,o)=>{ne(e,o)}}},eo=to;return nr(ro);})(); return plugin; } }; diff --git a/sources/__tests__/validate-project.test.ts b/sources/__tests__/validate-project.test.ts new file mode 100644 index 0000000..fa1f9f7 --- /dev/null +++ b/sources/__tests__/validate-project.test.ts @@ -0,0 +1,69 @@ +import { afterEach, describe, expect, it } from "vitest"; +import { type TestWorkspace, createTestWorkspace } from "./utils"; + +describe("validateProject hook", () => { + let workspace: TestWorkspace; + + afterEach(async () => { + if (workspace) { + await workspace.cleanup(); + } + }); + + it("should pass validation when catalogs are in sync", async () => { + workspace = await createTestWorkspace(); + + await workspace.writeCatalogsYml({ + list: { + stable: { + react: "npm:18.0.0", + }, + }, + }); + + await workspace.yarn.catalogs.apply(); + + const { stderr } = await workspace.yarn.install(); + expect(stderr).toBe(""); + }); + + it("should pass validation when no catalogs.yml exists", async () => { + workspace = await createTestWorkspace(); + + const { stderr } = await workspace.yarn.install(); + expect(stderr).toBe(""); + }); + + it("should fail validation when catalogs are out of sync", async () => { + workspace = await createTestWorkspace(); + + await workspace.writeCatalogsYml({ + list: { + stable: { + react: "npm:18.0.0", + }, + }, + }); + + await expect(workspace.yarn.install()).rejects.toThrow(); + }); + + it("should pass validation after applying changes", async () => { + workspace = await createTestWorkspace(); + + await workspace.writeCatalogsYml({ + list: { + stable: { + react: "npm:18.0.0", + }, + }, + }); + + await expect(workspace.yarn.install()).rejects.toThrow(); + + await workspace.yarn.catalogs.apply(); + + const { stderr } = await workspace.yarn.install(); + expect(stderr).toBe(""); + }); +}); diff --git a/sources/commands/apply.ts b/sources/commands/apply.ts index 9f1b948..831a8f4 100644 --- a/sources/commands/apply.ts +++ b/sources/commands/apply.ts @@ -127,7 +127,7 @@ export class ApplyCommand extends BaseCommand { /** * Read existing .yarnrc.yml configuration */ -async function readExistingYarnrc( +export async function readExistingYarnrc( project: Project, ): Promise> { const yarnrcPath = ppath.join( @@ -146,7 +146,7 @@ async function readExistingYarnrc( /** * Check if there are changes between existing and resolved catalogs */ -function checkForChanges( +export function checkForChanges( existingConfig: Record, resolved: { root?: Record; diff --git a/sources/index.ts b/sources/index.ts index 8692193..d337dfd 100644 --- a/sources/index.ts +++ b/sources/index.ts @@ -3,18 +3,43 @@ import { type Hooks, MessageName, type Plugin, + type Project, type Workspace, structUtils, } from "@yarnpkg/core"; import type { Hooks as EssentialHooks } from "@yarnpkg/plugin-essentials"; import chalk from "chalk"; -import { ApplyCommand } from "./commands/apply"; +import { + ApplyCommand, + checkForChanges, + readExistingYarnrc, +} from "./commands/apply"; +import { configReader } from "./configuration"; import { fallbackDefaultAliasGroup } from "./utils/default"; import { validateWorkspace } from "./utils/validation"; const plugin: Plugin = { commands: [ApplyCommand], hooks: { + validateProject: async (project: Project, report) => { + const catalogsYml = await configReader.read(project); + + // Skip validation if no catalogs.yml exists + if (!catalogsYml) { + return; + } + + const resolved = configReader.resolveAllCatalogs(catalogsYml); + const existingConfig = await readExistingYarnrc(project); + const hasChanges = checkForChanges(existingConfig, resolved); + + if (hasChanges) { + report.reportError( + MessageName.INVALID_MANIFEST, + ".yarnrc.yml is out of date. Run 'yarn catalogs apply' to update it.", + ); + } + }, validateWorkspace: async (workspace: Workspace, report) => { const result = await validateWorkspace(workspace);