diff --git a/.eslintignore b/.eslintignore index 2f4ad0b4..93f17d2b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -22,7 +22,7 @@ circuits # production dist build -docs +/docs # misc .DS_Store diff --git a/.gitignore b/.gitignore index e50cafc3..3ba4537b 100644 --- a/.gitignore +++ b/.gitignore @@ -63,7 +63,11 @@ node_modules/ # Production build dist -docs +/docs + +# Docusaurus cache and generated files +.docusaurus +.cache-loader # Hardhat artifacts diff --git a/.prettierignore b/.prettierignore index bc9b12a7..489cff64 100644 --- a/.prettierignore +++ b/.prettierignore @@ -25,7 +25,7 @@ Verifier*.sol # production dist build -docs +/docs # github .github/ISSUE_TEMPLATE diff --git a/apps/docs/.yarn/install-state.gz b/apps/docs/.yarn/install-state.gz new file mode 100644 index 00000000..443013b2 Binary files /dev/null and b/apps/docs/.yarn/install-state.gz differ diff --git a/apps/docs/.yarn/releases/yarn-3.2.1.cjs b/apps/docs/.yarn/releases/yarn-3.2.1.cjs new file mode 100755 index 00000000..b3cadff6 --- /dev/null +++ b/apps/docs/.yarn/releases/yarn-3.2.1.cjs @@ -0,0 +1,786 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var ofe=Object.create,Kh=Object.defineProperty,afe=Object.defineProperties,Afe=Object.getOwnPropertyDescriptor,lfe=Object.getOwnPropertyDescriptors,cfe=Object.getOwnPropertyNames,ME=Object.getOwnPropertySymbols,ufe=Object.getPrototypeOf,gQ=Object.prototype.hasOwnProperty,nM=Object.prototype.propertyIsEnumerable;var sM=(t,e,r)=>e in t?Kh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,N=(t,e)=>{for(var r in e||(e={}))gQ.call(e,r)&&sM(t,r,e[r]);if(ME)for(var r of ME(e))nM.call(e,r)&&sM(t,r,e[r]);return t},ie=(t,e)=>afe(t,lfe(e)),gfe=t=>Kh(t,"__esModule",{value:!0});var Tr=(t,e)=>{var r={};for(var i in t)gQ.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&ME)for(var i of ME(t))e.indexOf(i)<0&&nM.call(t,i)&&(r[i]=t[i]);return r},ffe=(t,e)=>()=>(t&&(e=t(t=0)),e),w=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ft=(t,e)=>{for(var r in e)Kh(t,r,{get:e[r],enumerable:!0})},hfe=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of cfe(e))!gQ.call(t,i)&&i!=="default"&&Kh(t,i,{get:()=>e[i],enumerable:!(r=Afe(e,i))||r.enumerable});return t},ge=t=>hfe(gfe(Kh(t!=null?ofe(ufe(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var DM=w((ZXe,SM)=>{SM.exports=kM;kM.sync=Dfe;var xM=require("fs");function Rfe(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var i=0;i{RM.exports=FM;FM.sync=Ffe;var NM=require("fs");function FM(t,e,r){NM.stat(t,function(i,n){r(i,i?!1:LM(n,e))})}function Ffe(t,e){return LM(NM.statSync(t),e)}function LM(t,e){return t.isFile()&&Nfe(t,e)}function Nfe(t,e){var r=t.mode,i=t.uid,n=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=r&c||r&l&&n===o||r&a&&i===s||r&u&&s===0;return g}});var MM=w((tZe,OM)=>{var eZe=require("fs"),ZE;process.platform==="win32"||global.TESTING_WINDOWS?ZE=DM():ZE=TM();OM.exports=xQ;xQ.sync=Lfe;function xQ(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){xQ(t,e||{},function(s,o){s?n(s):i(o)})})}ZE(t,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),r(i,n)})}function Lfe(t,e){try{return ZE.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var qM=w((rZe,KM)=>{var zu=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",UM=require("path"),Tfe=zu?";":":",HM=MM(),GM=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),jM=(t,e)=>{let r=e.colon||Tfe,i=t.match(/\//)||zu&&t.match(/\\/)?[""]:[...zu?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],n=zu?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=zu?n.split(r):[""];return zu&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},YM=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=jM(t,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(GM(t));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=UM.join(h,t),m=!h&&/^\.[\\\/]/.test(t)?t.slice(0,2)+p:p;u(l(m,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];HM(c+p,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return r?a(0).then(c=>r(null,c),r):a(0)},Ofe=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:i,pathExtExe:n}=jM(t,e),s=[];for(let o=0;o{"use strict";var JM=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};PQ.exports=JM;PQ.exports.default=JM});var XM=w((nZe,zM)=>{"use strict";var _M=require("path"),Mfe=qM(),Kfe=WM();function VM(t,e){let r=t.options.env||process.env,i=process.cwd(),n=t.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch(a){}let o;try{o=Mfe.sync(t.command,{path:r[Kfe({env:r})],pathExt:e?_M.delimiter:void 0})}catch(a){}finally{s&&process.chdir(i)}return o&&(o=_M.resolve(n?t.options.cwd:"",o)),o}function Ufe(t){return VM(t)||VM(t,!0)}zM.exports=Ufe});var ZM=w((sZe,DQ)=>{"use strict";var RQ=/([()\][%!^"`<>&|;, *?])/g;function Hfe(t){return t=t.replace(RQ,"^$1"),t}function Gfe(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(RQ,"^$1"),e&&(t=t.replace(RQ,"^$1")),t}DQ.exports.command=Hfe;DQ.exports.argument=Gfe});var eK=w((oZe,$M)=>{"use strict";$M.exports=/^#!(.*)/});var rK=w((aZe,tK)=>{"use strict";var jfe=eK();tK.exports=(t="")=>{let e=t.match(jfe);if(!e)return null;let[r,i]=e[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var nK=w((AZe,iK)=>{"use strict";var FQ=require("fs"),Yfe=rK();function qfe(t){let e=150,r=Buffer.alloc(e),i;try{i=FQ.openSync(t,"r"),FQ.readSync(i,r,0,e,0),FQ.closeSync(i)}catch(n){}return Yfe(r.toString())}iK.exports=qfe});var AK=w((lZe,sK)=>{"use strict";var Jfe=require("path"),oK=XM(),aK=ZM(),Wfe=nK(),zfe=process.platform==="win32",_fe=/\.(?:com|exe)$/i,Vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Xfe(t){t.file=oK(t);let e=t.file&&Wfe(t.file);return e?(t.args.unshift(t.file),t.command=e,oK(t)):t.file}function Zfe(t){if(!zfe)return t;let e=Xfe(t),r=!_fe.test(e);if(t.options.forceShell||r){let i=Vfe.test(e);t.command=Jfe.normalize(t.command),t.command=aK.command(t.command),t.args=t.args.map(s=>aK.argument(s,i));let n=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${n}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function $fe(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let i={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?i:Zfe(i)}sK.exports=$fe});var uK=w((cZe,lK)=>{"use strict";var NQ=process.platform==="win32";function LQ(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function ehe(t,e){if(!NQ)return;let r=t.emit;t.emit=function(i,n){if(i==="exit"){let s=cK(n,e,"spawn");if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function cK(t,e){return NQ&&t===1&&!e.file?LQ(e.original,"spawn"):null}function the(t,e){return NQ&&t===1&&!e.file?LQ(e.original,"spawnSync"):null}lK.exports={hookChildProcess:ehe,verifyENOENT:cK,verifyENOENTSync:the,notFoundError:LQ}});var MQ=w((uZe,_u)=>{"use strict";var gK=require("child_process"),TQ=AK(),OQ=uK();function fK(t,e,r){let i=TQ(t,e,r),n=gK.spawn(i.command,i.args,i.options);return OQ.hookChildProcess(n,i),n}function rhe(t,e,r){let i=TQ(t,e,r),n=gK.spawnSync(i.command,i.args,i.options);return n.error=n.error||OQ.verifyENOENTSync(n.status,i),n}_u.exports=fK;_u.exports.spawn=fK;_u.exports.sync=rhe;_u.exports._parse=TQ;_u.exports._enoent=OQ});var pK=w((gZe,hK)=>{"use strict";function ihe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function sc(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,sc)}ihe(sc,Error);sc.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ce=Ee(">>",!1),fe=">&",gt=Ee(">&",!1),Ht=">",Mt=Ee(">",!1),mi="<<<",Gt=Ee("<<<",!1),Qr="<&",Ti=Ee("<&",!1),Vs="<",Un=Ee("<",!1),Hn=function(C){return{type:"argument",segments:[].concat(...C)}},vr=function(C){return C},Gn="$'",gs=Ee("$'",!1),ya="'",kA=Ee("'",!1),Ru=function(C){return[{type:"text",text:C}]},fs='""',xA=Ee('""',!1),wa=function(){return{type:"text",text:""}},Fu='"',PA=Ee('"',!1),DA=function(C){return C},Sr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},jl=function(C){return{type:"shell",shell:C,quoted:!0}},Nu=function(C){return ie(N({type:"variable"},C),{quoted:!0})},So=function(C){return{type:"text",text:C}},Lu=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Sh=function(C){return{type:"shell",shell:C,quoted:!1}},kh=function(C){return ie(N({type:"variable"},C),{quoted:!1})},ae=function(C){return{type:"glob",pattern:C}},Oi=/^[^']/,ko=_e(["'"],!0,!1),jn=function(C){return C.join("")},Tu=/^[^$"]/,vt=_e(["$",'"'],!0,!1),Yl=`\\ +`,Yn=Ee(`\\ +`,!1),hs=function(){return""},ps="\\",pt=Ee("\\",!1),xo=/^[\\$"`]/,lt=_e(["\\","$",'"',"`"],!1,!1),mn=function(C){return C},v="\\a",Tt=Ee("\\a",!1),Ou=function(){return"a"},ql="\\b",xh=Ee("\\b",!1),Ph=function(){return"\b"},Dh=/^[Ee]/,Rh=_e(["E","e"],!1,!1),Fh=function(){return""},G="\\f",yt=Ee("\\f",!1),RA=function(){return"\f"},$i="\\n",Jl=Ee("\\n",!1),$e=function(){return` +`},Ba="\\r",Mu=Ee("\\r",!1),kE=function(){return"\r"},Nh="\\t",xE=Ee("\\t",!1),gr=function(){return" "},qn="\\v",Wl=Ee("\\v",!1),Lh=function(){return"\v"},Xs=/^[\\'"?]/,ba=_e(["\\","'",'"',"?"],!1,!1),En=function(C){return String.fromCharCode(parseInt(C,16))},Me="\\x",Ku=Ee("\\x",!1),zl="\\u",Zs=Ee("\\u",!1),_l="\\U",FA=Ee("\\U",!1),Uu=function(C){return String.fromCodePoint(parseInt(C,16))},Hu=/^[0-7]/,Qa=_e([["0","7"]],!1,!1),va=/^[0-9a-fA-f]/,it=_e([["0","9"],["a","f"],["A","f"]],!1,!1),Po=ot(),NA="-",Vl=Ee("-",!1),$s="+",Xl=Ee("+",!1),PE=".",Th=Ee(".",!1),Gu=function(C,Q,F){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+F.join(""))}},Oh=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},DE=function(C){return N({type:"variable"},C)},Zl=function(C){return{type:"variable",name:C}},RE=function(C){return C},ju="*",LA=Ee("*",!1),Lr="/",FE=Ee("/",!1),eo=function(C,Q,F){return{type:Q==="*"?"multiplication":"division",right:F}},to=function(C,Q){return Q.reduce((F,U)=>N({left:F},U),C)},Yu=function(C,Q,F){return{type:Q==="+"?"addition":"subtraction",right:F}},TA="$((",R=Ee("$((",!1),q="))",me=Ee("))",!1),Ge=function(C){return C},Te="$(",Xe=Ee("$(",!1),Et=function(C){return C},Rt="${",Jn=Ee("${",!1),_b=":-",PO=Ee(":-",!1),DO=function(C,Q){return{name:C,defaultValue:Q}},Vb=":-}",RO=Ee(":-}",!1),FO=function(C){return{name:C,defaultValue:[]}},Xb=":+",NO=Ee(":+",!1),LO=function(C,Q){return{name:C,alternativeValue:Q}},Zb=":+}",TO=Ee(":+}",!1),OO=function(C){return{name:C,alternativeValue:[]}},$b=function(C){return{name:C}},MO="$",KO=Ee("$",!1),UO=function(C){return e.isGlobPattern(C)},HO=function(C){return C},eQ=/^[a-zA-Z0-9_]/,tQ=_e([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),rQ=function(){return M()},iQ=/^[$@*?#a-zA-Z0-9_\-]/,nQ=_e(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),GO=/^[(){}<>$|&; \t"']/,qu=_e(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),sQ=/^[<>&; \t"']/,oQ=_e(["<",">","&",";"," "," ",'"',"'"],!1,!1),NE=/^[ \t]/,LE=_e([" "," "],!1,!1),B=0,He=0,OA=[{line:1,column:1}],d=0,E=[],I=0,D;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function M(){return t.substring(He,B)}function _(){return It(He,B)}function ne(C,Q){throw Q=Q!==void 0?Q:It(He,B),Mi([ut(C)],t.substring(He,B),Q)}function Be(C,Q){throw Q=Q!==void 0?Q:It(He,B),Wn(C,Q)}function Ee(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function _e(C,Q,F){return{type:"class",parts:C,inverted:Q,ignoreCase:F}}function ot(){return{type:"any"}}function wt(){return{type:"end"}}function ut(C){return{type:"other",description:C}}function nt(C){var Q=OA[C],F;if(Q)return Q;for(F=C-1;!OA[F];)F--;for(Q=OA[F],Q={line:Q.line,column:Q.column};Fd&&(d=B,E=[]),E.push(C))}function Wn(C,Q){return new sc(C,null,null,Q)}function Mi(C,Q,F){return new sc(sc.buildMessage(C,Q),C,Q,F)}function MA(){var C,Q;return C=B,Q=Yr(),Q===r&&(Q=null),Q!==r&&(He=C,Q=s(Q)),C=Q,C}function Yr(){var C,Q,F,U,ue;if(C=B,Q=qr(),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();F!==r?(U=Sa(),U!==r?(ue=ds(),ue===r&&(ue=null),ue!==r?(He=C,Q=o(Q,U,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;if(C===r)if(C=B,Q=qr(),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();F!==r?(U=Sa(),U===r&&(U=null),U!==r?(He=C,Q=a(Q,U),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;return C}function ds(){var C,Q,F,U,ue;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(F=Yr(),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=l(F),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r;return C}function Sa(){var C;return t.charCodeAt(B)===59?(C=c,B++):(C=r,I===0&&ke(u)),C===r&&(t.charCodeAt(B)===38?(C=g,B++):(C=r,I===0&&ke(f))),C}function qr(){var C,Q,F;return C=B,Q=jO(),Q!==r?(F=jge(),F===r&&(F=null),F!==r?(He=C,Q=h(Q,F),C=Q):(B=C,C=r)):(B=C,C=r),C}function jge(){var C,Q,F,U,ue,De,Ct;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(F=Yge(),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=qr(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();De!==r?(He=C,Q=p(F,ue),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;return C}function Yge(){var C;return t.substr(B,2)===m?(C=m,B+=2):(C=r,I===0&&ke(y)),C===r&&(t.substr(B,2)===b?(C=b,B+=2):(C=r,I===0&&ke(S))),C}function jO(){var C,Q,F;return C=B,Q=Wge(),Q!==r?(F=qge(),F===r&&(F=null),F!==r?(He=C,Q=k(Q,F),C=Q):(B=C,C=r)):(B=C,C=r),C}function qge(){var C,Q,F,U,ue,De,Ct;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(F=Jge(),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=jO(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();De!==r?(He=C,Q=T(F,ue),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;return C}function Jge(){var C;return t.substr(B,2)===Y?(C=Y,B+=2):(C=r,I===0&&ke(j)),C===r&&(t.charCodeAt(B)===124?(C=Z,B++):(C=r,I===0&&ke(J))),C}function TE(){var C,Q,F,U,ue,De;if(C=B,Q=tM(),Q!==r)if(t.charCodeAt(B)===61?(F=re,B++):(F=r,I===0&&ke(ee)),F!==r)if(U=JO(),U!==r){for(ue=[],De=je();De!==r;)ue.push(De),De=je();ue!==r?(He=C,Q=A(Q,U),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r;else B=C,C=r;if(C===r)if(C=B,Q=tM(),Q!==r)if(t.charCodeAt(B)===61?(F=re,B++):(F=r,I===0&&ke(ee)),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=oe(Q),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r;return C}function Wge(){var C,Q,F,U,ue,De,Ct,bt,$r,Ei,Cs;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(t.charCodeAt(B)===40?(F=le,B++):(F=r,I===0&&ke(X)),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=Yr(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();if(De!==r)if(t.charCodeAt(B)===41?(Ct=O,B++):(Ct=r,I===0&&ke(L)),Ct!==r){for(bt=[],$r=je();$r!==r;)bt.push($r),$r=je();if(bt!==r){for($r=[],Ei=Mh();Ei!==r;)$r.push(Ei),Ei=Mh();if($r!==r){for(Ei=[],Cs=je();Cs!==r;)Ei.push(Cs),Cs=je();Ei!==r?(He=C,Q=pe(ue,$r),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;if(C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(t.charCodeAt(B)===123?(F=Ce,B++):(F=r,I===0&&ke(Oe)),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=Yr(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();if(De!==r)if(t.charCodeAt(B)===125?(Ct=te,B++):(Ct=r,I===0&&ke(se)),Ct!==r){for(bt=[],$r=je();$r!==r;)bt.push($r),$r=je();if(bt!==r){for($r=[],Ei=Mh();Ei!==r;)$r.push(Ei),Ei=Mh();if($r!==r){for(Ei=[],Cs=je();Cs!==r;)Ei.push(Cs),Cs=je();Ei!==r?(He=C,Q=be(ue,$r),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;if(C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r){for(F=[],U=TE();U!==r;)F.push(U),U=TE();if(F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r){if(ue=[],De=qO(),De!==r)for(;De!==r;)ue.push(De),De=qO();else ue=r;if(ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();De!==r?(He=C,Q=he(F,ue),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}else B=C,C=r}else B=C,C=r;if(C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r){if(F=[],U=TE(),U!==r)for(;U!==r;)F.push(U),U=TE();else F=r;if(F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=Fe(F),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}}}return C}function YO(){var C,Q,F,U,ue;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r){if(F=[],U=OE(),U!==r)for(;U!==r;)F.push(U),U=OE();else F=r;if(F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=Ue(F),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r;return C}function qO(){var C,Q,F;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r?(F=Mh(),F!==r?(He=C,Q=xe(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();Q!==r?(F=OE(),F!==r?(He=C,Q=xe(F),C=Q):(B=C,C=r)):(B=C,C=r)}return C}function Mh(){var C,Q,F,U,ue;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();return Q!==r?(Se.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(de)),F===r&&(F=null),F!==r?(U=zge(),U!==r?(ue=OE(),ue!==r?(He=C,Q=V(F,U,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function zge(){var C;return t.substr(B,2)===Qe?(C=Qe,B+=2):(C=r,I===0&&ke(ce)),C===r&&(t.substr(B,2)===fe?(C=fe,B+=2):(C=r,I===0&&ke(gt)),C===r&&(t.charCodeAt(B)===62?(C=Ht,B++):(C=r,I===0&&ke(Mt)),C===r&&(t.substr(B,3)===mi?(C=mi,B+=3):(C=r,I===0&&ke(Gt)),C===r&&(t.substr(B,2)===Qr?(C=Qr,B+=2):(C=r,I===0&&ke(Ti)),C===r&&(t.charCodeAt(B)===60?(C=Vs,B++):(C=r,I===0&&ke(Un))))))),C}function OE(){var C,Q,F;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();return Q!==r?(F=JO(),F!==r?(He=C,Q=xe(F),C=Q):(B=C,C=r)):(B=C,C=r),C}function JO(){var C,Q,F;if(C=B,Q=[],F=WO(),F!==r)for(;F!==r;)Q.push(F),F=WO();else Q=r;return Q!==r&&(He=C,Q=Hn(Q)),C=Q,C}function WO(){var C,Q;return C=B,Q=_ge(),Q!==r&&(He=C,Q=vr(Q)),C=Q,C===r&&(C=B,Q=Vge(),Q!==r&&(He=C,Q=vr(Q)),C=Q,C===r&&(C=B,Q=Xge(),Q!==r&&(He=C,Q=vr(Q)),C=Q,C===r&&(C=B,Q=Zge(),Q!==r&&(He=C,Q=vr(Q)),C=Q))),C}function _ge(){var C,Q,F,U;return C=B,t.substr(B,2)===Gn?(Q=Gn,B+=2):(Q=r,I===0&&ke(gs)),Q!==r?(F=tfe(),F!==r?(t.charCodeAt(B)===39?(U=ya,B++):(U=r,I===0&&ke(kA)),U!==r?(He=C,Q=Ru(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function Vge(){var C,Q,F,U;return C=B,t.charCodeAt(B)===39?(Q=ya,B++):(Q=r,I===0&&ke(kA)),Q!==r?(F=$ge(),F!==r?(t.charCodeAt(B)===39?(U=ya,B++):(U=r,I===0&&ke(kA)),U!==r?(He=C,Q=Ru(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function Xge(){var C,Q,F,U;if(C=B,t.substr(B,2)===fs?(Q=fs,B+=2):(Q=r,I===0&&ke(xA)),Q!==r&&(He=C,Q=wa()),C=Q,C===r)if(C=B,t.charCodeAt(B)===34?(Q=Fu,B++):(Q=r,I===0&&ke(PA)),Q!==r){for(F=[],U=zO();U!==r;)F.push(U),U=zO();F!==r?(t.charCodeAt(B)===34?(U=Fu,B++):(U=r,I===0&&ke(PA)),U!==r?(He=C,Q=DA(F),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;return C}function Zge(){var C,Q,F;if(C=B,Q=[],F=_O(),F!==r)for(;F!==r;)Q.push(F),F=_O();else Q=r;return Q!==r&&(He=C,Q=DA(Q)),C=Q,C}function zO(){var C,Q;return C=B,Q=$O(),Q!==r&&(He=C,Q=Sr(Q)),C=Q,C===r&&(C=B,Q=eM(),Q!==r&&(He=C,Q=jl(Q)),C=Q,C===r&&(C=B,Q=cQ(),Q!==r&&(He=C,Q=Nu(Q)),C=Q,C===r&&(C=B,Q=efe(),Q!==r&&(He=C,Q=So(Q)),C=Q))),C}function _O(){var C,Q;return C=B,Q=$O(),Q!==r&&(He=C,Q=Lu(Q)),C=Q,C===r&&(C=B,Q=eM(),Q!==r&&(He=C,Q=Sh(Q)),C=Q,C===r&&(C=B,Q=cQ(),Q!==r&&(He=C,Q=kh(Q)),C=Q,C===r&&(C=B,Q=nfe(),Q!==r&&(He=C,Q=ae(Q)),C=Q,C===r&&(C=B,Q=ife(),Q!==r&&(He=C,Q=So(Q)),C=Q)))),C}function $ge(){var C,Q,F;for(C=B,Q=[],Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko));F!==r;)Q.push(F),Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko));return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function efe(){var C,Q,F;if(C=B,Q=[],F=VO(),F===r&&(Tu.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(vt))),F!==r)for(;F!==r;)Q.push(F),F=VO(),F===r&&(Tu.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(vt)));else Q=r;return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function VO(){var C,Q,F;return C=B,t.substr(B,2)===Yl?(Q=Yl,B+=2):(Q=r,I===0&&ke(Yn)),Q!==r&&(He=C,Q=hs()),C=Q,C===r&&(C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(xo.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(lt)),F!==r?(He=C,Q=mn(F),C=Q):(B=C,C=r)):(B=C,C=r)),C}function tfe(){var C,Q,F;for(C=B,Q=[],F=XO(),F===r&&(Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko)));F!==r;)Q.push(F),F=XO(),F===r&&(Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko)));return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function XO(){var C,Q,F;return C=B,t.substr(B,2)===v?(Q=v,B+=2):(Q=r,I===0&&ke(Tt)),Q!==r&&(He=C,Q=Ou()),C=Q,C===r&&(C=B,t.substr(B,2)===ql?(Q=ql,B+=2):(Q=r,I===0&&ke(xh)),Q!==r&&(He=C,Q=Ph()),C=Q,C===r&&(C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(Dh.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(Rh)),F!==r?(He=C,Q=Fh(),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===G?(Q=G,B+=2):(Q=r,I===0&&ke(yt)),Q!==r&&(He=C,Q=RA()),C=Q,C===r&&(C=B,t.substr(B,2)===$i?(Q=$i,B+=2):(Q=r,I===0&&ke(Jl)),Q!==r&&(He=C,Q=$e()),C=Q,C===r&&(C=B,t.substr(B,2)===Ba?(Q=Ba,B+=2):(Q=r,I===0&&ke(Mu)),Q!==r&&(He=C,Q=kE()),C=Q,C===r&&(C=B,t.substr(B,2)===Nh?(Q=Nh,B+=2):(Q=r,I===0&&ke(xE)),Q!==r&&(He=C,Q=gr()),C=Q,C===r&&(C=B,t.substr(B,2)===qn?(Q=qn,B+=2):(Q=r,I===0&&ke(Wl)),Q!==r&&(He=C,Q=Lh()),C=Q,C===r&&(C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(Xs.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ba)),F!==r?(He=C,Q=mn(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=rfe()))))))))),C}function rfe(){var C,Q,F,U,ue,De,Ct,bt,$r,Ei,Cs,uQ;return C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(F=aQ(),F!==r?(He=C,Q=En(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Me?(Q=Me,B+=2):(Q=r,I===0&&ke(Ku)),Q!==r?(F=B,U=B,ue=aQ(),ue!==r?(De=zn(),De!==r?(ue=[ue,De],U=ue):(B=U,U=r)):(B=U,U=r),U===r&&(U=aQ()),U!==r?F=t.substring(F,B):F=U,F!==r?(He=C,Q=En(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===zl?(Q=zl,B+=2):(Q=r,I===0&&ke(Zs)),Q!==r?(F=B,U=B,ue=zn(),ue!==r?(De=zn(),De!==r?(Ct=zn(),Ct!==r?(bt=zn(),bt!==r?(ue=[ue,De,Ct,bt],U=ue):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r),U!==r?F=t.substring(F,B):F=U,F!==r?(He=C,Q=En(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===_l?(Q=_l,B+=2):(Q=r,I===0&&ke(FA)),Q!==r?(F=B,U=B,ue=zn(),ue!==r?(De=zn(),De!==r?(Ct=zn(),Ct!==r?(bt=zn(),bt!==r?($r=zn(),$r!==r?(Ei=zn(),Ei!==r?(Cs=zn(),Cs!==r?(uQ=zn(),uQ!==r?(ue=[ue,De,Ct,bt,$r,Ei,Cs,uQ],U=ue):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r),U!==r?F=t.substring(F,B):F=U,F!==r?(He=C,Q=Uu(F),C=Q):(B=C,C=r)):(B=C,C=r)))),C}function aQ(){var C;return Hu.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(Qa)),C}function zn(){var C;return va.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(it)),C}function ife(){var C,Q,F,U,ue;if(C=B,Q=[],F=B,t.charCodeAt(B)===92?(U=ps,B++):(U=r,I===0&&ke(pt)),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r),F===r&&(F=B,U=B,I++,ue=rM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r)),F!==r)for(;F!==r;)Q.push(F),F=B,t.charCodeAt(B)===92?(U=ps,B++):(U=r,I===0&&ke(pt)),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r),F===r&&(F=B,U=B,I++,ue=rM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r));else Q=r;return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function AQ(){var C,Q,F,U,ue,De;if(C=B,t.charCodeAt(B)===45?(Q=NA,B++):(Q=r,I===0&&ke(Vl)),Q===r&&(t.charCodeAt(B)===43?(Q=$s,B++):(Q=r,I===0&&ke(Xl))),Q===r&&(Q=null),Q!==r){if(F=[],Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de)),U!==r)for(;U!==r;)F.push(U),Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de));else F=r;if(F!==r)if(t.charCodeAt(B)===46?(U=PE,B++):(U=r,I===0&&ke(Th)),U!==r){if(ue=[],Se.test(t.charAt(B))?(De=t.charAt(B),B++):(De=r,I===0&&ke(de)),De!==r)for(;De!==r;)ue.push(De),Se.test(t.charAt(B))?(De=t.charAt(B),B++):(De=r,I===0&&ke(de));else ue=r;ue!==r?(He=C,Q=Gu(Q,F,ue),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;if(C===r){if(C=B,t.charCodeAt(B)===45?(Q=NA,B++):(Q=r,I===0&&ke(Vl)),Q===r&&(t.charCodeAt(B)===43?(Q=$s,B++):(Q=r,I===0&&ke(Xl))),Q===r&&(Q=null),Q!==r){if(F=[],Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de)),U!==r)for(;U!==r;)F.push(U),Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de));else F=r;F!==r?(He=C,Q=Oh(Q,F),C=Q):(B=C,C=r)}else B=C,C=r;if(C===r&&(C=B,Q=cQ(),Q!==r&&(He=C,Q=DE(Q)),C=Q,C===r&&(C=B,Q=$l(),Q!==r&&(He=C,Q=Zl(Q)),C=Q,C===r)))if(C=B,t.charCodeAt(B)===40?(Q=le,B++):(Q=r,I===0&&ke(X)),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();if(F!==r)if(U=ZO(),U!==r){for(ue=[],De=je();De!==r;)ue.push(De),De=je();ue!==r?(t.charCodeAt(B)===41?(De=O,B++):(De=r,I===0&&ke(L)),De!==r?(He=C,Q=RE(U),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r}return C}function lQ(){var C,Q,F,U,ue,De,Ct,bt;if(C=B,Q=AQ(),Q!==r){for(F=[],U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===42?(De=ju,B++):(De=r,I===0&&ke(LA)),De===r&&(t.charCodeAt(B)===47?(De=Lr,B++):(De=r,I===0&&ke(FE))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=AQ(),bt!==r?(He=U,ue=eo(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r;for(;U!==r;){for(F.push(U),U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===42?(De=ju,B++):(De=r,I===0&&ke(LA)),De===r&&(t.charCodeAt(B)===47?(De=Lr,B++):(De=r,I===0&&ke(FE))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=AQ(),bt!==r?(He=U,ue=eo(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r}F!==r?(He=C,Q=to(Q,F),C=Q):(B=C,C=r)}else B=C,C=r;return C}function ZO(){var C,Q,F,U,ue,De,Ct,bt;if(C=B,Q=lQ(),Q!==r){for(F=[],U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===43?(De=$s,B++):(De=r,I===0&&ke(Xl)),De===r&&(t.charCodeAt(B)===45?(De=NA,B++):(De=r,I===0&&ke(Vl))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=lQ(),bt!==r?(He=U,ue=Yu(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r;for(;U!==r;){for(F.push(U),U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===43?(De=$s,B++):(De=r,I===0&&ke(Xl)),De===r&&(t.charCodeAt(B)===45?(De=NA,B++):(De=r,I===0&&ke(Vl))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=lQ(),bt!==r?(He=U,ue=Yu(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r}F!==r?(He=C,Q=to(Q,F),C=Q):(B=C,C=r)}else B=C,C=r;return C}function $O(){var C,Q,F,U,ue,De;if(C=B,t.substr(B,3)===TA?(Q=TA,B+=3):(Q=r,I===0&&ke(R)),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();if(F!==r)if(U=ZO(),U!==r){for(ue=[],De=je();De!==r;)ue.push(De),De=je();ue!==r?(t.substr(B,2)===q?(De=q,B+=2):(De=r,I===0&&ke(me)),De!==r?(He=C,Q=Ge(U),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;return C}function eM(){var C,Q,F,U;return C=B,t.substr(B,2)===Te?(Q=Te,B+=2):(Q=r,I===0&&ke(Xe)),Q!==r?(F=Yr(),F!==r?(t.charCodeAt(B)===41?(U=O,B++):(U=r,I===0&&ke(L)),U!==r?(He=C,Q=Et(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function cQ(){var C,Q,F,U,ue,De;return C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,2)===_b?(U=_b,B+=2):(U=r,I===0&&ke(PO)),U!==r?(ue=YO(),ue!==r?(t.charCodeAt(B)===125?(De=te,B++):(De=r,I===0&&ke(se)),De!==r?(He=C,Q=DO(F,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,3)===Vb?(U=Vb,B+=3):(U=r,I===0&&ke(RO)),U!==r?(He=C,Q=FO(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,2)===Xb?(U=Xb,B+=2):(U=r,I===0&&ke(NO)),U!==r?(ue=YO(),ue!==r?(t.charCodeAt(B)===125?(De=te,B++):(De=r,I===0&&ke(se)),De!==r?(He=C,Q=LO(F,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,3)===Zb?(U=Zb,B+=3):(U=r,I===0&&ke(TO)),U!==r?(He=C,Q=OO(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.charCodeAt(B)===125?(U=te,B++):(U=r,I===0&&ke(se)),U!==r?(He=C,Q=$b(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.charCodeAt(B)===36?(Q=MO,B++):(Q=r,I===0&&ke(KO)),Q!==r?(F=$l(),F!==r?(He=C,Q=$b(F),C=Q):(B=C,C=r)):(B=C,C=r)))))),C}function nfe(){var C,Q,F;return C=B,Q=sfe(),Q!==r?(He=B,F=UO(Q),F?F=void 0:F=r,F!==r?(He=C,Q=HO(Q),C=Q):(B=C,C=r)):(B=C,C=r),C}function sfe(){var C,Q,F,U,ue;if(C=B,Q=[],F=B,U=B,I++,ue=iM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r),F!==r)for(;F!==r;)Q.push(F),F=B,U=B,I++,ue=iM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r);else Q=r;return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function tM(){var C,Q,F;if(C=B,Q=[],eQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(tQ)),F!==r)for(;F!==r;)Q.push(F),eQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(tQ));else Q=r;return Q!==r&&(He=C,Q=rQ()),C=Q,C}function $l(){var C,Q,F;if(C=B,Q=[],iQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(nQ)),F!==r)for(;F!==r;)Q.push(F),iQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(nQ));else Q=r;return Q!==r&&(He=C,Q=rQ()),C=Q,C}function rM(){var C;return GO.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(qu)),C}function iM(){var C;return sQ.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(oQ)),C}function je(){var C,Q;if(C=[],NE.test(t.charAt(B))?(Q=t.charAt(B),B++):(Q=r,I===0&&ke(LE)),Q!==r)for(;Q!==r;)C.push(Q),NE.test(t.charAt(B))?(Q=t.charAt(B),B++):(Q=r,I===0&&ke(LE));else C=r;return C}if(D=n(),D!==r&&B===t.length)return D;throw D!==r&&B{"use strict";function she(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ac(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}she(ac,Error);ac.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gY&&(Y=S,j=[]),j.push(de))}function se(de,V){return new ac(de,null,null,V)}function be(de,V,Qe){return new ac(ac.buildMessage(de,V),de,V,Qe)}function he(){var de,V,Qe,ce;return de=S,V=Fe(),V!==r?(t.charCodeAt(S)===47?(Qe=s,S++):(Qe=r,Z===0&&te(o)),Qe!==r?(ce=Fe(),ce!==r?(k=de,V=a(V,ce),de=V):(S=de,de=r)):(S=de,de=r)):(S=de,de=r),de===r&&(de=S,V=Fe(),V!==r&&(k=de,V=l(V)),de=V),de}function Fe(){var de,V,Qe,ce;return de=S,V=Ue(),V!==r?(t.charCodeAt(S)===64?(Qe=c,S++):(Qe=r,Z===0&&te(u)),Qe!==r?(ce=Se(),ce!==r?(k=de,V=g(V,ce),de=V):(S=de,de=r)):(S=de,de=r)):(S=de,de=r),de===r&&(de=S,V=Ue(),V!==r&&(k=de,V=f(V)),de=V),de}function Ue(){var de,V,Qe,ce,fe;return de=S,t.charCodeAt(S)===64?(V=c,S++):(V=r,Z===0&&te(u)),V!==r?(Qe=xe(),Qe!==r?(t.charCodeAt(S)===47?(ce=s,S++):(ce=r,Z===0&&te(o)),ce!==r?(fe=xe(),fe!==r?(k=de,V=h(),de=V):(S=de,de=r)):(S=de,de=r)):(S=de,de=r)):(S=de,de=r),de===r&&(de=S,V=xe(),V!==r&&(k=de,V=h()),de=V),de}function xe(){var de,V,Qe;if(de=S,V=[],p.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(m)),Qe!==r)for(;Qe!==r;)V.push(Qe),p.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(m));else V=r;return V!==r&&(k=de,V=h()),de=V,de}function Se(){var de,V,Qe;if(de=S,V=[],y.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(b)),Qe!==r)for(;Qe!==r;)V.push(Qe),y.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(b));else V=r;return V!==r&&(k=de,V=h()),de=V,de}if(J=n(),J!==r&&S===t.length)return J;throw J!==r&&S{"use strict";function IK(t){return typeof t=="undefined"||t===null}function ahe(t){return typeof t=="object"&&t!==null}function Ahe(t){return Array.isArray(t)?t:IK(t)?[]:[t]}function lhe(t,e){var r,i,n,s;if(e)for(s=Object.keys(e),r=0,i=s.length;r{"use strict";function tp(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}tp.prototype=Object.create(Error.prototype);tp.prototype.constructor=tp;tp.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};yK.exports=tp});var bK=w((PZe,wK)=>{"use strict";var BK=lc();function YQ(t,e,r,i,n){this.name=t,this.buffer=e,this.position=r,this.line=i,this.column=n}YQ.prototype.getSnippet=function(e,r){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,r=r||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>r/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;or/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BK.repeat(" ",e)+i+a+s+` +`+BK.repeat(" ",e+this.position-n+i.length)+"^"};YQ.prototype.toString=function(e){var r,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(i+=`: +`+r)),i};wK.exports=YQ});var li=w((DZe,QK)=>{"use strict";var vK=Zu(),ghe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],fhe=["scalar","sequence","mapping"];function hhe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(i){e[String(i)]=r})}),e}function phe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(ghe.indexOf(r)===-1)throw new vK('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=hhe(e.styleAliases||null),fhe.indexOf(this.kind)===-1)throw new vK('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}QK.exports=phe});var cc=w((RZe,SK)=>{"use strict";var kK=lc(),sI=Zu(),dhe=li();function qQ(t,e,r){var i=[];return t.include.forEach(function(n){r=qQ(n,e,r)}),t[e].forEach(function(n){r.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),r.push(n)}),r.filter(function(n,s){return i.indexOf(s)===-1})}function Che(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function i(n){t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,r=arguments.length;e{"use strict";var mhe=li();xK.exports=new mhe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var RK=w((NZe,DK)=>{"use strict";var Ehe=li();DK.exports=new Ehe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var NK=w((LZe,FK)=>{"use strict";var Ihe=li();FK.exports=new Ihe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var oI=w((TZe,LK)=>{"use strict";var yhe=cc();LK.exports=new yhe({explicit:[PK(),RK(),NK()]})});var OK=w((OZe,TK)=>{"use strict";var whe=li();function Bhe(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function bhe(){return null}function Qhe(t){return t===null}TK.exports=new whe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Bhe,construct:bhe,predicate:Qhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var KK=w((MZe,MK)=>{"use strict";var vhe=li();function She(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function khe(t){return t==="true"||t==="True"||t==="TRUE"}function xhe(t){return Object.prototype.toString.call(t)==="[object Boolean]"}MK.exports=new vhe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:She,construct:khe,predicate:xhe,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var HK=w((KZe,UK)=>{"use strict";var Phe=lc(),Dhe=li();function Rhe(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Fhe(t){return 48<=t&&t<=55}function Nhe(t){return 48<=t&&t<=57}function Lhe(t){if(t===null)return!1;var e=t.length,r=0,i=!1,n;if(!e)return!1;if(n=t[r],(n==="-"||n==="+")&&(n=t[++r]),n==="0"){if(r+1===e)return!0;if(n=t[++r],n==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var YK=w((UZe,GK)=>{"use strict";var jK=lc(),Mhe=li(),Khe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Uhe(t){return!(t===null||!Khe.test(t)||t[t.length-1]==="_")}function Hhe(t){var e,r,i,n;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),r*e):r*parseFloat(e,10)}var Ghe=/^[-+]?[0-9]+e/;function jhe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jK.isNegativeZero(t))return"-0.0";return r=t.toString(10),Ghe.test(r)?r.replace("e",".e"):r}function Yhe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!=0||jK.isNegativeZero(t))}GK.exports=new Mhe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Uhe,construct:Hhe,predicate:Yhe,represent:jhe,defaultStyle:"lowercase"})});var JQ=w((HZe,qK)=>{"use strict";var qhe=cc();qK.exports=new qhe({include:[oI()],implicit:[OK(),KK(),HK(),YK()]})});var WQ=w((GZe,JK)=>{"use strict";var Jhe=cc();JK.exports=new Jhe({include:[JQ()]})});var VK=w((jZe,WK)=>{"use strict";var Whe=li(),zK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),_K=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function zhe(t){return t===null?!1:zK.exec(t)!==null||_K.exec(t)!==null}function _he(t){var e,r,i,n,s,o,a,l=0,c=null,u,g,f;if(e=zK.exec(t),e===null&&(e=_K.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(r,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(r,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Vhe(t){return t.toISOString()}WK.exports=new Whe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:zhe,construct:_he,instanceOf:Date,represent:Vhe})});var ZK=w((YZe,XK)=>{"use strict";var Xhe=li();function Zhe(t){return t==="<<"||t===null}XK.exports=new Xhe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Zhe})});var t1=w((qZe,$K)=>{"use strict";var uc;try{e1=require,uc=e1("buffer").Buffer}catch(t){}var e1,$he=li(),zQ=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function epe(t){if(t===null)return!1;var e,r,i=0,n=t.length,s=zQ;for(r=0;r64)){if(e<0)return!1;i+=6}return i%8==0}function tpe(t){var e,r,i=t.replace(/[\r\n=]/g,""),n=i.length,s=zQ,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return r=n%4*6,r===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):r===18?(a.push(o>>10&255),a.push(o>>2&255)):r===12&&a.push(o>>4&255),uc?uc.from?uc.from(a):new uc(a):a}function rpe(t){var e="",r=0,i,n,s=t.length,o=zQ;for(i=0;i>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]),r=(r<<8)+t[i];return n=s%3,n===0?(e+=o[r>>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]):n===2?(e+=o[r>>10&63],e+=o[r>>4&63],e+=o[r<<2&63],e+=o[64]):n===1&&(e+=o[r>>2&63],e+=o[r<<4&63],e+=o[64],e+=o[64]),e}function ipe(t){return uc&&uc.isBuffer(t)}$K.exports=new $he("tag:yaml.org,2002:binary",{kind:"scalar",resolve:epe,construct:tpe,predicate:ipe,represent:rpe})});var i1=w((JZe,r1)=>{"use strict";var npe=li(),spe=Object.prototype.hasOwnProperty,ope=Object.prototype.toString;function ape(t){if(t===null)return!0;var e=[],r,i,n,s,o,a=t;for(r=0,i=a.length;r{"use strict";var lpe=li(),cpe=Object.prototype.toString;function upe(t){if(t===null)return!0;var e,r,i,n,s,o=t;for(s=new Array(o.length),e=0,r=o.length;e{"use strict";var fpe=li(),hpe=Object.prototype.hasOwnProperty;function ppe(t){if(t===null)return!0;var e,r=t;for(e in r)if(hpe.call(r,e)&&r[e]!==null)return!1;return!0}function dpe(t){return t!==null?t:{}}o1.exports=new fpe("tag:yaml.org,2002:set",{kind:"mapping",resolve:ppe,construct:dpe})});var eg=w((_Ze,A1)=>{"use strict";var Cpe=cc();A1.exports=new Cpe({include:[WQ()],implicit:[VK(),ZK()],explicit:[t1(),i1(),s1(),a1()]})});var c1=w((VZe,l1)=>{"use strict";var mpe=li();function Epe(){return!0}function Ipe(){}function ype(){return""}function wpe(t){return typeof t=="undefined"}l1.exports=new mpe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Epe,construct:Ipe,predicate:wpe,represent:ype})});var g1=w((XZe,u1)=>{"use strict";var Bpe=li();function bpe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),i="";return!(e[0]==="/"&&(r&&(i=r[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Qpe(t){var e=t,r=/\/([gim]*)$/.exec(t),i="";return e[0]==="/"&&(r&&(i=r[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function vpe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function Spe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}u1.exports=new Bpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:bpe,construct:Qpe,predicate:Spe,represent:vpe})});var p1=w((ZZe,f1)=>{"use strict";var aI;try{h1=require,aI=h1("esprima")}catch(t){typeof window!="undefined"&&(aI=window.esprima)}var h1,kpe=li();function xpe(t){if(t===null)return!1;try{var e="("+t+")",r=aI.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch(i){return!1}}function Ppe(t){var e="("+t+")",r=aI.parse(e,{range:!0}),i=[],n;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function Dpe(t){return t.toString()}function Rpe(t){return Object.prototype.toString.call(t)==="[object Function]"}f1.exports=new kpe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:xpe,construct:Ppe,predicate:Rpe,represent:Dpe})});var rp=w(($Ze,d1)=>{"use strict";var C1=cc();d1.exports=C1.DEFAULT=new C1({include:[eg()],explicit:[c1(),g1(),p1()]})});var T1=w((e$e,ip)=>{"use strict";var Na=lc(),m1=Zu(),Fpe=bK(),E1=eg(),Npe=rp(),GA=Object.prototype.hasOwnProperty,AI=1,I1=2,y1=3,lI=4,_Q=1,Lpe=2,w1=3,Tpe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ope=/[\x85\u2028\u2029]/,Mpe=/[,\[\]\{\}]/,B1=/^(?:!|!!|![a-z\-]+!)$/i,b1=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Q1(t){return Object.prototype.toString.call(t)}function Ro(t){return t===10||t===13}function gc(t){return t===9||t===32}function yn(t){return t===9||t===32||t===10||t===13}function tg(t){return t===44||t===91||t===93||t===123||t===125}function Kpe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function Upe(t){return t===120?2:t===117?4:t===85?8:0}function Hpe(t){return 48<=t&&t<=57?t-48:-1}function v1(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` +`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function Gpe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var S1=new Array(256),k1=new Array(256);for(var rg=0;rg<256;rg++)S1[rg]=v1(rg)?1:0,k1[rg]=v1(rg);function jpe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Npe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function x1(t,e){return new m1(e,new Fpe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function dt(t,e){throw x1(t,e)}function cI(t,e){t.onWarning&&t.onWarning.call(null,x1(t,e))}var P1={YAML:function(e,r,i){var n,s,o;e.version!==null&&dt(e,"duplication of %YAML directive"),i.length!==1&&dt(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&dt(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&dt(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&cI(e,"unsupported YAML version of the document")},TAG:function(e,r,i){var n,s;i.length!==2&&dt(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],B1.test(n)||dt(e,"ill-formed tag handle (first argument) of the TAG directive"),GA.call(e.tagMap,n)&&dt(e,'there is a previously declared suffix for "'+n+'" tag handle'),b1.test(s)||dt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function jA(t,e,r,i){var n,s,o,a;if(e1&&(t.result+=Na.repeat(` +`,e-1))}function Ype(t,e,r){var i,n,s,o,a,l,c,u,g=t.kind,f=t.result,h;if(h=t.input.charCodeAt(t.position),yn(h)||tg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=t.input.charCodeAt(t.position+1),yn(n)||r&&tg(n)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,a=!1;h!==0;){if(h===58){if(n=t.input.charCodeAt(t.position+1),yn(n)||r&&tg(n))break}else if(h===35){if(i=t.input.charCodeAt(t.position-1),yn(i))break}else{if(t.position===t.lineStart&&uI(t)||r&&tg(h))break;if(Ro(h))if(l=t.line,c=t.lineStart,u=t.lineIndent,ei(t,!1,-1),t.lineIndent>=e){a=!0,h=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=l,t.lineStart=c,t.lineIndent=u;break}}a&&(jA(t,s,o,!1),XQ(t,t.line-l),s=o=t.position,a=!1),gc(h)||(o=t.position+1),h=t.input.charCodeAt(++t.position)}return jA(t,s,o,!1),t.result?!0:(t.kind=g,t.result=f,!1)}function qpe(t,e){var r,i,n;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(jA(t,i,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)i=t.position,t.position++,n=t.position;else return!0;else Ro(r)?(jA(t,i,n,!0),XQ(t,ei(t,!1,e)),i=n=t.position):t.position===t.lineStart&&uI(t)?dt(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);dt(t,"unexpected end of the stream within a single quoted scalar")}function Jpe(t,e){var r,i,n,s,o,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return jA(t,r,t.position,!0),t.position++,!0;if(a===92){if(jA(t,r,t.position,!0),a=t.input.charCodeAt(++t.position),Ro(a))ei(t,!1,e);else if(a<256&&S1[a])t.result+=k1[a],t.position++;else if((o=Upe(a))>0){for(n=o,s=0;n>0;n--)a=t.input.charCodeAt(++t.position),(o=Kpe(a))>=0?s=(s<<4)+o:dt(t,"expected hexadecimal character");t.result+=Gpe(s),t.position++}else dt(t,"unknown escape sequence");r=i=t.position}else Ro(a)?(jA(t,r,i,!0),XQ(t,ei(t,!1,e)),r=i=t.position):t.position===t.lineStart&&uI(t)?dt(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}dt(t,"unexpected end of the stream within a double quoted scalar")}function Wpe(t,e){var r=!0,i,n=t.tag,s,o=t.anchor,a,l,c,u,g,f={},h,p,m,y;if(y=t.input.charCodeAt(t.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),y=t.input.charCodeAt(++t.position);y!==0;){if(ei(t,!0,e),y=t.input.charCodeAt(t.position),y===l)return t.position++,t.tag=n,t.anchor=o,t.kind=g?"mapping":"sequence",t.result=s,!0;r||dt(t,"missed comma between flow collection entries"),p=h=m=null,c=u=!1,y===63&&(a=t.input.charCodeAt(t.position+1),yn(a)&&(c=u=!0,t.position++,ei(t,!0,e))),i=t.line,ng(t,e,AI,!1,!0),p=t.tag,h=t.result,ei(t,!0,e),y=t.input.charCodeAt(t.position),(u||t.line===i)&&y===58&&(c=!0,y=t.input.charCodeAt(++t.position),ei(t,!0,e),ng(t,e,AI,!1,!0),m=t.result),g?ig(t,s,f,p,h,m):c?s.push(ig(t,null,f,p,h,m)):s.push(h),ei(t,!0,e),y=t.input.charCodeAt(t.position),y===44?(r=!0,y=t.input.charCodeAt(++t.position)):r=!1}dt(t,"unexpected end of the stream within a flow collection")}function zpe(t,e){var r,i,n=_Q,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=t.input.charCodeAt(t.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(t.kind="scalar",t.result="";g!==0;)if(g=t.input.charCodeAt(++t.position),g===43||g===45)_Q===n?n=g===43?w1:Lpe:dt(t,"repeat of a chomping mode identifier");else if((u=Hpe(g))>=0)u===0?dt(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?dt(t,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(gc(g)){do g=t.input.charCodeAt(++t.position);while(gc(g));if(g===35)do g=t.input.charCodeAt(++t.position);while(!Ro(g)&&g!==0)}for(;g!==0;){for(VQ(t),t.lineIndent=0,g=t.input.charCodeAt(t.position);(!o||t.lineIndenta&&(a=t.lineIndent),Ro(g)){l++;continue}if(t.lineIndente)&&l!==0)dt(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(ng(t,e,lI,!0,n)&&(p?f=t.result:h=t.result),p||(ig(t,c,u,g,f,h,s,o),g=f=h=null),ei(t,!0,-1),y=t.input.charCodeAt(t.position)),t.lineIndent>e&&y!==0)dt(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),g=0,f=t.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+t.kind+'"'),h.resolve(t.result)?(t.result=h.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):dt(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):dt(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function $pe(t){var e=t.position,r,i,n,s=!1,o;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(o=t.input.charCodeAt(t.position))!==0&&(ei(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||o!==37));){for(s=!0,o=t.input.charCodeAt(++t.position),r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);for(i=t.input.slice(r,t.position),n=[],i.length<1&&dt(t,"directive name must not be less than one character in length");o!==0;){for(;gc(o);)o=t.input.charCodeAt(++t.position);if(o===35){do o=t.input.charCodeAt(++t.position);while(o!==0&&!Ro(o));break}if(Ro(o))break;for(r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(r,t.position))}o!==0&&VQ(t),GA.call(P1,i)?P1[i](t,i,n):cI(t,'unknown document directive "'+i+'"')}if(ei(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,ei(t,!0,-1)):s&&dt(t,"directives end mark is expected"),ng(t,t.lineIndent-1,lI,!1,!0),ei(t,!0,-1),t.checkLineBreaks&&Ope.test(t.input.slice(e,t.position))&&cI(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&uI(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,ei(t,!0,-1));return}if(t.position{"use strict";var np=lc(),sp=Zu(),rde=rp(),ide=eg(),O1=Object.prototype.toString,M1=Object.prototype.hasOwnProperty,nde=9,op=10,sde=13,ode=32,ade=33,Ade=34,K1=35,lde=37,cde=38,ude=39,gde=42,U1=44,fde=45,H1=58,hde=61,pde=62,dde=63,Cde=64,G1=91,j1=93,mde=96,Y1=123,Ede=124,q1=125,Ki={};Ki[0]="\\0";Ki[7]="\\a";Ki[8]="\\b";Ki[9]="\\t";Ki[10]="\\n";Ki[11]="\\v";Ki[12]="\\f";Ki[13]="\\r";Ki[27]="\\e";Ki[34]='\\"';Ki[92]="\\\\";Ki[133]="\\N";Ki[160]="\\_";Ki[8232]="\\L";Ki[8233]="\\P";var Ide=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function yde(t,e){var r,i,n,s,o,a,l;if(e===null)return{};for(r={},i=Object.keys(e),n=0,s=i.length;n0?t.charCodeAt(s-1):null,f=f&&z1(o,a)}else{for(s=0;si&&t[g+1]!==" ",g=s);else if(!sg(o))return gI;a=s>0?t.charCodeAt(s-1):null,f=f&&z1(o,a)}c=c||u&&s-g-1>i&&t[g+1]!==" "}return!l&&!c?f&&!n(t)?V1:X1:r>9&&_1(t)?gI:c?$1:Z1}function xde(t,e,r,i){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&Ide.indexOf(e)!==-1)return"'"+e+"'";var n=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-n),o=i||t.flowLevel>-1&&r>=t.flowLevel;function a(l){return Bde(t,l)}switch(vde(e,o,t.indent,s,a)){case V1:return e;case X1:return"'"+e.replace(/'/g,"''")+"'";case Z1:return"|"+eU(e,t.indent)+tU(W1(e,n));case $1:return">"+eU(e,t.indent)+tU(W1(Sde(e,s),n));case gI:return'"'+kde(e,s)+'"';default:throw new sp("impossible error: invalid scalar style")}}()}function eU(t,e){var r=_1(t)?String(e):"",i=t[t.length-1]===` +`,n=i&&(t[t.length-2]===` +`||t===` +`),s=n?"+":i?"":"-";return r+s+` +`}function tU(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function Sde(t,e){for(var r=/(\n+)([^\n]*)/g,i=function(){var c=t.indexOf(` +`);return c=c!==-1?c:t.length,r.lastIndex=c,rU(t.slice(0,c),e)}(),n=t[0]===` +`||t[0]===" ",s,o;o=r.exec(t);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+rU(l,e),n=s}return i}function rU(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=r.exec(t);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+t.slice(n,s),n=s+1),o=a;return l+=` +`,t.length-n>e&&o>n?l+=t.slice(n,o)+` +`+t.slice(o+1):l+=t.slice(n),l.slice(1)}function kde(t){for(var e="",r,i,n,s=0;s=55296&&r<=56319&&(i=t.charCodeAt(s+1),i>=56320&&i<=57343)){e+=J1((r-55296)*1024+i-56320+65536),s++;continue}n=Ki[r],e+=!n&&sg(r)?t[s]:n||J1(r)}return e}function Pde(t,e,r){var i="",n=t.tag,s,o;for(s=0,o=r.length;s1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),!!fc(t,e,c,!1,!1)&&(u+=t.dump,i+=u));t.tag=n,t.dump="{"+i+"}"}function Fde(t,e,r,i){var n="",s=t.tag,o=Object.keys(r),a,l,c,u,g,f;if(t.sortKeys===!0)o.sort();else if(typeof t.sortKeys=="function")o.sort(t.sortKeys);else if(t.sortKeys)throw new sp("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(t.dump&&op===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,g&&(f+=$Q(t,e)),!!fc(t,e+1,u,!0,g)&&(t.dump&&op===t.dump.charCodeAt(0)?f+=":":f+=": ",f+=t.dump,n+=f));t.tag=s,t.dump=n||"{}"}function iU(t,e,r){var i,n,s,o,a,l;for(n=r?t.explicitTypes:t.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');t.dump=i}return!0}return!1}function fc(t,e,r,i,n,s){t.tag=null,t.dump=r,iU(t,r,!1)||iU(t,r,!0);var o=O1.call(t.dump);i&&(i=t.flowLevel<0||t.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=t.duplicates.indexOf(r),c=l!==-1),(t.tag!==null&&t.tag!=="?"||c||t.indent!==2&&e>0)&&(n=!1),c&&t.usedDuplicates[l])t.dump="*ref_"+l;else{if(a&&c&&!t.usedDuplicates[l]&&(t.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(t.dump).length!==0?(Fde(t,e,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(Rde(t,e,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump));else if(o==="[object Array]"){var u=t.noArrayIndent&&e>0?e-1:e;i&&t.dump.length!==0?(Dde(t,u,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(Pde(t,u,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump))}else if(o==="[object String]")t.tag!=="?"&&xde(t,t.dump,e,s);else{if(t.skipInvalid)return!1;throw new sp("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function Nde(t,e){var r=[],i=[],n,s;for(tv(t,r,i),n=0,s=i.length;n{"use strict";var fI=T1(),oU=sU();function hI(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Or.exports.Type=li();Or.exports.Schema=cc();Or.exports.FAILSAFE_SCHEMA=oI();Or.exports.JSON_SCHEMA=JQ();Or.exports.CORE_SCHEMA=WQ();Or.exports.DEFAULT_SAFE_SCHEMA=eg();Or.exports.DEFAULT_FULL_SCHEMA=rp();Or.exports.load=fI.load;Or.exports.loadAll=fI.loadAll;Or.exports.safeLoad=fI.safeLoad;Or.exports.safeLoadAll=fI.safeLoadAll;Or.exports.dump=oU.dump;Or.exports.safeDump=oU.safeDump;Or.exports.YAMLException=Zu();Or.exports.MINIMAL_SCHEMA=oI();Or.exports.SAFE_SCHEMA=eg();Or.exports.DEFAULT_SCHEMA=rp();Or.exports.scan=hI("scan");Or.exports.parse=hI("parse");Or.exports.compose=hI("compose");Or.exports.addConstructor=hI("addConstructor")});var lU=w((i$e,AU)=>{"use strict";var Tde=aU();AU.exports=Tde});var uU=w((n$e,cU)=>{"use strict";function Ode(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function hc(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,hc)}Ode(hc,Error);hc.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ge]:me})))},Y=function(R){return R},j=function(R){return R},Z=Xs("correct indentation"),J=" ",re=gr(" ",!1),ee=function(R){return R.length===TA*Yu},A=function(R){return R.length===(TA+1)*Yu},oe=function(){return TA++,!0},le=function(){return TA--,!0},X=function(){return Mu()},O=Xs("pseudostring"),L=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,pe=qn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Ce=/^[^\r\n\t ,\][{}:#"']/,Oe=qn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),te=function(){return Mu().replace(/^ *| *$/g,"")},se="--",be=gr("--",!1),he=/^[a-zA-Z\/0-9]/,Fe=qn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ue=/^[^\r\n\t :,]/,xe=qn(["\r",` +`," "," ",":",","],!0,!1),Se="null",de=gr("null",!1),V=function(){return null},Qe="true",ce=gr("true",!1),fe=function(){return!0},gt="false",Ht=gr("false",!1),Mt=function(){return!1},mi=Xs("string"),Gt='"',Qr=gr('"',!1),Ti=function(){return""},Vs=function(R){return R},Un=function(R){return R.join("")},Hn=/^[^"\\\0-\x1F\x7F]/,vr=qn(['"',"\\",["\0",""],"\x7F"],!0,!1),Gn='\\"',gs=gr('\\"',!1),ya=function(){return'"'},kA="\\\\",Ru=gr("\\\\",!1),fs=function(){return"\\"},xA="\\/",wa=gr("\\/",!1),Fu=function(){return"/"},PA="\\b",DA=gr("\\b",!1),Sr=function(){return"\b"},jl="\\f",Nu=gr("\\f",!1),So=function(){return"\f"},Lu="\\n",Sh=gr("\\n",!1),kh=function(){return` +`},ae="\\r",Oi=gr("\\r",!1),ko=function(){return"\r"},jn="\\t",Tu=gr("\\t",!1),vt=function(){return" "},Yl="\\u",Yn=gr("\\u",!1),hs=function(R,q,me,Ge){return String.fromCharCode(parseInt(`0x${R}${q}${me}${Ge}`))},ps=/^[0-9a-fA-F]/,pt=qn([["0","9"],["a","f"],["A","F"]],!1,!1),xo=Xs("blank space"),lt=/^[ \t]/,mn=qn([" "," "],!1,!1),v=Xs("white space"),Tt=/^[ \t\n\r]/,Ou=qn([" "," ",` +`,"\r"],!1,!1),ql=`\r +`,xh=gr(`\r +`,!1),Ph=` +`,Dh=gr(` +`,!1),Rh="\r",Fh=gr("\r",!1),G=0,yt=0,RA=[{line:1,column:1}],$i=0,Jl=[],$e=0,Ba;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Mu(){return t.substring(yt,G)}function kE(){return En(yt,G)}function Nh(R,q){throw q=q!==void 0?q:En(yt,G),zl([Xs(R)],t.substring(yt,G),q)}function xE(R,q){throw q=q!==void 0?q:En(yt,G),Ku(R,q)}function gr(R,q){return{type:"literal",text:R,ignoreCase:q}}function qn(R,q,me){return{type:"class",parts:R,inverted:q,ignoreCase:me}}function Wl(){return{type:"any"}}function Lh(){return{type:"end"}}function Xs(R){return{type:"other",description:R}}function ba(R){var q=RA[R],me;if(q)return q;for(me=R-1;!RA[me];)me--;for(q=RA[me],q={line:q.line,column:q.column};me$i&&($i=G,Jl=[]),Jl.push(R))}function Ku(R,q){return new hc(R,null,null,q)}function zl(R,q,me){return new hc(hc.buildMessage(R,q),R,q,me)}function Zs(){var R;return R=Uu(),R}function _l(){var R,q,me;for(R=G,q=[],me=FA();me!==r;)q.push(me),me=FA();return q!==r&&(yt=R,q=s(q)),R=q,R}function FA(){var R,q,me,Ge,Te;return R=G,q=va(),q!==r?(t.charCodeAt(G)===45?(me=o,G++):(me=r,$e===0&&Me(a)),me!==r?(Ge=Lr(),Ge!==r?(Te=Qa(),Te!==r?(yt=R,q=l(Te),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R}function Uu(){var R,q,me;for(R=G,q=[],me=Hu();me!==r;)q.push(me),me=Hu();return q!==r&&(yt=R,q=c(q)),R=q,R}function Hu(){var R,q,me,Ge,Te,Xe,Et,Rt,Jn;if(R=G,q=Lr(),q===r&&(q=null),q!==r){if(me=G,t.charCodeAt(G)===35?(Ge=u,G++):(Ge=r,$e===0&&Me(g)),Ge!==r){if(Te=[],Xe=G,Et=G,$e++,Rt=to(),$e--,Rt===r?Et=void 0:(G=Et,Et=r),Et!==r?(t.length>G?(Rt=t.charAt(G),G++):(Rt=r,$e===0&&Me(f)),Rt!==r?(Et=[Et,Rt],Xe=Et):(G=Xe,Xe=r)):(G=Xe,Xe=r),Xe!==r)for(;Xe!==r;)Te.push(Xe),Xe=G,Et=G,$e++,Rt=to(),$e--,Rt===r?Et=void 0:(G=Et,Et=r),Et!==r?(t.length>G?(Rt=t.charAt(G),G++):(Rt=r,$e===0&&Me(f)),Rt!==r?(Et=[Et,Rt],Xe=Et):(G=Xe,Xe=r)):(G=Xe,Xe=r);else Te=r;Te!==r?(Ge=[Ge,Te],me=Ge):(G=me,me=r)}else G=me,me=r;if(me===r&&(me=null),me!==r){if(Ge=[],Te=eo(),Te!==r)for(;Te!==r;)Ge.push(Te),Te=eo();else Ge=r;Ge!==r?(yt=R,q=h(),R=q):(G=R,R=r)}else G=R,R=r}else G=R,R=r;if(R===r&&(R=G,q=va(),q!==r?(me=Vl(),me!==r?(Ge=Lr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(G)===58?(Te=p,G++):(Te=r,$e===0&&Me(m)),Te!==r?(Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(Et=Qa(),Et!==r?(yt=R,q=y(me,Et),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r&&(R=G,q=va(),q!==r?(me=$s(),me!==r?(Ge=Lr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(G)===58?(Te=p,G++):(Te=r,$e===0&&Me(m)),Te!==r?(Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(Et=Qa(),Et!==r?(yt=R,q=y(me,Et),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r))){if(R=G,q=va(),q!==r)if(me=$s(),me!==r)if(Ge=Lr(),Ge!==r)if(Te=PE(),Te!==r){if(Xe=[],Et=eo(),Et!==r)for(;Et!==r;)Xe.push(Et),Et=eo();else Xe=r;Xe!==r?(yt=R,q=y(me,Te),R=q):(G=R,R=r)}else G=R,R=r;else G=R,R=r;else G=R,R=r;else G=R,R=r;if(R===r)if(R=G,q=va(),q!==r)if(me=$s(),me!==r){if(Ge=[],Te=G,Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(t.charCodeAt(G)===44?(Et=b,G++):(Et=r,$e===0&&Me(S)),Et!==r?(Rt=Lr(),Rt===r&&(Rt=null),Rt!==r?(Jn=$s(),Jn!==r?(yt=Te,Xe=k(me,Jn),Te=Xe):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r),Te!==r)for(;Te!==r;)Ge.push(Te),Te=G,Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(t.charCodeAt(G)===44?(Et=b,G++):(Et=r,$e===0&&Me(S)),Et!==r?(Rt=Lr(),Rt===r&&(Rt=null),Rt!==r?(Jn=$s(),Jn!==r?(yt=Te,Xe=k(me,Jn),Te=Xe):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r);else Ge=r;Ge!==r?(Te=Lr(),Te===r&&(Te=null),Te!==r?(t.charCodeAt(G)===58?(Xe=p,G++):(Xe=r,$e===0&&Me(m)),Xe!==r?(Et=Lr(),Et===r&&(Et=null),Et!==r?(Rt=Qa(),Rt!==r?(yt=R,q=T(me,Ge,Rt),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)}else G=R,R=r;else G=R,R=r}return R}function Qa(){var R,q,me,Ge,Te,Xe,Et;if(R=G,q=G,$e++,me=G,Ge=to(),Ge!==r?(Te=it(),Te!==r?(t.charCodeAt(G)===45?(Xe=o,G++):(Xe=r,$e===0&&Me(a)),Xe!==r?(Et=Lr(),Et!==r?(Ge=[Ge,Te,Xe,Et],me=Ge):(G=me,me=r)):(G=me,me=r)):(G=me,me=r)):(G=me,me=r),$e--,me!==r?(G=q,q=void 0):q=r,q!==r?(me=eo(),me!==r?(Ge=Po(),Ge!==r?(Te=_l(),Te!==r?(Xe=NA(),Xe!==r?(yt=R,q=Y(Te),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r&&(R=G,q=to(),q!==r?(me=Po(),me!==r?(Ge=Uu(),Ge!==r?(Te=NA(),Te!==r?(yt=R,q=Y(Ge),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r))if(R=G,q=Xl(),q!==r){if(me=[],Ge=eo(),Ge!==r)for(;Ge!==r;)me.push(Ge),Ge=eo();else me=r;me!==r?(yt=R,q=j(q),R=q):(G=R,R=r)}else G=R,R=r;return R}function va(){var R,q,me;for($e++,R=G,q=[],t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));me!==r;)q.push(me),t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));return q!==r?(yt=G,me=ee(q),me?me=void 0:me=r,me!==r?(q=[q,me],R=q):(G=R,R=r)):(G=R,R=r),$e--,R===r&&(q=r,$e===0&&Me(Z)),R}function it(){var R,q,me;for(R=G,q=[],t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));me!==r;)q.push(me),t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));return q!==r?(yt=G,me=A(q),me?me=void 0:me=r,me!==r?(q=[q,me],R=q):(G=R,R=r)):(G=R,R=r),R}function Po(){var R;return yt=G,R=oe(),R?R=void 0:R=r,R}function NA(){var R;return yt=G,R=le(),R?R=void 0:R=r,R}function Vl(){var R;return R=Zl(),R===r&&(R=Th()),R}function $s(){var R,q,me;if(R=Zl(),R===r){if(R=G,q=[],me=Gu(),me!==r)for(;me!==r;)q.push(me),me=Gu();else q=r;q!==r&&(yt=R,q=X()),R=q}return R}function Xl(){var R;return R=Oh(),R===r&&(R=DE(),R===r&&(R=Zl(),R===r&&(R=Th()))),R}function PE(){var R;return R=Oh(),R===r&&(R=Zl(),R===r&&(R=Gu())),R}function Th(){var R,q,me,Ge,Te,Xe;if($e++,R=G,L.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(pe)),q!==r){for(me=[],Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Ce.test(t.charAt(G))?(Xe=t.charAt(G),G++):(Xe=r,$e===0&&Me(Oe)),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);Ge!==r;)me.push(Ge),Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Ce.test(t.charAt(G))?(Xe=t.charAt(G),G++):(Xe=r,$e===0&&Me(Oe)),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);me!==r?(yt=R,q=te(),R=q):(G=R,R=r)}else G=R,R=r;return $e--,R===r&&(q=r,$e===0&&Me(O)),R}function Gu(){var R,q,me,Ge,Te;if(R=G,t.substr(G,2)===se?(q=se,G+=2):(q=r,$e===0&&Me(be)),q===r&&(q=null),q!==r)if(he.test(t.charAt(G))?(me=t.charAt(G),G++):(me=r,$e===0&&Me(Fe)),me!==r){for(Ge=[],Ue.test(t.charAt(G))?(Te=t.charAt(G),G++):(Te=r,$e===0&&Me(xe));Te!==r;)Ge.push(Te),Ue.test(t.charAt(G))?(Te=t.charAt(G),G++):(Te=r,$e===0&&Me(xe));Ge!==r?(yt=R,q=te(),R=q):(G=R,R=r)}else G=R,R=r;else G=R,R=r;return R}function Oh(){var R,q;return R=G,t.substr(G,4)===Se?(q=Se,G+=4):(q=r,$e===0&&Me(de)),q!==r&&(yt=R,q=V()),R=q,R}function DE(){var R,q;return R=G,t.substr(G,4)===Qe?(q=Qe,G+=4):(q=r,$e===0&&Me(ce)),q!==r&&(yt=R,q=fe()),R=q,R===r&&(R=G,t.substr(G,5)===gt?(q=gt,G+=5):(q=r,$e===0&&Me(Ht)),q!==r&&(yt=R,q=Mt()),R=q),R}function Zl(){var R,q,me,Ge;return $e++,R=G,t.charCodeAt(G)===34?(q=Gt,G++):(q=r,$e===0&&Me(Qr)),q!==r?(t.charCodeAt(G)===34?(me=Gt,G++):(me=r,$e===0&&Me(Qr)),me!==r?(yt=R,q=Ti(),R=q):(G=R,R=r)):(G=R,R=r),R===r&&(R=G,t.charCodeAt(G)===34?(q=Gt,G++):(q=r,$e===0&&Me(Qr)),q!==r?(me=RE(),me!==r?(t.charCodeAt(G)===34?(Ge=Gt,G++):(Ge=r,$e===0&&Me(Qr)),Ge!==r?(yt=R,q=Vs(me),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)),$e--,R===r&&(q=r,$e===0&&Me(mi)),R}function RE(){var R,q,me;if(R=G,q=[],me=ju(),me!==r)for(;me!==r;)q.push(me),me=ju();else q=r;return q!==r&&(yt=R,q=Un(q)),R=q,R}function ju(){var R,q,me,Ge,Te,Xe;return Hn.test(t.charAt(G))?(R=t.charAt(G),G++):(R=r,$e===0&&Me(vr)),R===r&&(R=G,t.substr(G,2)===Gn?(q=Gn,G+=2):(q=r,$e===0&&Me(gs)),q!==r&&(yt=R,q=ya()),R=q,R===r&&(R=G,t.substr(G,2)===kA?(q=kA,G+=2):(q=r,$e===0&&Me(Ru)),q!==r&&(yt=R,q=fs()),R=q,R===r&&(R=G,t.substr(G,2)===xA?(q=xA,G+=2):(q=r,$e===0&&Me(wa)),q!==r&&(yt=R,q=Fu()),R=q,R===r&&(R=G,t.substr(G,2)===PA?(q=PA,G+=2):(q=r,$e===0&&Me(DA)),q!==r&&(yt=R,q=Sr()),R=q,R===r&&(R=G,t.substr(G,2)===jl?(q=jl,G+=2):(q=r,$e===0&&Me(Nu)),q!==r&&(yt=R,q=So()),R=q,R===r&&(R=G,t.substr(G,2)===Lu?(q=Lu,G+=2):(q=r,$e===0&&Me(Sh)),q!==r&&(yt=R,q=kh()),R=q,R===r&&(R=G,t.substr(G,2)===ae?(q=ae,G+=2):(q=r,$e===0&&Me(Oi)),q!==r&&(yt=R,q=ko()),R=q,R===r&&(R=G,t.substr(G,2)===jn?(q=jn,G+=2):(q=r,$e===0&&Me(Tu)),q!==r&&(yt=R,q=vt()),R=q,R===r&&(R=G,t.substr(G,2)===Yl?(q=Yl,G+=2):(q=r,$e===0&&Me(Yn)),q!==r?(me=LA(),me!==r?(Ge=LA(),Ge!==r?(Te=LA(),Te!==r?(Xe=LA(),Xe!==r?(yt=R,q=hs(me,Ge,Te,Xe),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)))))))))),R}function LA(){var R;return ps.test(t.charAt(G))?(R=t.charAt(G),G++):(R=r,$e===0&&Me(pt)),R}function Lr(){var R,q;if($e++,R=[],lt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(mn)),q!==r)for(;q!==r;)R.push(q),lt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(mn));else R=r;return $e--,R===r&&(q=r,$e===0&&Me(xo)),R}function FE(){var R,q;if($e++,R=[],Tt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(Ou)),q!==r)for(;q!==r;)R.push(q),Tt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(Ou));else R=r;return $e--,R===r&&(q=r,$e===0&&Me(v)),R}function eo(){var R,q,me,Ge,Te,Xe;if(R=G,q=to(),q!==r){for(me=[],Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Xe=to(),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);Ge!==r;)me.push(Ge),Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Xe=to(),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);me!==r?(q=[q,me],R=q):(G=R,R=r)}else G=R,R=r;return R}function to(){var R;return t.substr(G,2)===ql?(R=ql,G+=2):(R=r,$e===0&&Me(xh)),R===r&&(t.charCodeAt(G)===10?(R=Ph,G++):(R=r,$e===0&&Me(Dh)),R===r&&(t.charCodeAt(G)===13?(R=Rh,G++):(R=r,$e===0&&Me(Fh)))),R}let Yu=2,TA=0;if(Ba=n(),Ba!==r&&G===t.length)return Ba;throw Ba!==r&&G{"use strict";var jde=t=>{let e=!1,r=!1,i=!1;for(let n=0;n{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(t)?t=t.map(n=>n.trim()).filter(n=>n.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=jde(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),r(t))};nv.exports=dU;nv.exports.default=dU});var EU=w((c$e,mU)=>{mU.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var pc=w(Vn=>{"use strict";var IU=EU(),Fo=process.env;Object.defineProperty(Vn,"_vendors",{value:IU.map(function(t){return t.constant})});Vn.name=null;Vn.isPR=null;IU.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(i){return yU(i)});if(Vn[t.constant]=r,r)switch(Vn.name=t.name,typeof t.pr){case"string":Vn.isPR=!!Fo[t.pr];break;case"object":"env"in t.pr?Vn.isPR=t.pr.env in Fo&&Fo[t.pr.env]!==t.pr.ne:"any"in t.pr?Vn.isPR=t.pr.any.some(function(i){return!!Fo[i]}):Vn.isPR=yU(t.pr);break;default:Vn.isPR=null}});Vn.isCI=!!(Fo.CI||Fo.CONTINUOUS_INTEGRATION||Fo.BUILD_NUMBER||Fo.RUN_ID||Vn.name);function yU(t){return typeof t=="string"?!!Fo[t]:Object.keys(t).every(function(e){return Fo[e]===t[e]})}});var ag={};ft(ag,{KeyRelationship:()=>mc,applyCascade:()=>hp,base64RegExp:()=>vU,colorStringAlphaRegExp:()=>QU,colorStringRegExp:()=>bU,computeKey:()=>YA,getPrintable:()=>ti,hasExactLength:()=>DU,hasForbiddenKeys:()=>yCe,hasKeyRelationship:()=>gv,hasMaxLength:()=>nCe,hasMinLength:()=>iCe,hasMutuallyExclusiveKeys:()=>wCe,hasRequiredKeys:()=>ICe,hasUniqueItems:()=>sCe,isArray:()=>_de,isAtLeast:()=>ACe,isAtMost:()=>lCe,isBase64:()=>mCe,isBoolean:()=>Jde,isDate:()=>zde,isDict:()=>Xde,isEnum:()=>nn,isHexColor:()=>CCe,isISO8601:()=>dCe,isInExclusiveRange:()=>uCe,isInInclusiveRange:()=>cCe,isInstanceOf:()=>$de,isInteger:()=>gCe,isJSON:()=>ECe,isLiteral:()=>Yde,isLowerCase:()=>fCe,isNegative:()=>oCe,isNullable:()=>rCe,isNumber:()=>Wde,isObject:()=>Zde,isOneOf:()=>eCe,isOptional:()=>tCe,isPositive:()=>aCe,isString:()=>fp,isTuple:()=>Vde,isUUID4:()=>pCe,isUnknown:()=>PU,isUpperCase:()=>hCe,iso8601RegExp:()=>uv,makeCoercionFn:()=>Cc,makeSetter:()=>xU,makeTrait:()=>kU,makeValidator:()=>St,matchesRegExp:()=>pp,plural:()=>mI,pushError:()=>mt,simpleKeyRegExp:()=>BU,uuid4RegExp:()=>SU});function St({test:t}){return kU(t)()}function ti(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":JSON.stringify(t)}function YA(t,e){var r,i,n;return typeof e=="number"?`${(r=t==null?void 0:t.p)!==null&&r!==void 0?r:"."}[${e}]`:BU.test(e)?`${(i=t==null?void 0:t.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=t==null?void 0:t.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function Cc(t,e){return r=>{let i=t[e];return t[e]=r,Cc(t,e).bind(null,i)}}function xU(t,e){return r=>{t[e]=r}}function mI(t,e,r){return t===1?e:r}function mt({errors:t,p:e}={},r){return t==null||t.push(`${e!=null?e:"."}: ${r}`),!1}function Yde(t){return St({test:(e,r)=>e!==t?mt(r,`Expected a literal (got ${ti(t)})`):!0})}function nn(t){let e=Array.isArray(t)?t:Object.values(t),r=new Set(e);return St({test:(i,n)=>r.has(i)?!0:mt(n,`Expected a valid enumeration value (got ${ti(i)})`)})}var BU,bU,QU,vU,SU,uv,kU,PU,fp,qde,Jde,Wde,zde,_de,Vde,Xde,Zde,$de,eCe,hp,tCe,rCe,iCe,nCe,DU,sCe,oCe,aCe,ACe,lCe,cCe,uCe,gCe,pp,fCe,hCe,pCe,dCe,CCe,mCe,ECe,ICe,yCe,wCe,mc,BCe,gv,Is=ffe(()=>{BU=/^[a-zA-Z_][a-zA-Z0-9_]*$/,bU=/^#[0-9a-f]{6}$/i,QU=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,vU=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,SU=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,uv=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,kU=t=>()=>t;PU=()=>St({test:(t,e)=>!0});fp=()=>St({test:(t,e)=>typeof t!="string"?mt(e,`Expected a string (got ${ti(t)})`):!0});qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Jde=()=>St({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i=qde.get(t);if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a boolean (got ${ti(t)})`)}return!0}}),Wde=()=>St({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch(s){}if(typeof n=="number")if(JSON.stringify(n)===t)i=n;else return mt(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a number (got ${ti(t)})`)}return!0}}),zde=()=>St({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof t=="string"&&uv.test(t))i=new Date(t);else{let n;if(typeof t=="string"){let s;try{s=JSON.parse(t)}catch(o){}typeof s=="number"&&(n=s)}else typeof t=="number"&&(n=t);if(typeof n!="undefined")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return mt(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a date (got ${ti(t)})`)}return!0}}),_de=(t,{delimiter:e}={})=>St({test:(r,i)=>{var n;if(typeof r=="string"&&typeof e!="undefined"&&typeof(i==null?void 0:i.coercions)!="undefined"){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");r=r.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,r)])}if(!Array.isArray(r))return mt(i,`Expected an array (got ${ti(r)})`);let s=!0;for(let o=0,a=r.length;o{let r=DU(t.length);return St({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e!="undefined"&&typeof(n==null?void 0:n.coercions)!="undefined"){if(typeof(n==null?void 0:n.coercion)=="undefined")return mt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return mt(n,`Expected a tuple (got ${ti(i)})`);let o=r(i,Object.assign({},n));for(let a=0,l=i.length;aSt({test:(r,i)=>{if(typeof r!="object"||r===null)return mt(i,`Expected an object (got ${ti(r)})`);let n=Object.keys(r),s=!0;for(let o=0,a=n.length;o{let r=Object.keys(t);return St({test:(i,n)=>{if(typeof i!="object"||i===null)return mt(n,`Expected an object (got ${ti(i)})`);let s=new Set([...r,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=mt(Object.assign(Object.assign({},n),{p:YA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(t,l)?t[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c!="undefined"?a=c(u,Object.assign(Object.assign({},n),{p:YA(n,l),coercion:Cc(i,l)}))&&a:e===null?a=mt(Object.assign(Object.assign({},n),{p:YA(n,l)}),`Extraneous property (got ${ti(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:xU(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},$de=t=>St({test:(e,r)=>e instanceof t?!0:mt(r,`Expected an instance of ${t.name} (got ${ti(e)})`)}),eCe=(t,{exclusive:e=!1}={})=>St({test:(r,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)!="undefined"?[]:void 0;for(let c=0,u=t.length;c1?mt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),hp=(t,e)=>St({test:(r,i)=>{var n,s;let o={value:r},a=typeof(i==null?void 0:i.coercions)!="undefined"?Cc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)!="undefined"?[]:void 0;if(!t(r,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l!="undefined")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)!="undefined"){if(o.value!==r){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),tCe=t=>St({test:(e,r)=>typeof e=="undefined"?!0:t(e,r)}),rCe=t=>St({test:(e,r)=>e===null?!0:t(e,r)}),iCe=t=>St({test:(e,r)=>e.length>=t?!0:mt(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)}),nCe=t=>St({test:(e,r)=>e.length<=t?!0:mt(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)}),DU=t=>St({test:(e,r)=>e.length!==t?mt(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0}),sCe=({map:t}={})=>St({test:(e,r)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sSt({test:(t,e)=>t<=0?!0:mt(e,`Expected to be negative (got ${t})`)}),aCe=()=>St({test:(t,e)=>t>=0?!0:mt(e,`Expected to be positive (got ${t})`)}),ACe=t=>St({test:(e,r)=>e>=t?!0:mt(r,`Expected to be at least ${t} (got ${e})`)}),lCe=t=>St({test:(e,r)=>e<=t?!0:mt(r,`Expected to be at most ${t} (got ${e})`)}),cCe=(t,e)=>St({test:(r,i)=>r>=t&&r<=e?!0:mt(i,`Expected to be in the [${t}; ${e}] range (got ${r})`)}),uCe=(t,e)=>St({test:(r,i)=>r>=t&&rSt({test:(e,r)=>e!==Math.round(e)?mt(r,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:mt(r,`Expected to be a safe integer (got ${e})`)}),pp=t=>St({test:(e,r)=>t.test(e)?!0:mt(r,`Expected to match the pattern ${t.toString()} (got ${ti(e)})`)}),fCe=()=>St({test:(t,e)=>t!==t.toLowerCase()?mt(e,`Expected to be all-lowercase (got ${t})`):!0}),hCe=()=>St({test:(t,e)=>t!==t.toUpperCase()?mt(e,`Expected to be all-uppercase (got ${t})`):!0}),pCe=()=>St({test:(t,e)=>SU.test(t)?!0:mt(e,`Expected to be a valid UUID v4 (got ${ti(t)})`)}),dCe=()=>St({test:(t,e)=>uv.test(t)?!1:mt(e,`Expected to be a valid ISO 8601 date string (got ${ti(t)})`)}),CCe=({alpha:t=!1})=>St({test:(e,r)=>(t?bU.test(e):QU.test(e))?!0:mt(r,`Expected to be a valid hexadecimal color string (got ${ti(e)})`)}),mCe=()=>St({test:(t,e)=>vU.test(t)?!0:mt(e,`Expected to be a valid base 64 string (got ${ti(t)})`)}),ECe=(t=PU())=>St({test:(e,r)=>{let i;try{i=JSON.parse(e)}catch(n){return mt(r,`Expected to be a valid JSON string (got ${ti(e)})`)}return t(i,r)}}),ICe=t=>{let e=new Set(t);return St({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?mt(i,`Missing required ${mI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},yCe=t=>{let e=new Set(t);return St({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?mt(i,`Forbidden ${mI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},wCe=t=>{let e=new Set(t);return St({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?mt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(mc||(mc={}));BCe={[mc.Forbids]:{expect:!1,message:"forbids using"},[mc.Requires]:{expect:!0,message:"requires using"}},gv=(t,e,r,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(r),o=BCe[e];return St({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(t)||n.has(a[t]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?mt(l,`Property "${t}" ${o.message} ${mI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var VU=w((get,_U)=>{"use strict";_U.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var lg=w((fet,Ev)=>{"use strict";var UCe=VU(),XU=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,i=()=>{r--,e.length>0&&e.shift()()},n=(a,l,...c)=>{r++;let u=UCe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{rnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),o};Ev.exports=XU;Ev.exports.default=XU});var Ep=w((pet,ZU)=>{var HCe="2.0.0",GCe=256,jCe=Number.MAX_SAFE_INTEGER||9007199254740991,YCe=16;ZU.exports={SEMVER_SPEC_VERSION:HCe,MAX_LENGTH:GCe,MAX_SAFE_INTEGER:jCe,MAX_SAFE_COMPONENT_LENGTH:YCe}});var Ip=w((det,$U)=>{var qCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};$U.exports=qCe});var Ec=w((JA,e2)=>{var{MAX_SAFE_COMPONENT_LENGTH:Iv}=Ep(),JCe=Ip();JA=e2.exports={};var WCe=JA.re=[],tt=JA.src=[],rt=JA.t={},zCe=0,kt=(t,e,r)=>{let i=zCe++;JCe(i,e),rt[t]=i,tt[i]=e,WCe[i]=new RegExp(e,r?"g":void 0)};kt("NUMERICIDENTIFIER","0|[1-9]\\d*");kt("NUMERICIDENTIFIERLOOSE","[0-9]+");kt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");kt("MAINVERSION",`(${tt[rt.NUMERICIDENTIFIER]})\\.(${tt[rt.NUMERICIDENTIFIER]})\\.(${tt[rt.NUMERICIDENTIFIER]})`);kt("MAINVERSIONLOOSE",`(${tt[rt.NUMERICIDENTIFIERLOOSE]})\\.(${tt[rt.NUMERICIDENTIFIERLOOSE]})\\.(${tt[rt.NUMERICIDENTIFIERLOOSE]})`);kt("PRERELEASEIDENTIFIER",`(?:${tt[rt.NUMERICIDENTIFIER]}|${tt[rt.NONNUMERICIDENTIFIER]})`);kt("PRERELEASEIDENTIFIERLOOSE",`(?:${tt[rt.NUMERICIDENTIFIERLOOSE]}|${tt[rt.NONNUMERICIDENTIFIER]})`);kt("PRERELEASE",`(?:-(${tt[rt.PRERELEASEIDENTIFIER]}(?:\\.${tt[rt.PRERELEASEIDENTIFIER]})*))`);kt("PRERELEASELOOSE",`(?:-?(${tt[rt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${tt[rt.PRERELEASEIDENTIFIERLOOSE]})*))`);kt("BUILDIDENTIFIER","[0-9A-Za-z-]+");kt("BUILD",`(?:\\+(${tt[rt.BUILDIDENTIFIER]}(?:\\.${tt[rt.BUILDIDENTIFIER]})*))`);kt("FULLPLAIN",`v?${tt[rt.MAINVERSION]}${tt[rt.PRERELEASE]}?${tt[rt.BUILD]}?`);kt("FULL",`^${tt[rt.FULLPLAIN]}$`);kt("LOOSEPLAIN",`[v=\\s]*${tt[rt.MAINVERSIONLOOSE]}${tt[rt.PRERELEASELOOSE]}?${tt[rt.BUILD]}?`);kt("LOOSE",`^${tt[rt.LOOSEPLAIN]}$`);kt("GTLT","((?:<|>)?=?)");kt("XRANGEIDENTIFIERLOOSE",`${tt[rt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);kt("XRANGEIDENTIFIER",`${tt[rt.NUMERICIDENTIFIER]}|x|X|\\*`);kt("XRANGEPLAIN",`[v=\\s]*(${tt[rt.XRANGEIDENTIFIER]})(?:\\.(${tt[rt.XRANGEIDENTIFIER]})(?:\\.(${tt[rt.XRANGEIDENTIFIER]})(?:${tt[rt.PRERELEASE]})?${tt[rt.BUILD]}?)?)?`);kt("XRANGEPLAINLOOSE",`[v=\\s]*(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:${tt[rt.PRERELEASELOOSE]})?${tt[rt.BUILD]}?)?)?`);kt("XRANGE",`^${tt[rt.GTLT]}\\s*${tt[rt.XRANGEPLAIN]}$`);kt("XRANGELOOSE",`^${tt[rt.GTLT]}\\s*${tt[rt.XRANGEPLAINLOOSE]}$`);kt("COERCE",`(^|[^\\d])(\\d{1,${Iv}})(?:\\.(\\d{1,${Iv}}))?(?:\\.(\\d{1,${Iv}}))?(?:$|[^\\d])`);kt("COERCERTL",tt[rt.COERCE],!0);kt("LONETILDE","(?:~>?)");kt("TILDETRIM",`(\\s*)${tt[rt.LONETILDE]}\\s+`,!0);JA.tildeTrimReplace="$1~";kt("TILDE",`^${tt[rt.LONETILDE]}${tt[rt.XRANGEPLAIN]}$`);kt("TILDELOOSE",`^${tt[rt.LONETILDE]}${tt[rt.XRANGEPLAINLOOSE]}$`);kt("LONECARET","(?:\\^)");kt("CARETTRIM",`(\\s*)${tt[rt.LONECARET]}\\s+`,!0);JA.caretTrimReplace="$1^";kt("CARET",`^${tt[rt.LONECARET]}${tt[rt.XRANGEPLAIN]}$`);kt("CARETLOOSE",`^${tt[rt.LONECARET]}${tt[rt.XRANGEPLAINLOOSE]}$`);kt("COMPARATORLOOSE",`^${tt[rt.GTLT]}\\s*(${tt[rt.LOOSEPLAIN]})$|^$`);kt("COMPARATOR",`^${tt[rt.GTLT]}\\s*(${tt[rt.FULLPLAIN]})$|^$`);kt("COMPARATORTRIM",`(\\s*)${tt[rt.GTLT]}\\s*(${tt[rt.LOOSEPLAIN]}|${tt[rt.XRANGEPLAIN]})`,!0);JA.comparatorTrimReplace="$1$2$3";kt("HYPHENRANGE",`^\\s*(${tt[rt.XRANGEPLAIN]})\\s+-\\s+(${tt[rt.XRANGEPLAIN]})\\s*$`);kt("HYPHENRANGELOOSE",`^\\s*(${tt[rt.XRANGEPLAINLOOSE]})\\s+-\\s+(${tt[rt.XRANGEPLAINLOOSE]})\\s*$`);kt("STAR","(<|>)?=?\\s*\\*");kt("GTE0","^\\s*>=\\s*0.0.0\\s*$");kt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var yp=w((Cet,t2)=>{var _Ce=["includePrerelease","loose","rtl"],VCe=t=>t?typeof t!="object"?{loose:!0}:_Ce.filter(e=>t[e]).reduce((e,r)=>(e[r]=!0,e),{}):{};t2.exports=VCe});var QI=w((met,r2)=>{var i2=/^[0-9]+$/,n2=(t,e)=>{let r=i2.test(t),i=i2.test(e);return r&&i&&(t=+t,e=+e),t===e?0:r&&!i?-1:i&&!r?1:tn2(e,t);r2.exports={compareIdentifiers:n2,rcompareIdentifiers:XCe}});var Hi=w((Eet,s2)=>{var vI=Ip(),{MAX_LENGTH:o2,MAX_SAFE_INTEGER:SI}=Ep(),{re:a2,t:A2}=Ec(),ZCe=yp(),{compareIdentifiers:wp}=QI(),ws=class{constructor(e,r){if(r=ZCe(r),e instanceof ws){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>o2)throw new TypeError(`version is longer than ${o2} characters`);vI("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let i=e.trim().match(r.loose?a2[A2.LOOSE]:a2[A2.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>SI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>SI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>SI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};s2.exports=ws});var Ic=w((Iet,l2)=>{var{MAX_LENGTH:$Ce}=Ep(),{re:c2,t:u2}=Ec(),g2=Hi(),eme=yp(),tme=(t,e)=>{if(e=eme(e),t instanceof g2)return t;if(typeof t!="string"||t.length>$Ce||!(e.loose?c2[u2.LOOSE]:c2[u2.FULL]).test(t))return null;try{return new g2(t,e)}catch(i){return null}};l2.exports=tme});var h2=w((yet,f2)=>{var rme=Ic(),ime=(t,e)=>{let r=rme(t,e);return r?r.version:null};f2.exports=ime});var d2=w((wet,p2)=>{var nme=Ic(),sme=(t,e)=>{let r=nme(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};p2.exports=sme});var m2=w((Bet,C2)=>{var ome=Hi(),ame=(t,e,r,i)=>{typeof r=="string"&&(i=r,r=void 0);try{return new ome(t,r).inc(e,i).version}catch(n){return null}};C2.exports=ame});var Bs=w((bet,E2)=>{var I2=Hi(),Ame=(t,e,r)=>new I2(t,r).compare(new I2(e,r));E2.exports=Ame});var kI=w((Qet,y2)=>{var lme=Bs(),cme=(t,e,r)=>lme(t,e,r)===0;y2.exports=cme});var b2=w((vet,w2)=>{var B2=Ic(),ume=kI(),gme=(t,e)=>{if(ume(t,e))return null;{let r=B2(t),i=B2(e),n=r.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in r)if((a==="major"||a==="minor"||a==="patch")&&r[a]!==i[a])return s+a;return o}};w2.exports=gme});var v2=w((ket,Q2)=>{var fme=Hi(),hme=(t,e)=>new fme(t,e).major;Q2.exports=hme});var k2=w((xet,S2)=>{var pme=Hi(),dme=(t,e)=>new pme(t,e).minor;S2.exports=dme});var P2=w((Pet,x2)=>{var Cme=Hi(),mme=(t,e)=>new Cme(t,e).patch;x2.exports=mme});var R2=w((Det,D2)=>{var Eme=Ic(),Ime=(t,e)=>{let r=Eme(t,e);return r&&r.prerelease.length?r.prerelease:null};D2.exports=Ime});var N2=w((Ret,F2)=>{var yme=Bs(),wme=(t,e,r)=>yme(e,t,r);F2.exports=wme});var T2=w((Fet,L2)=>{var Bme=Bs(),bme=(t,e)=>Bme(t,e,!0);L2.exports=bme});var xI=w((Net,O2)=>{var M2=Hi(),Qme=(t,e,r)=>{let i=new M2(t,r),n=new M2(e,r);return i.compare(n)||i.compareBuild(n)};O2.exports=Qme});var U2=w((Let,K2)=>{var vme=xI(),Sme=(t,e)=>t.sort((r,i)=>vme(r,i,e));K2.exports=Sme});var G2=w((Tet,H2)=>{var kme=xI(),xme=(t,e)=>t.sort((r,i)=>kme(i,r,e));H2.exports=xme});var Bp=w((Oet,j2)=>{var Pme=Bs(),Dme=(t,e,r)=>Pme(t,e,r)>0;j2.exports=Dme});var PI=w((Met,Y2)=>{var Rme=Bs(),Fme=(t,e,r)=>Rme(t,e,r)<0;Y2.exports=Fme});var yv=w((Ket,q2)=>{var Nme=Bs(),Lme=(t,e,r)=>Nme(t,e,r)!==0;q2.exports=Lme});var DI=w((Uet,J2)=>{var Tme=Bs(),Ome=(t,e,r)=>Tme(t,e,r)>=0;J2.exports=Ome});var RI=w((Het,W2)=>{var Mme=Bs(),Kme=(t,e,r)=>Mme(t,e,r)<=0;W2.exports=Kme});var wv=w((Get,z2)=>{var Ume=kI(),Hme=yv(),Gme=Bp(),jme=DI(),Yme=PI(),qme=RI(),Jme=(t,e,r,i)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Ume(t,r,i);case"!=":return Hme(t,r,i);case">":return Gme(t,r,i);case">=":return jme(t,r,i);case"<":return Yme(t,r,i);case"<=":return qme(t,r,i);default:throw new TypeError(`Invalid operator: ${e}`)}};z2.exports=Jme});var V2=w((jet,_2)=>{var Wme=Hi(),zme=Ic(),{re:FI,t:NI}=Ec(),_me=(t,e)=>{if(t instanceof Wme)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(FI[NI.COERCE]);else{let i;for(;(i=FI[NI.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||i.index+i[0].length!==r.index+r[0].length)&&(r=i),FI[NI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;FI[NI.COERCERTL].lastIndex=-1}return r===null?null:zme(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};_2.exports=_me});var Z2=w((Yet,X2)=>{"use strict";X2.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var bp=w((qet,$2)=>{"use strict";$2.exports=jt;jt.Node=yc;jt.create=jt;function jt(t){var e=this;if(e instanceof jt||(e=new jt),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=e;else if(this.head)i=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)r=t(r,i.value,n),i=i.next;return r};jt.prototype.reduceReverse=function(t,e){var r,i=this.tail;if(arguments.length>1)r=e;else if(this.tail)i=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)r=t(r,i.value,n),i=i.prev;return r};jt.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};jt.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};jt.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new jt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>t;i--,n=n.prev)r.push(n.value);return r};jt.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var i=0,n=this.head;n!==null&&i{"use strict";var $me=bp(),wc=Symbol("max"),Oa=Symbol("length"),cg=Symbol("lengthCalculator"),Qp=Symbol("allowStale"),Bc=Symbol("maxAge"),Ma=Symbol("dispose"),tH=Symbol("noDisposeOnSet"),Ii=Symbol("lruList"),so=Symbol("cache"),rH=Symbol("updateAgeOnGet"),Bv=()=>1,iH=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[wc]=e.max||Infinity,i=e.length||Bv;if(this[cg]=typeof i!="function"?Bv:i,this[Qp]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Bc]=e.maxAge||0,this[Ma]=e.dispose,this[tH]=e.noDisposeOnSet||!1,this[rH]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[wc]=e||Infinity,vp(this)}get max(){return this[wc]}set allowStale(e){this[Qp]=!!e}get allowStale(){return this[Qp]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Bc]=e,vp(this)}get maxAge(){return this[Bc]}set lengthCalculator(e){typeof e!="function"&&(e=Bv),e!==this[cg]&&(this[cg]=e,this[Oa]=0,this[Ii].forEach(r=>{r.length=this[cg](r.value,r.key),this[Oa]+=r.length})),vp(this)}get lengthCalculator(){return this[cg]}get length(){return this[Oa]}get itemCount(){return this[Ii].length}rforEach(e,r){r=r||this;for(let i=this[Ii].tail;i!==null;){let n=i.prev;sH(this,e,i,r),i=n}}forEach(e,r){r=r||this;for(let i=this[Ii].head;i!==null;){let n=i.next;sH(this,e,i,r),i=n}}keys(){return this[Ii].toArray().map(e=>e.key)}values(){return this[Ii].toArray().map(e=>e.value)}reset(){this[Ma]&&this[Ii]&&this[Ii].length&&this[Ii].forEach(e=>this[Ma](e.key,e.value)),this[so]=new Map,this[Ii]=new $me,this[Oa]=0}dump(){return this[Ii].map(e=>LI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ii]}set(e,r,i){if(i=i||this[Bc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[cg](r,e);if(this[so].has(e)){if(s>this[wc])return ug(this,this[so].get(e)),!1;let l=this[so].get(e).value;return this[Ma]&&(this[tH]||this[Ma](e,l.value)),l.now=n,l.maxAge=i,l.value=r,this[Oa]+=s-l.length,l.length=s,this.get(e),vp(this),!0}let o=new nH(e,r,s,n,i);return o.length>this[wc]?(this[Ma]&&this[Ma](e,r),!1):(this[Oa]+=o.length,this[Ii].unshift(o),this[so].set(e,this[Ii].head),vp(this),!0)}has(e){if(!this[so].has(e))return!1;let r=this[so].get(e).value;return!LI(this,r)}get(e){return bv(this,e,!0)}peek(e){return bv(this,e,!1)}pop(){let e=this[Ii].tail;return e?(ug(this,e),e.value):null}del(e){ug(this,this[so].get(e))}load(e){this.reset();let r=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-r;o>0&&this.set(n.k,n.v,o)}}}prune(){this[so].forEach((e,r)=>bv(this,r,!1))}},bv=(t,e,r)=>{let i=t[so].get(e);if(i){let n=i.value;if(LI(t,n)){if(ug(t,i),!t[Qp])return}else r&&(t[rH]&&(i.value.now=Date.now()),t[Ii].unshiftNode(i));return n.value}},LI=(t,e)=>{if(!e||!e.maxAge&&!t[Bc])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[Bc]&&r>t[Bc]},vp=t=>{if(t[Oa]>t[wc])for(let e=t[Ii].tail;t[Oa]>t[wc]&&e!==null;){let r=e.prev;ug(t,e),e=r}},ug=(t,e)=>{if(e){let r=e.value;t[Ma]&&t[Ma](r.key,r.value),t[Oa]-=r.length,t[so].delete(r.key),t[Ii].removeNode(e)}},nH=class{constructor(e,r,i,n,s){this.key=e,this.value=r,this.length=i,this.now=n,this.maxAge=s||0}},sH=(t,e,r,i)=>{let n=r.value;LI(t,n)&&(ug(t,r),t[Qp]||(n=void 0)),n&&e.call(i,n.value,n.key,t)};eH.exports=iH});var bs=w((Wet,aH)=>{var gg=class{constructor(e,r){if(r=eEe(r),e instanceof gg)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new gg(e.raw,r);if(e instanceof Qv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!lH(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&sEe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=AH.get(i);if(n)return n;let s=this.options.loose,o=s?Gi[ki.HYPHENRANGELOOSE]:Gi[ki.HYPHENRANGE];e=e.replace(o,AEe(this.options.includePrerelease)),zr("hyphen replace",e),e=e.replace(Gi[ki.COMPARATORTRIM],rEe),zr("comparator trim",e,Gi[ki.COMPARATORTRIM]),e=e.replace(Gi[ki.TILDETRIM],iEe),e=e.replace(Gi[ki.CARETTRIM],nEe),e=e.split(/\s+/).join(" ");let a=s?Gi[ki.COMPARATORLOOSE]:Gi[ki.COMPARATOR],l=e.split(" ").map(f=>oEe(f,this.options)).join(" ").split(/\s+/).map(f=>aEe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Qv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(lH(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return AH.set(i,g),g}intersects(e,r){if(!(e instanceof gg))throw new TypeError("a Range is required");return this.set.some(i=>cH(i,r)&&e.set.some(n=>cH(n,r)&&i.every(s=>n.every(o=>s.intersects(o,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new tEe(e,this.options)}catch(r){return!1}for(let r=0;rt.value==="<0.0.0-0",sEe=t=>t.value==="",cH=(t,e)=>{let r=!0,i=t.slice(),n=i.pop();for(;r&&i.length;)r=i.every(s=>n.intersects(s,e)),n=i.pop();return r},oEe=(t,e)=>(zr("comp",t,e),t=gEe(t,e),zr("caret",t),t=uEe(t,e),zr("tildes",t),t=fEe(t,e),zr("xrange",t),t=hEe(t,e),zr("stars",t),t),on=t=>!t||t.toLowerCase()==="x"||t==="*",uEe=(t,e)=>t.trim().split(/\s+/).map(r=>pEe(r,e)).join(" "),pEe=(t,e)=>{let r=e.loose?Gi[ki.TILDELOOSE]:Gi[ki.TILDE];return t.replace(r,(i,n,s,o,a)=>{zr("tilde",t,i,n,s,o,a);let l;return on(n)?l="":on(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:on(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(zr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,zr("tilde return",l),l})},gEe=(t,e)=>t.trim().split(/\s+/).map(r=>dEe(r,e)).join(" "),dEe=(t,e)=>{zr("caret",t,e);let r=e.loose?Gi[ki.CARETLOOSE]:Gi[ki.CARET],i=e.includePrerelease?"-0":"";return t.replace(r,(n,s,o,a,l)=>{zr("caret",t,n,s,o,a,l);let c;return on(s)?c="":on(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:on(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(zr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(zr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),zr("caret return",c),c})},fEe=(t,e)=>(zr("replaceXRanges",t,e),t.split(/\s+/).map(r=>CEe(r,e)).join(" ")),CEe=(t,e)=>{t=t.trim();let r=e.loose?Gi[ki.XRANGELOOSE]:Gi[ki.XRANGE];return t.replace(r,(i,n,s,o,a,l)=>{zr("xRange",t,i,n,s,o,a,l);let c=on(s),u=c||on(o),g=u||on(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),zr("xRange return",i),i})},hEe=(t,e)=>(zr("replaceStars",t,e),t.trim().replace(Gi[ki.STAR],"")),aEe=(t,e)=>(zr("replaceGTE0",t,e),t.trim().replace(Gi[e.includePrerelease?ki.GTE0PRE:ki.GTE0],"")),AEe=t=>(e,r,i,n,s,o,a,l,c,u,g,f,h)=>(on(i)?r="":on(n)?r=`>=${i}.0.0${t?"-0":""}`:on(s)?r=`>=${i}.${n}.0${t?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,on(c)?l="":on(u)?l=`<${+c+1}.0.0-0`:on(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:t?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${r} ${l}`.trim()),lEe=(t,e,r)=>{for(let i=0;i0){let n=t[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Sp=w((zet,uH)=>{var kp=Symbol("SemVer ANY"),xp=class{static get ANY(){return kp}constructor(e,r){if(r=mEe(r),e instanceof xp){if(e.loose===!!r.loose)return e;e=e.value}Sv("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===kp?this.value="":this.value=this.operator+this.semver.version,Sv("comp",this)}parse(e){let r=this.options.loose?gH[fH.COMPARATORLOOSE]:gH[fH.COMPARATOR],i=e.match(r);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new hH(i[2],this.options.loose):this.semver=kp}toString(){return this.value}test(e){if(Sv("Comparator.test",e,this.options.loose),this.semver===kp||e===kp)return!0;if(typeof e=="string")try{e=new hH(e,this.options)}catch(r){return!1}return vv(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof xp))throw new TypeError("a Comparator is required");if((!r||typeof r!="object")&&(r={loose:!!r,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new pH(e.value,r).test(this.value);if(e.operator==="")return e.value===""?!0:new pH(this.value,r).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=vv(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=vv(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uH.exports=xp;var mEe=yp(),{re:gH,t:fH}=Ec(),vv=wv(),Sv=Ip(),hH=Hi(),pH=bs()});var Pp=w((_et,dH)=>{var EEe=bs(),IEe=(t,e,r)=>{try{e=new EEe(e,r)}catch(i){return!1}return e.test(t)};dH.exports=IEe});var mH=w((Vet,CH)=>{var yEe=bs(),wEe=(t,e)=>new yEe(t,e).set.map(r=>r.map(i=>i.value).join(" ").trim().split(" "));CH.exports=wEe});var IH=w((Xet,EH)=>{var BEe=Hi(),bEe=bs(),QEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new bEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new BEe(i,r))}),i};EH.exports=QEe});var wH=w((Zet,yH)=>{var vEe=Hi(),SEe=bs(),kEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new SEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new vEe(i,r))}),i};yH.exports=kEe});var QH=w(($et,BH)=>{var kv=Hi(),xEe=bs(),bH=Bp(),PEe=(t,e)=>{t=new xEe(t,e);let r=new kv("0.0.0");if(t.test(r)||(r=new kv("0.0.0-0"),t.test(r)))return r;r=null;for(let i=0;i{let a=new kv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||bH(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!r||bH(r,s))&&(r=s)}return r&&t.test(r)?r:null};BH.exports=PEe});var SH=w((ett,vH)=>{var DEe=bs(),REe=(t,e)=>{try{return new DEe(t,e).range||"*"}catch(r){return null}};vH.exports=REe});var TI=w((ttt,kH)=>{var FEe=Hi(),xH=Sp(),{ANY:NEe}=xH,LEe=bs(),TEe=Pp(),PH=Bp(),DH=PI(),OEe=RI(),MEe=DI(),KEe=(t,e,r,i)=>{t=new FEe(t,i),e=new LEe(e,i);let n,s,o,a,l;switch(r){case">":n=PH,s=OEe,o=DH,a=">",l=">=";break;case"<":n=DH,s=MEe,o=PH,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(TEe(t,e,i))return!1;for(let c=0;c{h.semver===NEe&&(h=new xH(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(t,f.semver))return!1;if(f.operator===l&&o(t,f.semver))return!1}return!0};kH.exports=KEe});var FH=w((rtt,RH)=>{var UEe=TI(),HEe=(t,e,r)=>UEe(t,e,">",r);RH.exports=HEe});var LH=w((itt,NH)=>{var GEe=TI(),jEe=(t,e,r)=>GEe(t,e,"<",r);NH.exports=jEe});var MH=w((ntt,TH)=>{var OH=bs(),YEe=(t,e,r)=>(t=new OH(t,r),e=new OH(e,r),t.intersects(e));TH.exports=YEe});var UH=w((stt,KH)=>{var qEe=Pp(),JEe=Bs();KH.exports=(t,e,r)=>{let i=[],n=null,s=null,o=t.sort((u,g)=>JEe(u,g,r));for(let u of o)qEe(u,e,r)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var GH=bs(),OI=Sp(),{ANY:xv}=OI,Dp=Pp(),Pv=Bs(),zEe=(t,e,r={})=>{if(t===e)return!0;t=new GH(t,r),e=new GH(e,r);let i=!1;e:for(let n of t.set){for(let s of e.set){let o=WEe(n,s,r);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},WEe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===xv){if(e.length===1&&e[0].semver===xv)return!0;r.includePrerelease?t=[new OI(">=0.0.0-0")]:t=[new OI(">=0.0.0")]}if(e.length===1&&e[0].semver===xv){if(r.includePrerelease)return!0;e=[new OI(">=0.0.0")]}let i=new Set,n,s;for(let h of t)h.operator===">"||h.operator===">="?n=jH(n,h,r):h.operator==="<"||h.operator==="<="?s=YH(s,h,r):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=Pv(n.semver,s.semver,r),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Dp(h,String(n),r)||s&&!Dp(h,String(s),r))return null;for(let p of e)if(!Dp(h,String(p),r))return!1;return!0}let a,l,c,u,g=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=jH(n,h,r),a===h&&a!==n)return!1}else if(n.operator===">="&&!Dp(n.semver,String(h),r))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=YH(s,h,r),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Dp(s.semver,String(h),r))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},jH=(t,e,r)=>{if(!t)return e;let i=Pv(t.semver,e.semver,r);return i>0?t:i<0||e.operator===">"&&t.operator===">="?e:t},YH=(t,e,r)=>{if(!t)return e;let i=Pv(t.semver,e.semver,r);return i<0?t:i>0||e.operator==="<"&&t.operator==="<="?e:t};HH.exports=zEe});var ri=w((att,JH)=>{var Dv=Ec();JH.exports={re:Dv.re,src:Dv.src,tokens:Dv.t,SEMVER_SPEC_VERSION:Ep().SEMVER_SPEC_VERSION,SemVer:Hi(),compareIdentifiers:QI().compareIdentifiers,rcompareIdentifiers:QI().rcompareIdentifiers,parse:Ic(),valid:h2(),clean:d2(),inc:m2(),diff:b2(),major:v2(),minor:k2(),patch:P2(),prerelease:R2(),compare:Bs(),rcompare:N2(),compareLoose:T2(),compareBuild:xI(),sort:U2(),rsort:G2(),gt:Bp(),lt:PI(),eq:kI(),neq:yv(),gte:DI(),lte:RI(),cmp:wv(),coerce:V2(),Comparator:Sp(),Range:bs(),satisfies:Pp(),toComparators:mH(),maxSatisfying:IH(),minSatisfying:wH(),minVersion:QH(),validRange:SH(),outside:TI(),gtr:FH(),ltr:LH(),intersects:MH(),simplifyRange:UH(),subset:qH()}});var Rv=w(MI=>{"use strict";Object.defineProperty(MI,"__esModule",{value:!0});MI.VERSION=void 0;MI.VERSION="9.1.0"});var Yt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,s;i{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof KI=="object"&&KI.exports?KI.exports=e():t.regexpToAst=e()})(typeof self!="undefined"?self:WH,function(){function t(){}t.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},t.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},t.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},t.prototype.disjunction=function(){var p=[],m=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(m)}},t.prototype.alternative=function(){for(var p=[],m=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(m)}},t.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},t.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(p)}}l()},t.prototype.quantifier=function(p){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:Infinity};break;case"+":m={atLeast:1,atMost:Infinity};break;case"?":m={atLeast:0,atMost:1};break;case"{":var b=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:b,atMost:b};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:b,atMost:S}):m={atLeast:b,atMost:Infinity},this.consumeChar("}");break}if(p===!0&&m===void 0)return;a(m);break}if(!(p===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},t.prototype.atom=function(){var p,m=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(m),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},t.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},t.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},t.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},t.prototype.characterClassEscape=function(){var p,m=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,m=!0;break;case"s":p=f;break;case"S":p=f,m=!0;break;case"w":p=g;break;case"W":p=g,m=!0;break}return a(p),{type:"Set",value:p,complement:m}},t.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},t.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var m=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},t.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},t.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},t.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},t.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},t.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},t.prototype.characterClass=function(){var p=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),b=y.type==="Character";if(b&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),k=S.type==="Character";if(k){if(S.value=this.input.length)throw Error("Unexpected end of input");this.idx++},t.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,r=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,m){p.length!==void 0?p.forEach(function(y){m.push(y)}):m.push(p)}function o(p,m){if(p[m]===!0)throw"duplicate flag "+m;p[m]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var m in p){var y=p[m];p.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(b){this.visit(b)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:t,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var GI=w(fg=>{"use strict";Object.defineProperty(fg,"__esModule",{value:!0});fg.clearRegExpParserCache=fg.getRegExpAst=void 0;var _Ee=UI(),HI={},VEe=new _Ee.RegExpParser;function XEe(t){var e=t.toString();if(HI.hasOwnProperty(e))return HI[e];var r=VEe.pattern(e);return HI[e]=r,r}fg.getRegExpAst=XEe;function ZEe(){HI={}}fg.clearRegExpParserCache=ZEe});var ZH=w(Bn=>{"use strict";var $Ee=Bn&&Bn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Bn,"__esModule",{value:!0});Bn.canMatchCharCode=Bn.firstCharOptimizedIndices=Bn.getOptimizedStartCodesIndices=Bn.failedOptimizationPrefixMsg=void 0;var zH=UI(),Qs=Yt(),_H=GI(),Ka=Fv(),VH="Complement Sets are not supported for first char optimization";Bn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function eIe(t,e){e===void 0&&(e=!1);try{var r=(0,_H.getRegExpAst)(t),i=jI(r.value,{},r.flags.ignoreCase);return i}catch(s){if(s.message===VH)e&&(0,Qs.PRINT_WARNING)(""+Bn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+t.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,Qs.PRINT_ERROR)(Bn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+t.toString()+` > +`)+(" Using the regexp-to-ast library version: "+zH.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Bn.getOptimizedStartCodesIndices=eIe;function jI(t,e,r){switch(t.type){case"Disjunction":for(var i=0;i=Ka.minOptimizationVal)for(var f=u.from>=Ka.minOptimizationVal?u.from:Ka.minOptimizationVal,h=u.to,p=(0,Ka.charCodeToOptimizedIndex)(f),m=(0,Ka.charCodeToOptimizedIndex)(h),y=p;y<=m;y++)e[y]=y}}});break;case"Group":jI(o.value,e,r);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Nv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,Qs.values)(e)}Bn.firstCharOptimizedIndices=jI;function YI(t,e,r){var i=(0,Ka.charCodeToOptimizedIndex)(t);e[i]=i,r===!0&&tIe(t,e)}function tIe(t,e){var r=String.fromCharCode(t),i=r.toUpperCase();if(i!==r){var n=(0,Ka.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=r.toLowerCase();if(s!==r){var n=(0,Ka.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function XH(t,e){return(0,Qs.find)(t.value,function(r){if(typeof r=="number")return(0,Qs.contains)(e,r);var i=r;return(0,Qs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Nv(t){return t.quantifier&&t.quantifier.atLeast===0?!0:t.value?(0,Qs.isArray)(t.value)?(0,Qs.every)(t.value,Nv):Nv(t.value):!1}var rIe=function(t){$Ee(e,t);function e(r){var i=t.call(this)||this;return i.targetCharCodes=r,i.found=!1,i}return e.prototype.visitChildren=function(r){if(this.found!==!0){switch(r.type){case"Lookahead":this.visitLookahead(r);return;case"NegativeLookahead":this.visitNegativeLookahead(r);return}t.prototype.visitChildren.call(this,r)}},e.prototype.visitCharacter=function(r){(0,Qs.contains)(this.targetCharCodes,r.value)&&(this.found=!0)},e.prototype.visitSet=function(r){r.complement?XH(r,this.targetCharCodes)===void 0&&(this.found=!0):XH(r,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(zH.BaseRegExpVisitor);function iIe(t,e){if(e instanceof RegExp){var r=(0,_H.getRegExpAst)(e),i=new rIe(t);return i.visit(r),i.found}else return(0,Qs.find)(e,function(n){return(0,Qs.contains)(t,n.charCodeAt(0))})!==void 0}Bn.canMatchCharCode=iIe});var Fv=w(Ze=>{"use strict";var $H=Ze&&Ze.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Ze,"__esModule",{value:!0});Ze.charCodeToOptimizedIndex=Ze.minOptimizationVal=Ze.buildLineBreakIssueMessage=Ze.LineTerminatorOptimizedTester=Ze.isShortPattern=Ze.isCustomPattern=Ze.cloneEmptyGroups=Ze.performWarningRuntimeChecks=Ze.performRuntimeChecks=Ze.addStickyFlag=Ze.addStartOfInput=Ze.findUnreachablePatterns=Ze.findModesThatDoNotExist=Ze.findInvalidGroupType=Ze.findDuplicatePatterns=Ze.findUnsupportedFlags=Ze.findStartOfInputAnchor=Ze.findEmptyMatchRegExps=Ze.findEndOfInputAnchor=Ze.findInvalidPatterns=Ze.findMissingPatterns=Ze.validatePatterns=Ze.analyzeTokenTypes=Ze.enableSticky=Ze.disableSticky=Ze.SUPPORT_STICKY=Ze.MODES=Ze.DEFAULT_MODE=void 0;var eG=UI(),Ar=Rp(),Ne=Yt(),hg=ZH(),tG=GI(),Lo="PATTERN";Ze.DEFAULT_MODE="defaultMode";Ze.MODES="modes";Ze.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function nIe(){Ze.SUPPORT_STICKY=!1}Ze.disableSticky=nIe;function sIe(){Ze.SUPPORT_STICKY=!0}Ze.enableSticky=sIe;function aIe(t,e){e=(0,Ne.defaults)(e,{useSticky:Ze.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(S,k){return k()}});var r=e.tracer;r("initCharCodeToOptimizedIndexMap",function(){oIe()});var i;r("Reject Lexer.NA",function(){i=(0,Ne.reject)(t,function(S){return S[Lo]===Ar.Lexer.NA})});var n=!1,s;r("Transform Patterns",function(){n=!1,s=(0,Ne.map)(i,function(S){var k=S[Lo];if((0,Ne.isRegExp)(k)){var T=k.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!k.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,Ne.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Tv(k):Lv(k)}else{if((0,Ne.isFunction)(k))return n=!0,{exec:k};if((0,Ne.has)(k,"exec"))return n=!0,k;if(typeof k=="string"){if(k.length===1)return k;var Y=k.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(Y);return e.useSticky?Tv(j):Lv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;r("misc mapping",function(){o=(0,Ne.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Ne.map)(i,function(S){var k=S.GROUP;if(k!==Ar.Lexer.SKIPPED){if((0,Ne.isString)(k))return k;if((0,Ne.isUndefined)(k))return!1;throw Error("non exhaustive match")}}),l=(0,Ne.map)(i,function(S){var k=S.LONGER_ALT;if(k){var T=(0,Ne.isArray)(k)?(0,Ne.map)(k,function(Y){return(0,Ne.indexOf)(i,Y)}):[(0,Ne.indexOf)(i,k)];return T}}),c=(0,Ne.map)(i,function(S){return S.PUSH_MODE}),u=(0,Ne.map)(i,function(S){return(0,Ne.has)(S,"POP_MODE")})});var g;r("Line Terminator Handling",function(){var S=nG(e.lineTerminatorCharacters);g=(0,Ne.map)(i,function(k){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Ne.map)(i,function(k){if((0,Ne.has)(k,"LINE_BREAKS"))return k.LINE_BREAKS;if(iG(k,S)===!1)return(0,hg.canMatchCharCode)(S,k.PATTERN)}))});var f,h,p,m;r("Misc Mapping #2",function(){f=(0,Ne.map)(i,Ov),h=(0,Ne.map)(s,rG),p=(0,Ne.reduce)(i,function(S,k){var T=k.GROUP;return(0,Ne.isString)(T)&&T!==Ar.Lexer.SKIPPED&&(S[T]=[]),S},{}),m=(0,Ne.map)(s,function(S,k){return{pattern:s[k],longerAlt:l[k],canLineTerminator:g[k],isCustom:f[k],short:h[k],group:a[k],push:c[k],pop:u[k],tokenTypeIdx:o[k],tokenType:i[k]}})});var y=!0,b=[];return e.safeMode||r("First Char Optimization",function(){b=(0,Ne.reduce)(i,function(S,k,T){if(typeof k.PATTERN=="string"){var Y=k.PATTERN.charCodeAt(0),j=Kv(Y);Mv(S,j,m[T])}else if((0,Ne.isArray)(k.START_CHARS_HINT)){var Z;(0,Ne.forEach)(k.START_CHARS_HINT,function(re){var ee=typeof re=="string"?re.charCodeAt(0):re,A=Kv(ee);Z!==A&&(Z=A,Mv(S,A,m[T]))})}else if((0,Ne.isRegExp)(k.PATTERN))if(k.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+hg.failedOptimizationPrefixMsg+(" Unable to analyze < "+k.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var J=(0,hg.getOptimizedStartCodesIndices)(k.PATTERN,e.ensureOptimizations);(0,Ne.isEmpty)(J)&&(y=!1),(0,Ne.forEach)(J,function(re){Mv(S,re,m[T])})}else e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+hg.failedOptimizationPrefixMsg+(" TokenType: <"+k.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),r("ArrayPacking",function(){b=(0,Ne.packArray)(b)}),{emptyGroups:p,patternIdxToConfig:m,charCodeToPatternIdxToConfig:b,hasCustom:n,canBeOptimized:y}}Ze.analyzeTokenTypes=aIe;function lIe(t,e){var r=[],i=sG(t);r=r.concat(i.errors);var n=oG(i.valid),s=n.valid;return r=r.concat(n.errors),r=r.concat(AIe(s)),r=r.concat(aG(s)),r=r.concat(AG(s,e)),r=r.concat(lG(s)),r}Ze.validatePatterns=lIe;function AIe(t){var e=[],r=(0,Ne.filter)(t,function(i){return(0,Ne.isRegExp)(i[Lo])});return e=e.concat(cG(r)),e=e.concat(gG(r)),e=e.concat(fG(r)),e=e.concat(hG(r)),e=e.concat(uG(r)),e}function sG(t){var e=(0,Ne.filter)(t,function(n){return!(0,Ne.has)(n,Lo)}),r=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:Ar.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(t,e);return{errors:r,valid:i}}Ze.findMissingPatterns=sG;function oG(t){var e=(0,Ne.filter)(t,function(n){var s=n[Lo];return!(0,Ne.isRegExp)(s)&&!(0,Ne.isFunction)(s)&&!(0,Ne.has)(s,"exec")&&!(0,Ne.isString)(s)}),r=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Ar.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(t,e);return{errors:r,valid:i}}Ze.findInvalidPatterns=oG;var cIe=/[^\\][\$]/;function cG(t){var e=function(n){$H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(eG.BaseRegExpVisitor),r=(0,Ne.filter)(t,function(n){var s=n[Lo];try{var o=(0,tG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return cIe.test(s.source)}}),i=(0,Ne.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findEndOfInputAnchor=cG;function uG(t){var e=(0,Ne.filter)(t,function(i){var n=i[Lo];return n.test("")}),r=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:Ar.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return r}Ze.findEmptyMatchRegExps=uG;var uIe=/[^\\[][\^]|^\^/;function gG(t){var e=function(n){$H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(eG.BaseRegExpVisitor),r=(0,Ne.filter)(t,function(n){var s=n[Lo];try{var o=(0,tG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return uIe.test(s.source)}}),i=(0,Ne.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findStartOfInputAnchor=gG;function fG(t){var e=(0,Ne.filter)(t,function(i){var n=i[Lo];return n instanceof RegExp&&(n.multiline||n.global)}),r=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Ar.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return r}Ze.findUnsupportedFlags=fG;function hG(t){var e=[],r=(0,Ne.map)(t,function(s){return(0,Ne.reduce)(t,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Ne.contains)(e,a)&&a.PATTERN!==Ar.Lexer.NA&&(e.push(a),o.push(a)),o},[])});r=(0,Ne.compact)(r);var i=(0,Ne.filter)(r,function(s){return s.length>1}),n=(0,Ne.map)(i,function(s){var o=(0,Ne.map)(s,function(l){return l.name}),a=(0,Ne.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:Ar.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ze.findDuplicatePatterns=hG;function aG(t){var e=(0,Ne.filter)(t,function(i){if(!(0,Ne.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==Ar.Lexer.SKIPPED&&n!==Ar.Lexer.NA&&!(0,Ne.isString)(n)}),r=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Ar.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return r}Ze.findInvalidGroupType=aG;function AG(t,e){var r=(0,Ne.filter)(t,function(n){return n.PUSH_MODE!==void 0&&!(0,Ne.contains)(e,n.PUSH_MODE)}),i=(0,Ne.map)(r,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:Ar.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ze.findModesThatDoNotExist=AG;function lG(t){var e=[],r=(0,Ne.reduce)(t,function(i,n,s){var o=n.PATTERN;return o===Ar.Lexer.NA||((0,Ne.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Ne.isRegExp)(o)&&fIe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Ne.forEach)(t,function(i,n){(0,Ne.forEach)(r,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:Ar.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ze.findUnreachablePatterns=lG;function gIe(t,e){if((0,Ne.isRegExp)(e)){var r=e.exec(t);return r!==null&&r.index===0}else{if((0,Ne.isFunction)(e))return e(t,0,[],{});if((0,Ne.has)(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function fIe(t){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Ne.find)(e,function(r){return t.source.indexOf(r)!==-1})===void 0}function Lv(t){var e=t.ignoreCase?"i":"";return new RegExp("^(?:"+t.source+")",e)}Ze.addStartOfInput=Lv;function Tv(t){var e=t.ignoreCase?"iy":"y";return new RegExp(""+t.source,e)}Ze.addStickyFlag=Tv;function hIe(t,e,r){var i=[];return(0,Ne.has)(t,Ze.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.DEFAULT_MODE+`> property in its definition +`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Ne.has)(t,Ze.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.MODES+`> property in its definition +`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Ne.has)(t,Ze.MODES)&&(0,Ne.has)(t,Ze.DEFAULT_MODE)&&!(0,Ne.has)(t.modes,t.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ze.DEFAULT_MODE+": <"+t.defaultMode+`>which does not exist +`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Ne.has)(t,Ze.MODES)&&(0,Ne.forEach)(t.modes,function(n,s){(0,Ne.forEach)(n,function(o,a){(0,Ne.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:Ar.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ze.performRuntimeChecks=hIe;function pIe(t,e,r){var i=[],n=!1,s=(0,Ne.compact)((0,Ne.flatten)((0,Ne.mapValues)(t.modes,function(l){return l}))),o=(0,Ne.reject)(s,function(l){return l[Lo]===Ar.Lexer.NA}),a=nG(r);return e&&(0,Ne.forEach)(o,function(l){var c=iG(l,a);if(c!==!1){var u=pG(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Ne.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,hg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:Ar.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ze.performWarningRuntimeChecks=pIe;function dIe(t){var e={},r=(0,Ne.keys)(t);return(0,Ne.forEach)(r,function(i){var n=t[i];if((0,Ne.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ze.cloneEmptyGroups=dIe;function Ov(t){var e=t.PATTERN;if((0,Ne.isRegExp)(e))return!1;if((0,Ne.isFunction)(e))return!0;if((0,Ne.has)(e,"exec"))return!0;if((0,Ne.isString)(e))return!1;throw Error("non exhaustive match")}Ze.isCustomPattern=Ov;function rG(t){return(0,Ne.isString)(t)&&t.length===1?t.charCodeAt(0):!1}Ze.isShortPattern=rG;Ze.LineTerminatorOptimizedTester={test:function(t){for(var e=t.length,r=this.lastIndex;r Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===Ar.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+t.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ze.buildLineBreakIssueMessage=pG;function nG(t){var e=(0,Ne.map)(t,function(r){return(0,Ne.isString)(r)&&r.length>0?r.charCodeAt(0):r});return e}function Mv(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}Ze.minOptimizationVal=256;var qI=[];function Kv(t){return t255?255+~~(t/255):t}}});var pg=w(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.isTokenType=Ft.hasExtendingTokensTypesMapProperty=Ft.hasExtendingTokensTypesProperty=Ft.hasCategoriesProperty=Ft.hasShortKeyProperty=Ft.singleAssignCategoriesToksMap=Ft.assignCategoriesMapProp=Ft.assignCategoriesTokensProp=Ft.assignTokenDefaultProps=Ft.expandCategories=Ft.augmentTokenTypes=Ft.tokenIdxToClass=Ft.tokenShortNameIdx=Ft.tokenStructuredMatcherNoCategories=Ft.tokenStructuredMatcher=void 0;var ii=Yt();function CIe(t,e){var r=t.tokenTypeIdx;return r===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[r]===!0}Ft.tokenStructuredMatcher=CIe;function mIe(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}Ft.tokenStructuredMatcherNoCategories=mIe;Ft.tokenShortNameIdx=1;Ft.tokenIdxToClass={};function EIe(t){var e=dG(t);CG(e),EG(e),mG(e),(0,ii.forEach)(e,function(r){r.isParent=r.categoryMatches.length>0})}Ft.augmentTokenTypes=EIe;function dG(t){for(var e=(0,ii.cloneArr)(t),r=t,i=!0;i;){r=(0,ii.compact)((0,ii.flatten)((0,ii.map)(r,function(s){return s.CATEGORIES})));var n=(0,ii.difference)(r,e);e=e.concat(n),(0,ii.isEmpty)(n)?i=!1:r=n}return e}Ft.expandCategories=dG;function CG(t){(0,ii.forEach)(t,function(e){IG(e)||(Ft.tokenIdxToClass[Ft.tokenShortNameIdx]=e,e.tokenTypeIdx=Ft.tokenShortNameIdx++),Uv(e)&&!(0,ii.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Uv(e)||(e.CATEGORIES=[]),yG(e)||(e.categoryMatches=[]),wG(e)||(e.categoryMatchesMap={})})}Ft.assignTokenDefaultProps=CG;function mG(t){(0,ii.forEach)(t,function(e){e.categoryMatches=[],(0,ii.forEach)(e.categoryMatchesMap,function(r,i){e.categoryMatches.push(Ft.tokenIdxToClass[i].tokenTypeIdx)})})}Ft.assignCategoriesTokensProp=mG;function EG(t){(0,ii.forEach)(t,function(e){Hv([],e)})}Ft.assignCategoriesMapProp=EG;function Hv(t,e){(0,ii.forEach)(t,function(r){e.categoryMatchesMap[r.tokenTypeIdx]=!0}),(0,ii.forEach)(e.CATEGORIES,function(r){var i=t.concat(e);(0,ii.contains)(i,r)||Hv(i,r)})}Ft.singleAssignCategoriesToksMap=Hv;function IG(t){return(0,ii.has)(t,"tokenTypeIdx")}Ft.hasShortKeyProperty=IG;function Uv(t){return(0,ii.has)(t,"CATEGORIES")}Ft.hasCategoriesProperty=Uv;function yG(t){return(0,ii.has)(t,"categoryMatches")}Ft.hasExtendingTokensTypesProperty=yG;function wG(t){return(0,ii.has)(t,"categoryMatchesMap")}Ft.hasExtendingTokensTypesMapProperty=wG;function IIe(t){return(0,ii.has)(t,"tokenTypeIdx")}Ft.isTokenType=IIe});var Gv=w(JI=>{"use strict";Object.defineProperty(JI,"__esModule",{value:!0});JI.defaultLexerErrorProvider=void 0;JI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(t){return"Unable to pop Lexer Mode after encountering Token ->"+t.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(t,e,r,i,n){return"unexpected character: ->"+t.charAt(e)+"<- at offset: "+e+","+(" skipped "+r+" characters.")}}});var Rp=w(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});bc.Lexer=bc.LexerDefinitionErrorType=void 0;var oo=Fv(),lr=Yt(),yIe=pg(),wIe=Gv(),BIe=GI(),bIe;(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(bIe=bc.LexerDefinitionErrorType||(bc.LexerDefinitionErrorType={}));var Fp={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:wIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Fp);var QIe=function(){function t(e,r){var i=this;if(r===void 0&&(r=Fp),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,lr.merge)(Fp,r);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=Infinity,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Fp.lineTerminatorsPattern)i.config.lineTerminatorsPattern=oo.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Fp.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,lr.isArray)(e)?(s={modes:{}},s.modes[oo.DEFAULT_MODE]=(0,lr.cloneArr)(e),s[oo.DEFAULT_MODE]=oo.DEFAULT_MODE):(o=!1,s=(0,lr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,oo.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,oo.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,lr.forEach)(s.modes,function(u,g){s.modes[g]=(0,lr.reject)(u,function(f){return(0,lr.isUndefined)(f)})});var a=(0,lr.keys)(s.modes);if((0,lr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,oo.validatePatterns)(u,a))}),(0,lr.isEmpty)(i.lexerDefinitionErrors)){(0,yIe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,oo.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,lr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,lr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,lr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,lr.forEach)(i.lexerDefinitionWarning,function(u){(0,lr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(oo.SUPPORT_STICKY?(i.chopInput=lr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=lr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=lr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=lr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=lr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,lr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(r.ensureOptimizations&&!(0,lr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,BIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,lr.toFastProperties)(i)})})}return t.prototype.tokenize=function(e,r){if(r===void 0&&(r=this.defaultMode),!(0,lr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,lr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,r);return s},t.prototype.tokenizeInternal=function(e,r){var i=this,n,s,o,a,l,c,u,g,f,h,p,m,y,b,S,k,T=e,Y=T.length,j=0,Z=0,J=this.hasCustom?0:Math.floor(e.length/10),re=new Array(J),ee=[],A=this.trackStartLines?1:void 0,oe=this.trackStartLines?1:void 0,le=(0,oo.cloneEmptyGroups)(this.emptyGroups),X=this.trackStartLines,O=this.config.lineTerminatorsPattern,L=0,pe=[],Ce=[],Oe=[],te=[];Object.freeze(te);var se=void 0;function be(){return pe}function he(vr){var Gn=(0,oo.charCodeToOptimizedIndex)(vr),gs=Ce[Gn];return gs===void 0?te:gs}var Fe=function(vr){if(Oe.length===1&&vr.tokenType.PUSH_MODE===void 0){var Gn=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(vr);ee.push({offset:vr.startOffset,line:vr.startLine!==void 0?vr.startLine:void 0,column:vr.startColumn!==void 0?vr.startColumn:void 0,length:vr.image.length,message:Gn})}else{Oe.pop();var gs=(0,lr.last)(Oe);pe=i.patternIdxToConfig[gs],Ce=i.charCodeToPatternIdxToConfig[gs],L=pe.length;var ya=i.canModeBeOptimized[gs]&&i.config.safeMode===!1;Ce&&ya?se=he:se=be}};function Ue(vr){Oe.push(vr),Ce=this.charCodeToPatternIdxToConfig[vr],pe=this.patternIdxToConfig[vr],L=pe.length,L=pe.length;var Gn=this.canModeBeOptimized[vr]&&this.config.safeMode===!1;Ce&&Gn?se=he:se=be}Ue.call(this,r);for(var xe;jc.length){c=a,u=g,xe=gt;break}}}break}}if(c!==null){if(f=c.length,h=xe.group,h!==void 0&&(p=xe.tokenTypeIdx,m=this.createTokenInstance(c,j,p,xe.tokenType,A,oe,f),this.handlePayload(m,u),h===!1?Z=this.addToken(re,Z,m):le[h].push(m)),e=this.chopInput(e,f),j=j+f,oe=this.computeNewColumn(oe,f),X===!0&&xe.canLineTerminator===!0){var Mt=0,mi=void 0,Gt=void 0;O.lastIndex=0;do mi=O.test(c),mi===!0&&(Gt=O.lastIndex-1,Mt++);while(mi===!0);Mt!==0&&(A=A+Mt,oe=f-Gt,this.updateTokenEndLineColumnLocation(m,h,Gt,Mt,A,oe,f))}this.handleModes(xe,Fe,Ue,m)}else{for(var Qr=j,Ti=A,Vs=oe,Un=!1;!Un&&j <"+e+">");var n=(0,lr.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",t.NA=/NOT_APPLICABLE/,t}();bc.Lexer=QIe});var WA=w(xi=>{"use strict";Object.defineProperty(xi,"__esModule",{value:!0});xi.tokenMatcher=xi.createTokenInstance=xi.EOF=xi.createToken=xi.hasTokenLabel=xi.tokenName=xi.tokenLabel=void 0;var ao=Yt(),vIe=Rp(),jv=pg();function SIe(t){return BG(t)?t.LABEL:t.name}xi.tokenLabel=SIe;function kIe(t){return t.name}xi.tokenName=kIe;function BG(t){return(0,ao.isString)(t.LABEL)&&t.LABEL!==""}xi.hasTokenLabel=BG;var xIe="parent",bG="categories",QG="label",vG="group",SG="push_mode",kG="pop_mode",xG="longer_alt",PG="line_breaks",DG="start_chars_hint";function RG(t){return PIe(t)}xi.createToken=RG;function PIe(t){var e=t.pattern,r={};if(r.name=t.name,(0,ao.isUndefined)(e)||(r.PATTERN=e),(0,ao.has)(t,xIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,ao.has)(t,bG)&&(r.CATEGORIES=t[bG]),(0,jv.augmentTokenTypes)([r]),(0,ao.has)(t,QG)&&(r.LABEL=t[QG]),(0,ao.has)(t,vG)&&(r.GROUP=t[vG]),(0,ao.has)(t,kG)&&(r.POP_MODE=t[kG]),(0,ao.has)(t,SG)&&(r.PUSH_MODE=t[SG]),(0,ao.has)(t,xG)&&(r.LONGER_ALT=t[xG]),(0,ao.has)(t,PG)&&(r.LINE_BREAKS=t[PG]),(0,ao.has)(t,DG)&&(r.START_CHARS_HINT=t[DG]),r}xi.EOF=RG({name:"EOF",pattern:vIe.Lexer.NA});(0,jv.augmentTokenTypes)([xi.EOF]);function DIe(t,e,r,i,n,s,o,a){return{image:e,startOffset:r,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}xi.createTokenInstance=DIe;function RIe(t,e){return(0,jv.tokenStructuredMatcher)(t,e)}xi.tokenMatcher=RIe});var bn=w(Vt=>{"use strict";var Ua=Vt&&Vt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.serializeProduction=Vt.serializeGrammar=Vt.Terminal=Vt.Alternation=Vt.RepetitionWithSeparator=Vt.Repetition=Vt.RepetitionMandatoryWithSeparator=Vt.RepetitionMandatory=Vt.Option=Vt.Alternative=Vt.Rule=Vt.NonTerminal=Vt.AbstractProduction=void 0;var fr=Yt(),FIe=WA(),To=function(){function t(e){this._definition=e}return Object.defineProperty(t.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),t.prototype.accept=function(e){e.visit(this),(0,fr.forEach)(this.definition,function(r){r.accept(e)})},t}();Vt.AbstractProduction=To;var FG=function(t){Ua(e,t);function e(r){var i=t.call(this,[])||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(r){},enumerable:!1,configurable:!0}),e.prototype.accept=function(r){r.visit(this)},e}(To);Vt.NonTerminal=FG;var NG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.orgText="",(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Rule=NG;var LG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.ignoreAmbiguities=!1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Alternative=LG;var TG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Option=TG;var OG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.RepetitionMandatory=OG;var MG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.RepetitionMandatoryWithSeparator=MG;var KG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Repetition=KG;var UG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.RepetitionWithSeparator=UG;var HG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(r){this._definition=r},enumerable:!1,configurable:!0}),e}(To);Vt.Alternation=HG;var WI=function(){function t(e){this.idx=1,(0,fr.assign)(this,(0,fr.pick)(e,function(r){return r!==void 0}))}return t.prototype.accept=function(e){e.visit(this)},t}();Vt.Terminal=WI;function NIe(t){return(0,fr.map)(t,Np)}Vt.serializeGrammar=NIe;function Np(t){function e(s){return(0,fr.map)(s,Np)}if(t instanceof FG){var r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return(0,fr.isString)(t.label)&&(r.label=t.label),r}else{if(t instanceof LG)return{type:"Alternative",definition:e(t.definition)};if(t instanceof TG)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof OG)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof MG)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Np(new WI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof UG)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Np(new WI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof KG)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof HG)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof WI){var i={type:"Terminal",name:t.terminalType.name,label:(0,FIe.tokenLabel)(t.terminalType),idx:t.idx};(0,fr.isString)(t.label)&&(i.terminalLabel=t.label);var n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(i.pattern=(0,fr.isRegExp)(n)?n.source:n),i}else{if(t instanceof NG)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}Vt.serializeProduction=Np});var _I=w(zI=>{"use strict";Object.defineProperty(zI,"__esModule",{value:!0});zI.RestWalker=void 0;var Yv=Yt(),Qn=bn(),LIe=function(){function t(){}return t.prototype.walk=function(e,r){var i=this;r===void 0&&(r=[]),(0,Yv.forEach)(e.definition,function(n,s){var o=(0,Yv.drop)(e.definition,s+1);if(n instanceof Qn.NonTerminal)i.walkProdRef(n,o,r);else if(n instanceof Qn.Terminal)i.walkTerminal(n,o,r);else if(n instanceof Qn.Alternative)i.walkFlat(n,o,r);else if(n instanceof Qn.Option)i.walkOption(n,o,r);else if(n instanceof Qn.RepetitionMandatory)i.walkAtLeastOne(n,o,r);else if(n instanceof Qn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,r);else if(n instanceof Qn.RepetitionWithSeparator)i.walkManySep(n,o,r);else if(n instanceof Qn.Repetition)i.walkMany(n,o,r);else if(n instanceof Qn.Alternation)i.walkOr(n,o,r);else throw Error("non exhaustive match")})},t.prototype.walkTerminal=function(e,r,i){},t.prototype.walkProdRef=function(e,r,i){},t.prototype.walkFlat=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkOption=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkAtLeastOne=function(e,r,i){var n=[new Qn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkAtLeastOneSep=function(e,r,i){var n=GG(e,r,i);this.walk(e,n)},t.prototype.walkMany=function(e,r,i){var n=[new Qn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkManySep=function(e,r,i){var n=GG(e,r,i);this.walk(e,n)},t.prototype.walkOr=function(e,r,i){var n=this,s=r.concat(i);(0,Yv.forEach)(e.definition,function(o){var a=new Qn.Alternative({definition:[o]});n.walk(a,s)})},t}();zI.RestWalker=LIe;function GG(t,e,r){var i=[new Qn.Option({definition:[new Qn.Terminal({terminalType:t.separator})].concat(t.definition)})],n=i.concat(e,r);return n}});var dg=w(VI=>{"use strict";Object.defineProperty(VI,"__esModule",{value:!0});VI.GAstVisitor=void 0;var Oo=bn(),TIe=function(){function t(){}return t.prototype.visit=function(e){var r=e;switch(r.constructor){case Oo.NonTerminal:return this.visitNonTerminal(r);case Oo.Alternative:return this.visitAlternative(r);case Oo.Option:return this.visitOption(r);case Oo.RepetitionMandatory:return this.visitRepetitionMandatory(r);case Oo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(r);case Oo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(r);case Oo.Repetition:return this.visitRepetition(r);case Oo.Alternation:return this.visitAlternation(r);case Oo.Terminal:return this.visitTerminal(r);case Oo.Rule:return this.visitRule(r);default:throw Error("non exhaustive match")}},t.prototype.visitNonTerminal=function(e){},t.prototype.visitAlternative=function(e){},t.prototype.visitOption=function(e){},t.prototype.visitRepetition=function(e){},t.prototype.visitRepetitionMandatory=function(e){},t.prototype.visitRepetitionMandatoryWithSeparator=function(e){},t.prototype.visitRepetitionWithSeparator=function(e){},t.prototype.visitAlternation=function(e){},t.prototype.visitTerminal=function(e){},t.prototype.visitRule=function(e){},t}();VI.GAstVisitor=TIe});var Tp=w(ji=>{"use strict";var OIe=ji&&ji.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ji,"__esModule",{value:!0});ji.collectMethods=ji.DslMethodsCollectorVisitor=ji.getProductionDslName=ji.isBranchingProd=ji.isOptionalProd=ji.isSequenceProd=void 0;var Lp=Yt(),kr=bn(),MIe=dg();function KIe(t){return t instanceof kr.Alternative||t instanceof kr.Option||t instanceof kr.Repetition||t instanceof kr.RepetitionMandatory||t instanceof kr.RepetitionMandatoryWithSeparator||t instanceof kr.RepetitionWithSeparator||t instanceof kr.Terminal||t instanceof kr.Rule}ji.isSequenceProd=KIe;function qv(t,e){e===void 0&&(e=[]);var r=t instanceof kr.Option||t instanceof kr.Repetition||t instanceof kr.RepetitionWithSeparator;return r?!0:t instanceof kr.Alternation?(0,Lp.some)(t.definition,function(i){return qv(i,e)}):t instanceof kr.NonTerminal&&(0,Lp.contains)(e,t)?!1:t instanceof kr.AbstractProduction?(t instanceof kr.NonTerminal&&e.push(t),(0,Lp.every)(t.definition,function(i){return qv(i,e)})):!1}ji.isOptionalProd=qv;function UIe(t){return t instanceof kr.Alternation}ji.isBranchingProd=UIe;function HIe(t){if(t instanceof kr.NonTerminal)return"SUBRULE";if(t instanceof kr.Option)return"OPTION";if(t instanceof kr.Alternation)return"OR";if(t instanceof kr.RepetitionMandatory)return"AT_LEAST_ONE";if(t instanceof kr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(t instanceof kr.RepetitionWithSeparator)return"MANY_SEP";if(t instanceof kr.Repetition)return"MANY";if(t instanceof kr.Terminal)return"CONSUME";throw Error("non exhaustive match")}ji.getProductionDslName=HIe;var jG=function(t){OIe(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.separator="-",r.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},r}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(r){var i=r.terminalType.name+this.separator+"Terminal";(0,Lp.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitNonTerminal=function(r){var i=r.nonTerminalName+this.separator+"Terminal";(0,Lp.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitOption=function(r){this.dslMethods.option.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.dslMethods.repetitionWithSeparator.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.dslMethods.repetitionMandatory.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.dslMethods.repetitionMandatoryWithSeparator.push(r)},e.prototype.visitRepetition=function(r){this.dslMethods.repetition.push(r)},e.prototype.visitAlternation=function(r){this.dslMethods.alternation.push(r)},e}(MIe.GAstVisitor);ji.DslMethodsCollectorVisitor=jG;var XI=new jG;function GIe(t){XI.reset(),t.accept(XI);var e=XI.dslMethods;return XI.reset(),e}ji.collectMethods=GIe});var Wv=w(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.firstForTerminal=Mo.firstForBranching=Mo.firstForSequence=Mo.first=void 0;var ZI=Yt(),YG=bn(),Jv=Tp();function $I(t){if(t instanceof YG.NonTerminal)return $I(t.referencedRule);if(t instanceof YG.Terminal)return WG(t);if((0,Jv.isSequenceProd)(t))return qG(t);if((0,Jv.isBranchingProd)(t))return JG(t);throw Error("non exhaustive match")}Mo.first=$I;function qG(t){for(var e=[],r=t.definition,i=0,n=r.length>i,s,o=!0;n&&o;)s=r[i],o=(0,Jv.isOptionalProd)(s),e=e.concat($I(s)),i=i+1,n=r.length>i;return(0,ZI.uniq)(e)}Mo.firstForSequence=qG;function JG(t){var e=(0,ZI.map)(t.definition,function(r){return $I(r)});return(0,ZI.uniq)((0,ZI.flatten)(e))}Mo.firstForBranching=JG;function WG(t){return[t.terminalType]}Mo.firstForTerminal=WG});var zv=w(ey=>{"use strict";Object.defineProperty(ey,"__esModule",{value:!0});ey.IN=void 0;ey.IN="_~IN~_"});var ZG=w(vs=>{"use strict";var jIe=vs&&vs.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(vs,"__esModule",{value:!0});vs.buildInProdFollowPrefix=vs.buildBetweenProdsFollowPrefix=vs.computeAllProdsFollows=vs.ResyncFollowsWalker=void 0;var YIe=_I(),qIe=Wv(),zG=Yt(),_G=zv(),JIe=bn(),XG=function(t){jIe(e,t);function e(r){var i=t.call(this)||this;return i.topProd=r,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(r,i,n){},e.prototype.walkProdRef=function(r,i,n){var s=VG(r.referencedRule,r.idx)+this.topProd.name,o=i.concat(n),a=new JIe.Alternative({definition:o}),l=(0,qIe.first)(a);this.follows[s]=l},e}(YIe.RestWalker);vs.ResyncFollowsWalker=XG;function WIe(t){var e={};return(0,zG.forEach)(t,function(r){var i=new XG(r).startWalking();(0,zG.assign)(e,i)}),e}vs.computeAllProdsFollows=WIe;function VG(t,e){return t.name+e+_G.IN}vs.buildBetweenProdsFollowPrefix=VG;function zIe(t){var e=t.terminalType.name;return e+t.idx+_G.IN}vs.buildInProdFollowPrefix=zIe});var Op=w(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.defaultGrammarValidatorErrorProvider=Ha.defaultGrammarResolverErrorProvider=Ha.defaultParserErrorProvider=void 0;var Cg=WA(),_Ie=Yt(),Ao=Yt(),_v=bn(),$G=Tp();Ha.defaultParserErrorProvider={buildMismatchTokenMessage:function(t){var e=t.expected,r=t.actual,i=t.previous,n=t.ruleName,s=(0,Cg.hasTokenLabel)(e),o=s?"--> "+(0,Cg.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+r.image+"' <--";return a},buildNotAllInputParsedMessage:function(t){var e=t.firstRedundant,r=t.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(t){var e=t.expectedPathsPerAlt,r=t.actual,i=t.previous,n=t.customUserDescription,s=t.ruleName,o="Expecting: ",a=(0,Ao.first)(r).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,Ao.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,Ao.map)(c,function(h){return"["+(0,Ao.map)(h,function(p){return(0,Cg.tokenLabel)(p)}).join(", ")+"]"}),g=(0,Ao.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(t){var e=t.expectedIterationPaths,r=t.actual,i=t.customUserDescription,n=t.ruleName,s="Expecting: ",o=(0,Ao.first)(r).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,Ao.map)(e,function(u){return"["+(0,Ao.map)(u,function(g){return(0,Cg.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Ha.defaultParserErrorProvider);Ha.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(t,e){var r="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+t.name+"<-";return r}};Ha.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(t,e){function r(u){return u instanceof _v.Terminal?u.terminalType.name:u instanceof _v.NonTerminal?u.nonTerminalName:""}var i=t.name,n=(0,Ao.first)(e),s=n.idx,o=(0,$G.getProductionDslName)(n),a=r(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(t){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+t.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(t){var e=(0,Ao.map)(t.prefixPath,function(n){return(0,Cg.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous alternatives: <"+t.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+t.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(t){var e=(0,Ao.map)(t.prefixPath,function(n){return(0,Cg.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous Alternatives Detected: <"+t.ambiguityIndices.join(" ,")+"> in "+(" inside <"+t.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(t){var e=(0,$G.getProductionDslName)(t.repetition);t.repetition.idx!==0&&(e+=t.repetition.idx);var r="The repetition <"+e+"> within Rule <"+t.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return r},buildTokenNameError:function(t){return"deprecated"},buildEmptyAlternationError:function(t){var e="Ambiguous empty alternative: <"+(t.emptyChoiceIdx+1)+">"+(" in inside <"+t.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(t){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+t.topLevelRule.name+`> Rule. + has `+(t.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(t){var e=t.topLevelRule.name,r=_Ie.map(t.leftRecursionPath,function(s){return s.name}),i=e+" --> "+r.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(t){return"deprecated"},buildDuplicateRuleNameError:function(t){var e;t.topLevelRule instanceof _v.Rule?e=t.topLevelRule.name:e=t.topLevelRule;var r="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+t.grammarName+"<-";return r}}});var rj=w(zA=>{"use strict";var VIe=zA&&zA.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(zA,"__esModule",{value:!0});zA.GastRefResolverVisitor=zA.resolveGrammar=void 0;var XIe=Zn(),ej=Yt(),ZIe=dg();function $Ie(t,e){var r=new tj(t,e);return r.resolveRefs(),r.errors}zA.resolveGrammar=$Ie;var tj=function(t){VIe(e,t);function e(r,i){var n=t.call(this)||this;return n.nameToTopRule=r,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var r=this;(0,ej.forEach)((0,ej.values)(this.nameToTopRule),function(i){r.currTopLevel=i,i.accept(r)})},e.prototype.visitNonTerminal=function(r){var i=this.nameToTopRule[r.nonTerminalName];if(i)r.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,r);this.errors.push({message:n,type:XIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:r.nonTerminalName})}},e}(ZIe.GAstVisitor);zA.GastRefResolverVisitor=tj});var Kp=w(Mr=>{"use strict";var Qc=Mr&&Mr.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Mr,"__esModule",{value:!0});Mr.nextPossibleTokensAfter=Mr.possiblePathsFrom=Mr.NextTerminalAfterAtLeastOneSepWalker=Mr.NextTerminalAfterAtLeastOneWalker=Mr.NextTerminalAfterManySepWalker=Mr.NextTerminalAfterManyWalker=Mr.AbstractNextTerminalAfterProductionWalker=Mr.NextAfterTokenWalker=Mr.AbstractNextPossibleTokensWalker=void 0;var ij=_I(),Kt=Yt(),eye=Wv(),Dt=bn(),nj=function(t){Qc(e,t);function e(r,i){var n=t.call(this)||this;return n.topProd=r,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(r,i){i===void 0&&(i=[]),this.found||t.prototype.walk.call(this,r,i)},e.prototype.walkProdRef=function(r,i,n){if(r.referencedRule.name===this.nextProductionName&&r.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(r.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(ij.RestWalker);Mr.AbstractNextPossibleTokensWalker=nj;var tye=function(t){Qc(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(r,i,n){if(this.isAtEndOfPath&&r.terminalType.name===this.nextTerminalName&&r.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,eye.first)(o),this.found=!0}},e}(nj);Mr.NextAfterTokenWalker=tye;var Mp=function(t){Qc(e,t);function e(r,i){var n=t.call(this)||this;return n.topRule=r,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(ij.RestWalker);Mr.AbstractNextTerminalAfterProductionWalker=Mp;var rye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkMany=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkMany.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterManyWalker=rye;var iye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkManySep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkManySep.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterManySepWalker=iye;var nye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOne.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterAtLeastOneWalker=nye;var sye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOneSep.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterAtLeastOneSepWalker=sye;function sj(t,e,r){r===void 0&&(r=[]),r=(0,Kt.cloneArr)(r);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(t,n+1))}function o(c){var u=sj(s(c),e,r);return i.concat(u)}for(;r.length=0;le--){var X=b.definition[le],O={idx:p,def:X.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(b instanceof Dt.Alternative)g.push({idx:p,def:b.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:y});else if(b instanceof Dt.Rule)g.push(oye(b,p,m,y));else throw Error("non exhaustive match")}}return u}Mr.nextPossibleTokensAfter=aye;function oye(t,e,r,i){var n=(0,Kt.cloneArr)(r);n.push(t.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:t.definition,ruleStack:n,occurrenceStack:s}}});var Up=w(tr=>{"use strict";var oj=tr&&tr.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(tr,"__esModule",{value:!0});tr.areTokenCategoriesNotUsed=tr.isStrictPrefixOfPath=tr.containsPath=tr.getLookaheadPathsForOptionalProd=tr.getLookaheadPathsForOr=tr.lookAheadSequenceFromAlternatives=tr.buildSingleAlternativeLookaheadFunction=tr.buildAlternativesLookAheadFunc=tr.buildLookaheadFuncForOptionalProd=tr.buildLookaheadFuncForOr=tr.getProdType=tr.PROD_TYPE=void 0;var cr=Yt(),aj=Kp(),Aye=_I(),ty=pg(),_A=bn(),lye=dg(),ci;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(ci=tr.PROD_TYPE||(tr.PROD_TYPE={}));function cye(t){if(t instanceof _A.Option)return ci.OPTION;if(t instanceof _A.Repetition)return ci.REPETITION;if(t instanceof _A.RepetitionMandatory)return ci.REPETITION_MANDATORY;if(t instanceof _A.RepetitionMandatoryWithSeparator)return ci.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof _A.RepetitionWithSeparator)return ci.REPETITION_WITH_SEPARATOR;if(t instanceof _A.Alternation)return ci.ALTERNATION;throw Error("non exhaustive match")}tr.getProdType=cye;function uye(t,e,r,i,n,s){var o=Aj(t,e,r),a=Vv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o,i,a,n)}tr.buildLookaheadFuncForOr=uye;function gye(t,e,r,i,n,s){var o=lj(t,e,n,r),a=Vv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o[0],a,i)}tr.buildLookaheadFuncForOptionalProd=gye;function fye(t,e,r,i){var n=t.length,s=(0,cr.every)(t,function(l){return(0,cr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,cr.map)(l,function(k){return k.GATE}),u=0;u{"use strict";var $v=Xt&&Xt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Xt,"__esModule",{value:!0});Xt.checkPrefixAlternativesAmbiguities=Xt.validateSomeNonEmptyLookaheadPath=Xt.validateTooManyAlts=Xt.RepetionCollector=Xt.validateAmbiguousAlternationAlternatives=Xt.validateEmptyOrAlternative=Xt.getFirstNoneTerminal=Xt.validateNoLeftRecursion=Xt.validateRuleIsOverridden=Xt.validateRuleDoesNotAlreadyExist=Xt.OccurrenceValidationCollector=Xt.identifyProductionForDuplicates=Xt.validateGrammar=void 0;var nr=Yt(),xr=Yt(),Ko=Zn(),eS=Tp(),mg=Up(),mye=Kp(),lo=bn(),tS=dg();function yye(t,e,r,i,n){var s=nr.map(t,function(h){return Eye(h,i)}),o=nr.map(t,function(h){return rS(h,h,i)}),a=[],l=[],c=[];(0,xr.every)(o,xr.isEmpty)&&(a=(0,xr.map)(t,function(h){return hj(h,i)}),l=(0,xr.map)(t,function(h){return pj(h,e,i)}),c=Cj(t,e,i));var u=Iye(t,r,i),g=(0,xr.map)(t,function(h){return dj(h,i)}),f=(0,xr.map)(t,function(h){return fj(h,t,n,i)});return nr.flatten(s.concat(c,o,a,l,u,g,f))}Xt.validateGrammar=yye;function Eye(t,e){var r=new Ij;t.accept(r);var i=r.allProductions,n=nr.groupBy(i,mj),s=nr.pick(n,function(a){return a.length>1}),o=nr.map(nr.values(s),function(a){var l=nr.first(a),c=e.buildDuplicateFoundError(t,a),u=(0,eS.getProductionDslName)(l),g={message:c,type:Ko.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:u,occurrence:l.idx},f=Ej(l);return f&&(g.parameter=f),g});return o}function mj(t){return(0,eS.getProductionDslName)(t)+"_#_"+t.idx+"_#_"+Ej(t)}Xt.identifyProductionForDuplicates=mj;function Ej(t){return t instanceof lo.Terminal?t.terminalType.name:t instanceof lo.NonTerminal?t.nonTerminalName:""}var Ij=function(t){$v(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitNonTerminal=function(r){this.allProductions.push(r)},e.prototype.visitOption=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e.prototype.visitAlternation=function(r){this.allProductions.push(r)},e.prototype.visitTerminal=function(r){this.allProductions.push(r)},e}(tS.GAstVisitor);Xt.OccurrenceValidationCollector=Ij;function fj(t,e,r,i){var n=[],s=(0,xr.reduce)(e,function(a,l){return l.name===t.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});n.push({message:o,type:Ko.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:t.name})}return n}Xt.validateRuleDoesNotAlreadyExist=fj;function wye(t,e,r){var i=[],n;return nr.contains(e,t)||(n="Invalid rule override, rule: ->"+t+"<- cannot be overridden in the grammar: ->"+r+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:Ko.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:t})),i}Xt.validateRuleIsOverridden=wye;function rS(t,e,r,i){i===void 0&&(i=[]);var n=[],s=Hp(e.definition);if(nr.isEmpty(s))return[];var o=t.name,a=nr.contains(s,t);a&&n.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:i}),type:Ko.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=nr.difference(s,i.concat([t])),c=nr.map(l,function(u){var g=nr.cloneArr(i);return g.push(u),rS(t,u,r,g)});return n.concat(nr.flatten(c))}Xt.validateNoLeftRecursion=rS;function Hp(t){var e=[];if(nr.isEmpty(t))return e;var r=nr.first(t);if(r instanceof lo.NonTerminal)e.push(r.referencedRule);else if(r instanceof lo.Alternative||r instanceof lo.Option||r instanceof lo.RepetitionMandatory||r instanceof lo.RepetitionMandatoryWithSeparator||r instanceof lo.RepetitionWithSeparator||r instanceof lo.Repetition)e=e.concat(Hp(r.definition));else if(r instanceof lo.Alternation)e=nr.flatten(nr.map(r.definition,function(o){return Hp(o.definition)}));else if(!(r instanceof lo.Terminal))throw Error("non exhaustive match");var i=(0,eS.isOptionalProd)(r),n=t.length>1;if(i&&n){var s=nr.drop(t);return e.concat(Hp(s))}else return e}Xt.getFirstNoneTerminal=Hp;var iS=function(t){$v(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.alternations=[],r}return e.prototype.visitAlternation=function(r){this.alternations.push(r)},e}(tS.GAstVisitor);function hj(t,e){var r=new iS;t.accept(r);var i=r.alternations,n=nr.reduce(i,function(s,o){var a=nr.dropRight(o.definition),l=nr.map(a,function(c,u){var g=(0,mye.nextPossibleTokensAfter)([c],[],null,1);return nr.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:o,emptyChoiceIdx:u}),type:Ko.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(nr.compact(l))},[]);return n}Xt.validateEmptyOrAlternative=hj;function pj(t,e,r){var i=new iS;t.accept(i);var n=i.alternations;n=(0,xr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=nr.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,mg.getLookaheadPathsForOr)(l,t,c,a),g=Bye(u,a,t,r),f=yj(u,a,t,r);return o.concat(g,f)},[]);return s}Xt.validateAmbiguousAlternationAlternatives=pj;var wj=function(t){$v(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e}(tS.GAstVisitor);Xt.RepetionCollector=wj;function dj(t,e){var r=new iS;t.accept(r);var i=r.alternations,n=nr.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:o}),type:Ko.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:t.name,occurrence:o.idx}),s},[]);return n}Xt.validateTooManyAlts=dj;function Cj(t,e,r){var i=[];return(0,xr.forEach)(t,function(n){var s=new wj;n.accept(s);var o=s.allProductions;(0,xr.forEach)(o,function(a){var l=(0,mg.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,mg.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,xr.isEmpty)((0,xr.flatten)(f))){var h=r.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:Ko.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Xt.validateSomeNonEmptyLookaheadPath=Cj;function Bye(t,e,r,i){var n=[],s=(0,xr.reduce)(t,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,xr.forEach)(l,function(u){var g=[c];(0,xr.forEach)(t,function(f,h){c!==h&&(0,mg.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,mg.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=nr.map(s,function(a){var l=(0,xr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:Ko.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function yj(t,e,r,i){var n=[],s=(0,xr.reduce)(t,function(o,a,l){var c=(0,xr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,xr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,xr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(Eg,"__esModule",{value:!0});Eg.validateGrammar=Eg.resolveGrammar=void 0;var sS=Yt(),bye=rj(),Qye=nS(),Bj=Op();function vye(t){t=(0,sS.defaults)(t,{errMsgProvider:Bj.defaultGrammarResolverErrorProvider});var e={};return(0,sS.forEach)(t.rules,function(r){e[r.name]=r}),(0,bye.resolveGrammar)(e,t.errMsgProvider)}Eg.resolveGrammar=vye;function Sye(t){return t=(0,sS.defaults)(t,{errMsgProvider:Bj.defaultGrammarValidatorErrorProvider}),(0,Qye.validateGrammar)(t.rules,t.maxLookahead,t.tokenTypes,t.errMsgProvider,t.grammarName)}Eg.validateGrammar=Sye});var Ig=w(vn=>{"use strict";var Gp=vn&&vn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(vn,"__esModule",{value:!0});vn.EarlyExitException=vn.NotAllInputParsedException=vn.NoViableAltException=vn.MismatchedTokenException=vn.isRecognitionException=void 0;var kye=Yt(),Qj="MismatchedTokenException",vj="NoViableAltException",Sj="EarlyExitException",kj="NotAllInputParsedException",xj=[Qj,vj,Sj,kj];Object.freeze(xj);function xye(t){return(0,kye.contains)(xj,t.name)}vn.isRecognitionException=xye;var ry=function(t){Gp(e,t);function e(r,i){var n=this.constructor,s=t.call(this,r)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),Pye=function(t){Gp(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Qj,s}return e}(ry);vn.MismatchedTokenException=Pye;var Dye=function(t){Gp(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=vj,s}return e}(ry);vn.NoViableAltException=Dye;var Rye=function(t){Gp(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.name=kj,n}return e}(ry);vn.NotAllInputParsedException=Rye;var Fye=function(t){Gp(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Sj,s}return e}(ry);vn.EarlyExitException=Fye});var aS=w(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.attemptInRepetitionRecovery=Yi.Recoverable=Yi.InRuleRecoveryException=Yi.IN_RULE_RECOVERY_EXCEPTION=Yi.EOF_FOLLOW_KEY=void 0;var iy=WA(),Ss=Yt(),Nye=Ig(),Lye=zv(),Tye=Zn();Yi.EOF_FOLLOW_KEY={};Yi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function oS(t){this.name=Yi.IN_RULE_RECOVERY_EXCEPTION,this.message=t}Yi.InRuleRecoveryException=oS;oS.prototype=Error.prototype;var Oye=function(){function t(){}return t.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,Ss.has)(e,"recoveryEnabled")?e.recoveryEnabled:Tye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Pj)},t.prototype.getTokenToInsert=function(e){var r=(0,iy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r},t.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},t.prototype.tryInRepetitionRecovery=function(e,r,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),m=new Nye.MismatchedTokenException(p,u,s.LA(0));m.resyncedTokens=(0,Ss.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,r);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},t.prototype.shouldInRepetitionRecoveryBeTried=function(e,r,i){return!(i===!1||e===void 0||r===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))},t.prototype.getFollowsForInRuleRecovery=function(e,r){var i=this.getCurrentGrammarPath(e,r),n=this.getNextPossibleTokenTypes(i);return n},t.prototype.tryInRuleRecovery=function(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new oS("sad sad panda")},t.prototype.canPerformInRuleRecovery=function(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)},t.prototype.canRecoverWithSingleTokenInsertion=function(e,r){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,Ss.isEmpty)(r))return!1;var n=this.LA(1),s=(0,Ss.find)(r,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},t.prototype.canRecoverWithSingleTokenDeletion=function(e){var r=this.tokenMatcher(this.LA(2),e);return r},t.prototype.isInCurrentRuleReSyncSet=function(e){var r=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(r);return(0,Ss.contains)(i,e)},t.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),r=this.LA(1),i=2;;){var n=r.tokenType;if((0,Ss.contains)(e,n))return n;r=this.LA(i),i++}},t.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Yi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(i)}},t.prototype.buildFullFollowKeyStack=function(){var e=this,r=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,Ss.map)(r,function(n,s){return s===0?Yi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(r[s-1])}})},t.prototype.flattenFollowSet=function(){var e=this,r=(0,Ss.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,Ss.flatten)(r)},t.prototype.getFollowSetFromFollowKey=function(e){if(e===Yi.EOF_FOLLOW_KEY)return[iy.EOF];var r=e.ruleName+e.idxInCallingRule+Lye.IN+e.inRule;return this.resyncFollows[r]},t.prototype.addToResyncTokens=function(e,r){return this.tokenMatcher(e,iy.EOF)||r.push(e),r},t.prototype.reSyncTo=function(e){for(var r=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,r);return(0,Ss.dropRight)(r)},t.prototype.attemptInRepetitionRecovery=function(e,r,i,n,s,o,a){},t.prototype.getCurrentGrammarPath=function(e,r){var i=this.getHumanReadableRuleStack(),n=(0,Ss.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:r};return s},t.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,Ss.map)(this.RULE_STACK,function(r){return e.shortRuleNameToFullName(r)})},t}();Yi.Recoverable=Oye;function Pj(t,e,r,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=iy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(t,e,r,f)}Yi.attemptInRepetitionRecovery=Pj});var ny=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.LooksAhead=void 0;var Ga=Up(),co=Yt(),Dj=Zn(),ja=ny(),vc=Tp(),Kye=function(){function t(){}return t.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,co.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Dj.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,co.has)(e,"maxLookahead")?e.maxLookahead:Dj.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,co.isES2015MapSupported)()?new Map:[],(0,co.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},t.prototype.preComputeLookaheadFunctions=function(e){var r=this;(0,co.forEach)(e,function(i){r.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,vc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,co.forEach)(s,function(g){var f=g.idx===0?"":g.idx;r.TRACE_INIT(""+(0,vc.getProductionDslName)(g)+f,function(){var h=(0,Ga.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||r.maxLookahead,g.hasPredicates,r.dynamicTokensEnabled,r.lookAheadBuilderForAlternatives),p=(0,ja.getKeyForAutomaticLookahead)(r.fullRuleNameToShort[i.name],ja.OR_IDX,g.idx);r.setLaFuncCache(p,h)})}),(0,co.forEach)(o,function(g){r.computeLookaheadFunc(i,g.idx,ja.MANY_IDX,Ga.PROD_TYPE.REPETITION,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(a,function(g){r.computeLookaheadFunc(i,g.idx,ja.OPTION_IDX,Ga.PROD_TYPE.OPTION,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(l,function(g){r.computeLookaheadFunc(i,g.idx,ja.AT_LEAST_ONE_IDX,Ga.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(c,function(g){r.computeLookaheadFunc(i,g.idx,ja.AT_LEAST_ONE_SEP_IDX,Ga.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(u,function(g){r.computeLookaheadFunc(i,g.idx,ja.MANY_SEP_IDX,Ga.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,vc.getProductionDslName)(g))})})})},t.prototype.computeLookaheadFunc=function(e,r,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(r===0?"":r),function(){var l=(0,Ga.buildLookaheadFuncForOptionalProd)(r,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,ja.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,r);a.setLaFuncCache(c,l)})},t.prototype.lookAheadBuilderForOptional=function(e,r,i){return(0,Ga.buildSingleAlternativeLookaheadFunction)(e,r,i)},t.prototype.lookAheadBuilderForAlternatives=function(e,r,i,n){return(0,Ga.buildAlternativesLookAheadFunc)(e,r,i,n)},t.prototype.getKeyForAutomaticLookahead=function(e,r){var i=this.getLastExplicitRuleShortName();return(0,ja.getKeyForAutomaticLookahead)(i,e,r)},t.prototype.getLaFuncFromCache=function(e){},t.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},t.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},t.prototype.setLaFuncCache=function(e,r){},t.prototype.setLaFuncCacheUsingMap=function(e,r){this.lookAheadFuncsCache.set(e,r)},t.prototype.setLaFuncUsingObj=function(e,r){this.lookAheadFuncsCache[e]=r},t}();sy.LooksAhead=Kye});var Fj=w(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});Uo.addNoneTerminalToCst=Uo.addTerminalToCst=Uo.setNodeLocationFull=Uo.setNodeLocationOnlyOffset=void 0;function Uye(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.defineNameProp=VA.functionName=VA.classNameFromInstance=void 0;var Yye=Yt();function qye(t){return Nj(t.constructor)}VA.classNameFromInstance=qye;var Lj="name";function Nj(t){var e=t.name;return e||"anonymous"}VA.functionName=Nj;function Jye(t,e){var r=Object.getOwnPropertyDescriptor(t,Lj);return(0,Yye.isUndefined)(r)||r.configurable?(Object.defineProperty(t,Lj,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}VA.defineNameProp=Jye});var Uj=w(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.validateRedundantMethods=Pi.validateMissingCstMethods=Pi.validateVisitor=Pi.CstVisitorDefinitionError=Pi.createBaseVisitorConstructorWithDefaults=Pi.createBaseSemanticVisitorConstructor=Pi.defaultVisit=void 0;var ks=Yt(),jp=AS();function Tj(t,e){for(var r=(0,ks.keys)(t),i=r.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return r.prototype=i,r.prototype.constructor=r,r._RULE_NAMES=e,r}Pi.createBaseSemanticVisitorConstructor=Wye;function zye(t,e,r){var i=function(){};(0,jp.defineNameProp)(i,t+"BaseSemanticsWithDefaults");var n=Object.create(r.prototype);return(0,ks.forEach)(e,function(s){n[s]=Tj}),i.prototype=n,i.prototype.constructor=i,i}Pi.createBaseVisitorConstructorWithDefaults=zye;var lS;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(lS=Pi.CstVisitorDefinitionError||(Pi.CstVisitorDefinitionError={}));function Oj(t,e){var r=Mj(t,e),i=Kj(t,e);return r.concat(i)}Pi.validateVisitor=Oj;function Mj(t,e){var r=(0,ks.map)(e,function(i){if(!(0,ks.isFunction)(t[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,jp.functionName)(t.constructor)+" CST Visitor.",type:lS.MISSING_METHOD,methodName:i}});return(0,ks.compact)(r)}Pi.validateMissingCstMethods=Mj;var _ye=["constructor","visit","validateVisitor"];function Kj(t,e){var r=[];for(var i in t)(0,ks.isFunction)(t[i])&&!(0,ks.contains)(_ye,i)&&!(0,ks.contains)(e,i)&&r.push({msg:"Redundant visitor method: <"+i+"> on "+(0,jp.functionName)(t.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:lS.REDUNDANT_METHOD,methodName:i});return r}Pi.validateRedundantMethods=Kj});var Gj=w(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.TreeBuilder=void 0;var yg=Fj(),ni=Yt(),Hj=Uj(),Vye=Zn(),Xye=function(){function t(){}return t.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ni.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Vye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ni.NOOP,this.cstFinallyStateUpdate=ni.NOOP,this.cstPostTerminal=ni.NOOP,this.cstPostNonTerminal=ni.NOOP,this.cstPostRule=ni.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yg.setNodeLocationFull,this.setNodeLocationFromNode=yg.setNodeLocationFull,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yg.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=yg.setNodeLocationOnlyOffset,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=ni.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},t.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},t.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},t.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.setInitialNodeLocationFullRegular=function(e){var r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.cstInvocationStateUpdate=function(e,r){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},t.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},t.prototype.cstPostRuleFull=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?(i.endOffset=r.endOffset,i.endLine=r.endLine,i.endColumn=r.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},t.prototype.cstPostRuleOnlyOffset=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?i.endOffset=r.endOffset:i.startOffset=NaN},t.prototype.cstPostTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yg.addTerminalToCst)(i,r,e),this.setNodeLocationFromToken(i.location,r)},t.prototype.cstPostNonTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yg.addNoneTerminalToCst)(i,r,e),this.setNodeLocationFromNode(i.location,e.location)},t.prototype.getBaseCstVisitorConstructor=function(){if((0,ni.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Hj.createBaseSemanticVisitorConstructor)(this.className,(0,ni.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},t.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ni.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Hj.createBaseVisitorConstructorWithDefaults)(this.className,(0,ni.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},t.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},t.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},t.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},t}();oy.TreeBuilder=Xye});var Yj=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.LexerAdapter=void 0;var jj=Zn(),Zye=function(){function t(){}return t.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(t.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),t.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):jj.END_OF_FILE},t.prototype.LA=function(e){var r=this.currIdx+e;return r<0||this.tokVectorLength<=r?jj.END_OF_FILE:this.tokVector[r]},t.prototype.consumeToken=function(){this.currIdx++},t.prototype.exportLexerState=function(){return this.currIdx},t.prototype.importLexerState=function(e){this.currIdx=e},t.prototype.resetLexerState=function(){this.currIdx=-1},t.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},t.prototype.getLexerPosition=function(){return this.exportLexerState()},t}();ay.LexerAdapter=Zye});var Jj=w(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.RecognizerApi=void 0;var qj=Yt(),$ye=Ig(),cS=Zn(),ewe=Op(),twe=nS(),rwe=bn(),iwe=function(){function t(){}return t.prototype.ACTION=function(e){return e.call(this)},t.prototype.consume=function(e,r,i){return this.consumeInternal(r,e,i)},t.prototype.subrule=function(e,r,i){return this.subruleInternal(r,e,i)},t.prototype.option=function(e,r){return this.optionInternal(r,e)},t.prototype.or=function(e,r){return this.orInternal(r,e)},t.prototype.many=function(e,r){return this.manyInternal(e,r)},t.prototype.atLeastOne=function(e,r){return this.atLeastOneInternal(e,r)},t.prototype.CONSUME=function(e,r){return this.consumeInternal(e,0,r)},t.prototype.CONSUME1=function(e,r){return this.consumeInternal(e,1,r)},t.prototype.CONSUME2=function(e,r){return this.consumeInternal(e,2,r)},t.prototype.CONSUME3=function(e,r){return this.consumeInternal(e,3,r)},t.prototype.CONSUME4=function(e,r){return this.consumeInternal(e,4,r)},t.prototype.CONSUME5=function(e,r){return this.consumeInternal(e,5,r)},t.prototype.CONSUME6=function(e,r){return this.consumeInternal(e,6,r)},t.prototype.CONSUME7=function(e,r){return this.consumeInternal(e,7,r)},t.prototype.CONSUME8=function(e,r){return this.consumeInternal(e,8,r)},t.prototype.CONSUME9=function(e,r){return this.consumeInternal(e,9,r)},t.prototype.SUBRULE=function(e,r){return this.subruleInternal(e,0,r)},t.prototype.SUBRULE1=function(e,r){return this.subruleInternal(e,1,r)},t.prototype.SUBRULE2=function(e,r){return this.subruleInternal(e,2,r)},t.prototype.SUBRULE3=function(e,r){return this.subruleInternal(e,3,r)},t.prototype.SUBRULE4=function(e,r){return this.subruleInternal(e,4,r)},t.prototype.SUBRULE5=function(e,r){return this.subruleInternal(e,5,r)},t.prototype.SUBRULE6=function(e,r){return this.subruleInternal(e,6,r)},t.prototype.SUBRULE7=function(e,r){return this.subruleInternal(e,7,r)},t.prototype.SUBRULE8=function(e,r){return this.subruleInternal(e,8,r)},t.prototype.SUBRULE9=function(e,r){return this.subruleInternal(e,9,r)},t.prototype.OPTION=function(e){return this.optionInternal(e,0)},t.prototype.OPTION1=function(e){return this.optionInternal(e,1)},t.prototype.OPTION2=function(e){return this.optionInternal(e,2)},t.prototype.OPTION3=function(e){return this.optionInternal(e,3)},t.prototype.OPTION4=function(e){return this.optionInternal(e,4)},t.prototype.OPTION5=function(e){return this.optionInternal(e,5)},t.prototype.OPTION6=function(e){return this.optionInternal(e,6)},t.prototype.OPTION7=function(e){return this.optionInternal(e,7)},t.prototype.OPTION8=function(e){return this.optionInternal(e,8)},t.prototype.OPTION9=function(e){return this.optionInternal(e,9)},t.prototype.OR=function(e){return this.orInternal(e,0)},t.prototype.OR1=function(e){return this.orInternal(e,1)},t.prototype.OR2=function(e){return this.orInternal(e,2)},t.prototype.OR3=function(e){return this.orInternal(e,3)},t.prototype.OR4=function(e){return this.orInternal(e,4)},t.prototype.OR5=function(e){return this.orInternal(e,5)},t.prototype.OR6=function(e){return this.orInternal(e,6)},t.prototype.OR7=function(e){return this.orInternal(e,7)},t.prototype.OR8=function(e){return this.orInternal(e,8)},t.prototype.OR9=function(e){return this.orInternal(e,9)},t.prototype.MANY=function(e){this.manyInternal(0,e)},t.prototype.MANY1=function(e){this.manyInternal(1,e)},t.prototype.MANY2=function(e){this.manyInternal(2,e)},t.prototype.MANY3=function(e){this.manyInternal(3,e)},t.prototype.MANY4=function(e){this.manyInternal(4,e)},t.prototype.MANY5=function(e){this.manyInternal(5,e)},t.prototype.MANY6=function(e){this.manyInternal(6,e)},t.prototype.MANY7=function(e){this.manyInternal(7,e)},t.prototype.MANY8=function(e){this.manyInternal(8,e)},t.prototype.MANY9=function(e){this.manyInternal(9,e)},t.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},t.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},t.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},t.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},t.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},t.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},t.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},t.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},t.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},t.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},t.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},t.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},t.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},t.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},t.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},t.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},t.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},t.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},t.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},t.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},t.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},t.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},t.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},t.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},t.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},t.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},t.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},t.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},t.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},t.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},t.prototype.RULE=function(e,r,i){if(i===void 0&&(i=cS.DEFAULT_RULE_CONFIG),(0,qj.contains)(this.definedRulesNames,e)){var n=ewe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:cS.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,r,i);return this[e]=o,o},t.prototype.OVERRIDE_RULE=function(e,r,i){i===void 0&&(i=cS.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,twe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,r,i);return this[e]=s,s},t.prototype.BACKTRACK=function(e,r){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,r),!0}catch(n){if((0,$ye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},t.prototype.getGAstProductions=function(){return this.gastProductionsCache},t.prototype.getSerializedGastProductions=function(){return(0,rwe.serializeGrammar)((0,qj.values)(this.gastProductionsCache))},t}();Ay.RecognizerApi=iwe});var Vj=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.RecognizerEngine=void 0;var Rr=Yt(),$n=ny(),cy=Ig(),Wj=Up(),wg=Kp(),zj=Zn(),nwe=aS(),_j=WA(),Yp=pg(),swe=AS(),owe=function(){function t(){}return t.prototype.initRecognizerEngine=function(e,r){if(this.className=(0,swe.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Yp.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Rr.has)(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Rr.isArray)(e)){if((0,Rr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Rr.isArray)(e))this.tokensMap=(0,Rr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Rr.has)(e,"modes")&&(0,Rr.every)((0,Rr.flatten)((0,Rr.values)(e.modes)),Yp.isTokenType)){var i=(0,Rr.flatten)((0,Rr.values)(e.modes)),n=(0,Rr.uniq)(i);this.tokensMap=(0,Rr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Rr.isObject)(e))this.tokensMap=(0,Rr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=_j.EOF;var s=(0,Rr.every)((0,Rr.values)(e),function(o){return(0,Rr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Yp.tokenStructuredMatcherNoCategories:Yp.tokenStructuredMatcher,(0,Yp.augmentTokenTypes)((0,Rr.values)(this.tokensMap))},t.prototype.defineRule=function(e,r,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Rr.has)(i,"resyncEnabled")?i.resyncEnabled:zj.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Rr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:zj.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<$n.BITS_FOR_METHOD_TYPE+$n.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){r.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return r.apply(this,u)}catch(f){return this.invokeRuleCatch(f,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=r,l},t.prototype.invokeRuleCatch=function(e,r,i){var n=this.RULE_STACK.length===1,s=r&&!this.isBackTracking()&&this.recoveryEnabled;if((0,cy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},t.prototype.optionInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.OPTION_IDX,r);return this.optionInternalLogic(e,r,i)},t.prototype.optionInternalLogic=function(e,r,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},t.prototype.atLeastOneInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,r,i)},t.prototype.atLeastOneInternalLogic=function(e,r,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(r.DEF!==void 0){if(o=r.DEF,a=r.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=r;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,Wj.PROD_TYPE.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],s,$n.AT_LEAST_ONE_IDX,e,wg.NextTerminalAfterAtLeastOneWalker)},t.prototype.atLeastOneSepFirstInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,r,i)},t.prototype.atLeastOneSepFirstInternalLogic=function(e,r,i){var n=this,s=r.DEF,o=r.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,wg.NextTerminalAfterAtLeastOneSepWalker],l,$n.AT_LEAST_ONE_SEP_IDX,e,wg.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Wj.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)},t.prototype.manyInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.MANY_IDX,e);return this.manyInternalLogic(e,r,i)},t.prototype.manyInternalLogic=function(e,r,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(r.DEF!==void 0){if(o=r.DEF,a=r.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=r;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],s,$n.MANY_IDX,e,wg.NextTerminalAfterManyWalker,c)},t.prototype.manySepFirstInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,r,i)},t.prototype.manySepFirstInternalLogic=function(e,r,i){var n=this,s=r.DEF,o=r.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,wg.NextTerminalAfterManySepWalker],l,$n.MANY_SEP_IDX,e,wg.NextTerminalAfterManySepWalker)}},t.prototype.repetitionSepSecondInternal=function(e,r,i,n,s){for(;i();)this.CONSUME(r),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,i,n,s],i,$n.AT_LEAST_ONE_SEP_IDX,e,s)},t.prototype.doSingleRepetition=function(e){var r=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>r},t.prototype.orInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.OR_IDX,r),n=(0,Rr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(r,e.ERR_MSG)},t.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new cy.NotAllInputParsedException(r,e))}},t.prototype.subruleInternal=function(e,r,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,r,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},t.prototype.subruleInternalError=function(e,r,i){throw(0,cy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:i),delete e.partialCstResult),e},t.prototype.consumeInternal=function(e,r,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,r,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},t.prototype.consumeInternalError=function(e,r,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new cy.MismatchedTokenException(n,r,s))},t.prototype.consumeInternalRecovery=function(e,r,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===nwe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},t.prototype.saveRecogState=function(){var e=this.errors,r=(0,Rr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}},t.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},t.prototype.ruleInvocationStateUpdate=function(e,r,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r,e)},t.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},t.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},t.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},t.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),_j.EOF)},t.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},t}();ly.RecognizerEngine=owe});var Zj=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.ErrorHandler=void 0;var uS=Ig(),gS=Yt(),Xj=Up(),awe=Zn(),Awe=function(){function t(){}return t.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,gS.has)(e,"errorMessageProvider")?e.errorMessageProvider:awe.DEFAULT_PARSER_CONFIG.errorMessageProvider},t.prototype.SAVE_ERROR=function(e){if((0,uS.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,gS.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(t.prototype,"errors",{get:function(){return(0,gS.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),t.prototype.raiseEarlyExitException=function(e,r,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Xj.getLookaheadPathsForOptionalProd)(e,s,r,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new uS.EarlyExitException(u,this.LA(1),this.LA(0)))},t.prototype.raiseNoAltException=function(e,r){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Xj.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new uS.NoViableAltException(c,this.LA(1),l))},t}();uy.ErrorHandler=Awe});var tY=w(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.ContentAssist=void 0;var $j=Kp(),eY=Yt(),lwe=function(){function t(){}return t.prototype.initContentAssist=function(){},t.prototype.computeContentAssist=function(e,r){var i=this.gastProductionsCache[e];if((0,eY.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,$j.nextPossibleTokensAfter)([i],r,this.tokenMatcher,this.maxLookahead)},t.prototype.getNextPossibleTokenTypes=function(e){var r=(0,eY.first)(e.ruleStack),i=this.getGAstProductions(),n=i[r],s=new $j.NextAfterTokenWalker(n,e).startWalking();return s},t}();gy.ContentAssist=lwe});var lY=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.GastRecorder=void 0;var Sn=Yt(),Ho=bn(),cwe=Rp(),rY=pg(),iY=WA(),uwe=Zn(),gwe=ny(),hy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(hy);var nY=!0,sY=Math.pow(2,gwe.BITS_FOR_OCCURRENCE_IDX)-1,oY=(0,iY.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:cwe.Lexer.NA});(0,rY.augmentTokenTypes)([oY]);var aY=(0,iY.createTokenInstance)(oY,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(aY);var fwe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},pwe=function(){function t(){}return t.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},t.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var r=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)r(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},t.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var r=0;r<10;r++){var i=r>0?r:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},t.prototype.ACTION_RECORD=function(e){},t.prototype.BACKTRACK_RECORD=function(e,r){return function(){return!0}},t.prototype.LA_RECORD=function(e){return uwe.END_OF_FILE},t.prototype.topLevelRuleRecord=function(e,r){try{var i=new Ho.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),r.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch(s){throw n}throw n}},t.prototype.optionInternalRecord=function(e,r){return qp.call(this,Ho.Option,e,r)},t.prototype.atLeastOneInternalRecord=function(e,r){qp.call(this,Ho.RepetitionMandatory,r,e)},t.prototype.atLeastOneSepFirstInternalRecord=function(e,r){qp.call(this,Ho.RepetitionMandatoryWithSeparator,r,e,nY)},t.prototype.manyInternalRecord=function(e,r){qp.call(this,Ho.Repetition,r,e)},t.prototype.manySepFirstInternalRecord=function(e,r){qp.call(this,Ho.RepetitionWithSeparator,r,e,nY)},t.prototype.orInternalRecord=function(e,r){return hwe.call(this,e,r)},t.prototype.subruleInternalRecord=function(e,r,i){if(py(r),!e||(0,Sn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Sn.peek)(this.recordingProdStack),o=e.ruleName,a=new Ho.NonTerminal({idx:r,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?fwe:hy},t.prototype.consumeInternalRecord=function(e,r,i){if(py(r),!(0,rY.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Sn.peek)(this.recordingProdStack),o=new Ho.Terminal({idx:r,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),aY},t}();fy.GastRecorder=pwe;function qp(t,e,r,i){i===void 0&&(i=!1),py(r);var n=(0,Sn.peek)(this.recordingProdStack),s=(0,Sn.isFunction)(e)?e:e.DEF,o=new t({definition:[],idx:r});return i&&(o.separator=e.SEP),(0,Sn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),hy}function hwe(t,e){var r=this;py(e);var i=(0,Sn.peek)(this.recordingProdStack),n=(0,Sn.isArray)(t)===!1,s=n===!1?t:t.DEF,o=new Ho.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});(0,Sn.has)(t,"MAX_LOOKAHEAD")&&(o.maxLookahead=t.MAX_LOOKAHEAD);var a=(0,Sn.some)(s,function(l){return(0,Sn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,Sn.forEach)(s,function(l){var c=new Ho.Alternative({definition:[]});o.definition.push(c),(0,Sn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,Sn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),r.recordingProdStack.push(c),l.ALT.call(r),r.recordingProdStack.pop()}),hy}function AY(t){return t===0?"":""+t}function py(t){if(t<0||t>sY){var e=new Error("Invalid DSL Method idx value: <"+t+`> + `+("Idx value must be a none negative value smaller than "+(sY+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var uY=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.PerformanceTracer=void 0;var cY=Yt(),dwe=Zn(),Cwe=function(){function t(){}return t.prototype.initPerformanceTracer=function(e){if((0,cY.has)(e,"traceInitPerf")){var r=e.traceInitPerf,i=typeof r=="number";this.traceInitMaxIdent=i?r:Infinity,this.traceInitPerf=i?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=dwe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},t.prototype.TRACE_INIT=function(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,cY.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t}();dy.PerformanceTracer=Cwe});var gY=w(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.applyMixins=void 0;function mwe(t,e){e.forEach(function(r){var i=r.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(t.prototype,n,s):t.prototype[n]=r.prototype[n]}})})}Cy.applyMixins=mwe});var Zn=w(Er=>{"use strict";var fY=Er&&Er.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Er,"__esModule",{value:!0});Er.EmbeddedActionsParser=Er.CstParser=Er.Parser=Er.EMPTY_ALT=Er.ParserDefinitionErrorType=Er.DEFAULT_RULE_CONFIG=Er.DEFAULT_PARSER_CONFIG=Er.END_OF_FILE=void 0;var an=Yt(),Ewe=ZG(),hY=WA(),pY=Op(),dY=bj(),Iwe=aS(),ywe=Rj(),wwe=Gj(),Bwe=Yj(),bwe=Jj(),Qwe=Vj(),vwe=Zj(),Swe=tY(),kwe=lY(),xwe=uY(),Pwe=gY();Er.END_OF_FILE=(0,hY.createTokenInstance)(hY.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Er.END_OF_FILE);Er.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:pY.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Er.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var Dwe;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(Dwe=Er.ParserDefinitionErrorType||(Er.ParserDefinitionErrorType={}));function Rwe(t){return t===void 0&&(t=void 0),function(){return t}}Er.EMPTY_ALT=Rwe;var my=function(){function t(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(r),i.initLexerAdapter(),i.initLooksAhead(r),i.initRecognizerEngine(e,r),i.initRecoverable(r),i.initTreeBuilder(r),i.initContentAssist(),i.initGastRecorder(r),i.initPerformanceTracer(r),(0,an.has)(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,an.has)(r,"skipValidations")?r.skipValidations:Er.DEFAULT_PARSER_CONFIG.skipValidations}return t.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},t.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var r;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,an.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,an.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,dY.resolveGrammar)({rules:(0,an.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,an.isEmpty)(n)&&e.skipValidations===!1){var s=(0,dY.validateGrammar)({rules:(0,an.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,an.values)(e.tokensMap),errMsgProvider:pY.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,an.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,Ewe.computeAllProdsFollows)((0,an.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,an.values)(e.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,an.isEmpty)(e.definitionErrors))throw r=(0,an.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+r.join(` +------------------------------- +`))})},t.DEFER_DEFINITION_ERRORS_HANDLING=!1,t}();Er.Parser=my;(0,Pwe.applyMixins)(my,[Iwe.Recoverable,ywe.LooksAhead,wwe.TreeBuilder,Bwe.LexerAdapter,Qwe.RecognizerEngine,bwe.RecognizerApi,vwe.ErrorHandler,Swe.ContentAssist,kwe.GastRecorder,xwe.PerformanceTracer]);var Fwe=function(t){fY(e,t);function e(r,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!0,n=t.call(this,r,s)||this,n}return e}(my);Er.CstParser=Fwe;var Nwe=function(t){fY(e,t);function e(r,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!1,n=t.call(this,r,s)||this,n}return e}(my);Er.EmbeddedActionsParser=Nwe});var mY=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.createSyntaxDiagramsCode=void 0;var CY=Rv();function Lwe(t,e){var r=e===void 0?{}:e,i=r.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+CY.VERSION+"/diagrams/":i,s=r.css,o=s===void 0?"https://unpkg.com/chevrotain@"+CY.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` + + + + +`,u=` +
+`,g=` + +`,f=` + +`;return a+l+c+u+g+f}Ey.createSyntaxDiagramsCode=Lwe});var yY=w(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.Parser=Ve.createSyntaxDiagramsCode=Ve.clearCache=Ve.GAstVisitor=Ve.serializeProduction=Ve.serializeGrammar=Ve.Terminal=Ve.Rule=Ve.RepetitionWithSeparator=Ve.RepetitionMandatoryWithSeparator=Ve.RepetitionMandatory=Ve.Repetition=Ve.Option=Ve.NonTerminal=Ve.Alternative=Ve.Alternation=Ve.defaultLexerErrorProvider=Ve.NoViableAltException=Ve.NotAllInputParsedException=Ve.MismatchedTokenException=Ve.isRecognitionException=Ve.EarlyExitException=Ve.defaultParserErrorProvider=Ve.tokenName=Ve.tokenMatcher=Ve.tokenLabel=Ve.EOF=Ve.createTokenInstance=Ve.createToken=Ve.LexerDefinitionErrorType=Ve.Lexer=Ve.EMPTY_ALT=Ve.ParserDefinitionErrorType=Ve.EmbeddedActionsParser=Ve.CstParser=Ve.VERSION=void 0;var Twe=Rv();Object.defineProperty(Ve,"VERSION",{enumerable:!0,get:function(){return Twe.VERSION}});var Iy=Zn();Object.defineProperty(Ve,"CstParser",{enumerable:!0,get:function(){return Iy.CstParser}});Object.defineProperty(Ve,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Iy.EmbeddedActionsParser}});Object.defineProperty(Ve,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Iy.ParserDefinitionErrorType}});Object.defineProperty(Ve,"EMPTY_ALT",{enumerable:!0,get:function(){return Iy.EMPTY_ALT}});var EY=Rp();Object.defineProperty(Ve,"Lexer",{enumerable:!0,get:function(){return EY.Lexer}});Object.defineProperty(Ve,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return EY.LexerDefinitionErrorType}});var Bg=WA();Object.defineProperty(Ve,"createToken",{enumerable:!0,get:function(){return Bg.createToken}});Object.defineProperty(Ve,"createTokenInstance",{enumerable:!0,get:function(){return Bg.createTokenInstance}});Object.defineProperty(Ve,"EOF",{enumerable:!0,get:function(){return Bg.EOF}});Object.defineProperty(Ve,"tokenLabel",{enumerable:!0,get:function(){return Bg.tokenLabel}});Object.defineProperty(Ve,"tokenMatcher",{enumerable:!0,get:function(){return Bg.tokenMatcher}});Object.defineProperty(Ve,"tokenName",{enumerable:!0,get:function(){return Bg.tokenName}});var Owe=Op();Object.defineProperty(Ve,"defaultParserErrorProvider",{enumerable:!0,get:function(){return Owe.defaultParserErrorProvider}});var Jp=Ig();Object.defineProperty(Ve,"EarlyExitException",{enumerable:!0,get:function(){return Jp.EarlyExitException}});Object.defineProperty(Ve,"isRecognitionException",{enumerable:!0,get:function(){return Jp.isRecognitionException}});Object.defineProperty(Ve,"MismatchedTokenException",{enumerable:!0,get:function(){return Jp.MismatchedTokenException}});Object.defineProperty(Ve,"NotAllInputParsedException",{enumerable:!0,get:function(){return Jp.NotAllInputParsedException}});Object.defineProperty(Ve,"NoViableAltException",{enumerable:!0,get:function(){return Jp.NoViableAltException}});var Mwe=Gv();Object.defineProperty(Ve,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Mwe.defaultLexerErrorProvider}});var Go=bn();Object.defineProperty(Ve,"Alternation",{enumerable:!0,get:function(){return Go.Alternation}});Object.defineProperty(Ve,"Alternative",{enumerable:!0,get:function(){return Go.Alternative}});Object.defineProperty(Ve,"NonTerminal",{enumerable:!0,get:function(){return Go.NonTerminal}});Object.defineProperty(Ve,"Option",{enumerable:!0,get:function(){return Go.Option}});Object.defineProperty(Ve,"Repetition",{enumerable:!0,get:function(){return Go.Repetition}});Object.defineProperty(Ve,"RepetitionMandatory",{enumerable:!0,get:function(){return Go.RepetitionMandatory}});Object.defineProperty(Ve,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Go.RepetitionMandatoryWithSeparator}});Object.defineProperty(Ve,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Go.RepetitionWithSeparator}});Object.defineProperty(Ve,"Rule",{enumerable:!0,get:function(){return Go.Rule}});Object.defineProperty(Ve,"Terminal",{enumerable:!0,get:function(){return Go.Terminal}});var IY=bn();Object.defineProperty(Ve,"serializeGrammar",{enumerable:!0,get:function(){return IY.serializeGrammar}});Object.defineProperty(Ve,"serializeProduction",{enumerable:!0,get:function(){return IY.serializeProduction}});var Kwe=dg();Object.defineProperty(Ve,"GAstVisitor",{enumerable:!0,get:function(){return Kwe.GAstVisitor}});function Uwe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. + It performs no action other than printing this message. + Please avoid using it as it will be completely removed in the future`)}Ve.clearCache=Uwe;var Hwe=mY();Object.defineProperty(Ve,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Hwe.createSyntaxDiagramsCode}});var Gwe=function(){function t(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return t}();Ve.Parser=Gwe});var bY=w((_tt,wY)=>{var yy=yY(),Ya=yy.createToken,BY=yy.tokenMatcher,fS=yy.Lexer,jwe=yy.EmbeddedActionsParser;wY.exports=t=>{let e=Ya({name:"LogicalOperator",pattern:fS.NA}),r=Ya({name:"Or",pattern:/\|/,categories:e}),i=Ya({name:"Xor",pattern:/\^/,categories:e}),n=Ya({name:"And",pattern:/&/,categories:e}),s=Ya({name:"Not",pattern:/!/}),o=Ya({name:"LParen",pattern:/\(/}),a=Ya({name:"RParen",pattern:/\)/}),l=Ya({name:"Query",pattern:t}),u=[Ya({name:"WhiteSpace",pattern:/\s+/,group:fS.SKIPPED}),r,i,n,o,a,s,e,l],g=new fS(u);class f extends jwe{constructor(p){super(u);this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let b=y,S=this.CONSUME(e),k=this.SUBRULE2(this.atomicExpression);BY(S,r)?y=T=>b(T)||k(T):BY(S,i)?y=T=>!!(b(T)^k(T)):y=T=>b(T)&&k(T)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var QY=w(wy=>{var Ywe=bY();wy.makeParser=(t=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:r}=Ywe(t),i=new r;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};wy.parse=wy.makeParser()});var SY=w((Xtt,vY)=>{"use strict";vY.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var hS=w((Ztt,kY)=>{var Wp=SY(),xY={};for(let t of Object.keys(Wp))xY[Wp[t]]=t;var at={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};kY.exports=at;for(let t of Object.keys(at)){if(!("channels"in at[t]))throw new Error("missing channels property: "+t);if(!("labels"in at[t]))throw new Error("missing channel labels property: "+t);if(at[t].labels.length!==at[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=at[t];delete at[t].channels,delete at[t].labels,Object.defineProperty(at[t],"channels",{value:e}),Object.defineProperty(at[t],"labels",{value:r})}at.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(e,r,i),s=Math.max(e,r,i),o=s-n,a,l;s===n?a=0:e===s?a=(r-i)/o:r===s?a=2+(i-e)/o:i===s&&(a=4+(e-r)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};at.rgb.hsv=function(t){let e,r,i,n,s,o=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),r=g(a),i=g(l),o===c?n=i-r:a===c?n=1/3+e-i:l===c&&(n=2/3+r-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};at.rgb.hwb=function(t){let e=t[0],r=t[1],i=t[2],n=at.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(r,i));return i=1-1/255*Math.max(e,Math.max(r,i)),[n,s*100,i*100]};at.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(1-e,1-r,1-i),s=(1-e-n)/(1-n)||0,o=(1-r-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function qwe(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}at.rgb.keyword=function(t){let e=xY[t];if(e)return e;let r=Infinity,i;for(let n of Object.keys(Wp)){let s=Wp[n],o=qwe(t,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+r*.3576+i*.1805,s=e*.2126+r*.7152+i*.0722,o=e*.0193+r*.1192+i*.9505;return[n*100,s*100,o*100]};at.rgb.lab=function(t){let e=at.rgb.xyz(t),r=e[0],i=e[1],n=e[2];r/=95.047,i/=100,n/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(r-i),a=200*(i-n);return[s,o,a]};at.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n,s,o;if(r===0)return o=i*255,[o,o,o];i<.5?n=i*(1+r):n=i+r-i*r;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};at.hsl.hsv=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=r,s=Math.max(i,.01);i*=2,r*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+r)/2,a=i===0?2*n/(s+n):2*r/(i+r);return[e,a*100,o*100]};at.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-r),a=255*i*(1-r*s),l=255*i*(1-r*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};at.hsv.hsl=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=Math.max(i,.01),s,o;o=(2-r)*i;let a=(2-r)*n;return s=r*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};at.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n=r+i,s;n>1&&(r/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!=0&&(s=1-s);let l=r+s*(a-r),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=r;break;case 1:c=l,u=a,g=r;break;case 2:c=r,u=a,g=l;break;case 3:c=r,u=l,g=a;break;case 4:c=l,u=r,g=a;break;case 5:c=a,u=r,g=l;break}return[c*255,u*255,g*255]};at.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n=t[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,r*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};at.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n,s,o;return n=e*3.2406+r*-1.5372+i*-.4986,s=e*-.9689+r*1.8758+i*.0415,o=e*.0557+r*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};at.xyz.lab=function(t){let e=t[0],r=t[1],i=t[2];e/=95.047,r/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*r-16,s=500*(e-r),o=200*(r-i);return[n,s,o]};at.lab.xyz=function(t){let e=t[0],r=t[1],i=t[2],n,s,o;s=(e+16)/116,n=r/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};at.lab.lch=function(t){let e=t[0],r=t[1],i=t[2],n;n=Math.atan2(i,r)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(r*r+i*i);return[e,o,n]};at.lch.lab=function(t){let e=t[0],r=t[1],n=t[2]/360*2*Math.PI,s=r*Math.cos(n),o=r*Math.sin(n);return[e,s,o]};at.rgb.ansi16=function(t,e=null){let[r,i,n]=t,s=e===null?at.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(r/255));return s===2&&(o+=60),o};at.hsv.ansi16=function(t){return at.rgb.ansi16(at.hsv.rgb(t),t[2])};at.rgb.ansi256=function(t){let e=t[0],r=t[1],i=t[2];return e===r&&r===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(i/255*5)};at.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,i=(e&1)*r*255,n=(e>>1&1)*r*255,s=(e>>2&1)*r*255;return[i,n,s]};at.ansi256.rgb=function(t){if(t>=232){let s=(t-232)*10+8;return[s,s,s]}t-=16;let e,r=Math.floor(t/36)/5*255,i=Math.floor((e=t%36)/6)/5*255,n=e%6/5*255;return[r,i,n]};at.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};at.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(a=>a+a).join(""));let i=parseInt(r,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};at.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.max(Math.max(e,r),i),s=Math.min(Math.min(e,r),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(r-i)/o%6:n===r?l=2+(i-e)/o:l=4+(e-r)/o,l/=6,l%=1,[l*360,o*100,a*100]};at.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=r<.5?2*e*r:2*e*(1-r),n=0;return i<1&&(n=(r-.5*i)/(1-i)),[t[0],i*100,n*100]};at.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=e*r,n=0;return i<1&&(n=(r-i)/(1-i)),[t[0],i*100,n*100]};at.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100;if(r===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-r)*i,[(r*n[0]+l)*255,(r*n[1]+l)*255,(r*n[2]+l)*255]};at.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e),n=0;return i>0&&(n=e/i),[t[0],n*100,i*100]};at.hcg.hsl=function(t){let e=t[1]/100,i=t[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[t[0],n*100,i*100]};at.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e);return[t[0],(i-e)*100,(1-i)*100]};at.hwb.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=1-r,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[t[0],n*100,s*100]};at.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};at.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};at.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};at.gray.hsl=function(t){return[0,0,t[0]]};at.gray.hsv=at.gray.hsl;at.gray.hwb=function(t){return[0,100,t[0]]};at.gray.cmyk=function(t){return[0,0,0,t[0]]};at.gray.lab=function(t){return[t[0],0,0]};at.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};at.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var DY=w(($tt,PY)=>{var By=hS();function Jwe(){let t={},e=Object.keys(By);for(let r=e.length,i=0;i{var pS=hS(),Vwe=DY(),bg={},Xwe=Object.keys(pS);function Zwe(t){let e=function(...r){let i=r[0];return i==null?i:(i.length>1&&(r=i),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function $we(t){let e=function(...r){let i=r[0];if(i==null)return i;i.length>1&&(r=i);let n=t(r);if(typeof n=="object")for(let s=n.length,o=0;o{bg[t]={},Object.defineProperty(bg[t],"channels",{value:pS[t].channels}),Object.defineProperty(bg[t],"labels",{value:pS[t].labels});let e=Vwe(t);Object.keys(e).forEach(i=>{let n=e[i];bg[t][i]=$we(n),bg[t][i].raw=Zwe(n)})});RY.exports=bg});var KY=w((trt,NY)=>{"use strict";var LY=(t,e)=>(...r)=>`[${t(...r)+e}m`,TY=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};5;${i}m`},OY=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};2;${i[0]};${i[1]};${i[2]}m`},by=t=>t,MY=(t,e,r)=>[t,e,r],Qg=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let i=r();return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},dS,vg=(t,e,r,i)=>{dS===void 0&&(dS=FY());let n=i?10:0,s={};for(let[o,a]of Object.entries(dS)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=t(r,n):typeof a=="object"&&(s[l]=t(a[e],n))}return s};function eBe(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],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],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],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`[${s[0]}m`,close:`[${s[1]}m`},i[n]=e[n],t.set(s[0],s[1]);Object.defineProperty(e,r,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="",e.bgColor.close="",Qg(e.color,"ansi",()=>vg(LY,"ansi16",by,!1)),Qg(e.color,"ansi256",()=>vg(TY,"ansi256",by,!1)),Qg(e.color,"ansi16m",()=>vg(OY,"rgb",MY,!1)),Qg(e.bgColor,"ansi",()=>vg(LY,"ansi16",by,!0)),Qg(e.bgColor,"ansi256",()=>vg(TY,"ansi256",by,!0)),Qg(e.bgColor,"ansi16m",()=>vg(OY,"rgb",MY,!0)),e}Object.defineProperty(NY,"exports",{enumerable:!0,get:eBe})});var HY=w((rrt,UY)=>{"use strict";UY.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",i=e.indexOf(r+t),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var tBe=require("os"),jY=require("tty"),xs=HY(),{env:ui}=process,XA;xs("no-color")||xs("no-colors")||xs("color=false")||xs("color=never")?XA=0:(xs("color")||xs("colors")||xs("color=true")||xs("color=always"))&&(XA=1);"FORCE_COLOR"in ui&&(ui.FORCE_COLOR==="true"?XA=1:ui.FORCE_COLOR==="false"?XA=0:XA=ui.FORCE_COLOR.length===0?1:Math.min(parseInt(ui.FORCE_COLOR,10),3));function CS(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function mS(t,e){if(XA===0)return 0;if(xs("color=16m")||xs("color=full")||xs("color=truecolor"))return 3;if(xs("color=256"))return 2;if(t&&!e&&XA===void 0)return 0;let r=XA||0;if(ui.TERM==="dumb")return r;if(process.platform==="win32"){let i=tBe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in ui)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in ui)||ui.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in ui)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ui.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ui)return 1;if(ui.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ui){let i=parseInt((ui.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ui.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ui.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ui.TERM)||"COLORTERM"in ui?1:r}function rBe(t){let e=mS(t,t&&t.isTTY);return CS(e)}GY.exports={supportsColor:rBe,stdout:CS(mS(!0,jY.isatty(1))),stderr:CS(mS(!0,jY.isatty(2)))}});var JY=w((nrt,qY)=>{"use strict";var iBe=(t,e,r)=>{let i=t.indexOf(e);if(i===-1)return t;let n=e.length,s=0,o="";do o+=t.substr(s,i-s)+e+r,s=i+n,i=t.indexOf(e,s);while(i!==-1);return o+=t.substr(s),o},nBe=(t,e,r,i)=>{let n=0,s="";do{let o=t[i-1]==="\r";s+=t.substr(n,(o?i-1:i)-n)+e+(o?`\r +`:` +`)+r,n=i+1,i=t.indexOf(` +`,n)}while(i!==-1);return s+=t.substr(n),s};qY.exports={stringReplaceAll:iBe,stringEncaseCRLFWithFirstIndex:nBe}});var XY=w((srt,WY)=>{"use strict";var sBe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,zY=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,oBe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,aBe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,ABe=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function _Y(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):ABe.get(t)||t}function lBe(t,e){let r=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))r.push(o);else if(n=s.match(oBe))r.push(n[2].replace(aBe,(a,l,c)=>l?_Y(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${t}')`)}return r}function cBe(t){zY.lastIndex=0;let e=[],r;for(;(r=zY.exec(t))!==null;){let i=r[1];if(r[2]){let n=lBe(i,r[2]);e.push([i].concat(n))}else e.push([i])}return e}function VY(t,e){let r={};for(let n of e)for(let s of n.styles)r[s[0]]=n.inverse?null:s.slice(1);let i=t;for(let[n,s]of Object.entries(r))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}WY.exports=(t,e)=>{let r=[],i=[],n=[];if(e.replace(sBe,(s,o,a,l,c,u)=>{if(o)n.push(_Y(o));else if(l){let g=n.join("");n=[],i.push(r.length===0?g:VY(t,r)(g)),r.push({inverse:a,styles:cBe(l)})}else if(c){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(VY(t,r)(n.join(""))),n=[],r.pop()}else n.push(u)}),i.push(n.join("")),r.length>0){let s=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var BS=w((ort,ZY)=>{"use strict";var zp=KY(),{stdout:ES,stderr:IS}=YY(),{stringReplaceAll:uBe,stringEncaseCRLFWithFirstIndex:gBe}=JY(),$Y=["ansi","ansi","ansi256","ansi16m"],Sg=Object.create(null),fBe=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=ES?ES.level:0;t.level=e.level===void 0?r:e.level},eq=class{constructor(e){return tq(e)}},tq=t=>{let e={};return fBe(e,t),e.template=(...r)=>hBe(e.template,...r),Object.setPrototypeOf(e,Qy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=eq,e.template};function Qy(t){return tq(t)}for(let[t,e]of Object.entries(zp))Sg[t]={get(){let r=vy(this,yS(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Sg.visible={get(){let t=vy(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var rq=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of rq)Sg[t]={get(){let{level:e}=this;return function(...r){let i=yS(zp.color[$Y[e]][t](...r),zp.color.close,this._styler);return vy(this,i,this._isEmpty)}}};for(let t of rq){let e="bg"+t[0].toUpperCase()+t.slice(1);Sg[e]={get(){let{level:r}=this;return function(...i){let n=yS(zp.bgColor[$Y[r]][t](...i),zp.bgColor.close,this._styler);return vy(this,n,this._isEmpty)}}}}var pBe=Object.defineProperties(()=>{},ie(N({},Sg),{level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}})),yS=(t,e,r)=>{let i,n;return r===void 0?(i=t,n=e):(i=r.openAll+t,n=e+r.closeAll),{open:t,close:e,openAll:i,closeAll:n,parent:r}},vy=(t,e,r)=>{let i=(...n)=>dBe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=pBe,i._generator=t,i._styler=e,i._isEmpty=r,i},dBe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:i,closeAll:n}=r;if(e.indexOf("")!==-1)for(;r!==void 0;)e=uBe(e,r.close,r.open),r=r.parent;let s=e.indexOf(` +`);return s!==-1&&(e=gBe(e,n,i,s)),i+e+n},wS,hBe=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let i=e.slice(1),n=[r.raw[0]];for(let s=1;s{"use strict";Ps.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Ps.find=(t,e)=>t.nodes.find(r=>r.type===e);Ps.exceedsLimit=(t,e,r=1,i)=>i===!1||!Ps.isInteger(t)||!Ps.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=i;Ps.escapeNode=(t,e=0,r)=>{let i=t.nodes[e];!i||(r&&i.type===r||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Ps.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0==0?(t.invalid=!0,!0):!1;Ps.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0==0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Ps.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Ps.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Ps.flatten=(...t)=>{let e=[],r=i=>{for(let n=0;n{"use strict";var nq=Sy();iq.exports=(t,e={})=>{let r=(i,n={})=>{let s=e.escapeInvalid&&nq.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&nq.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=r(l);return a};return r(t)}});var oq=w((lrt,sq)=>{"use strict";sq.exports=function(t){return typeof t=="number"?t-t==0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var pq=w((crt,aq)=>{"use strict";var Aq=oq(),Sc=(t,e,r)=>{if(Aq(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(Aq(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i=N({relaxZeros:!0},r);typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=t+":"+e+"="+n+s+o+a;if(Sc.cache.hasOwnProperty(l))return Sc.cache[l].result;let c=Math.min(t,e),u=Math.max(t,e);if(Math.abs(c-u)===1){let m=t+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=cq(t)||cq(e),f={min:t,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let m=u<0?Math.abs(u):1;p=lq(m,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=lq(c,u,f,i)),f.negatives=p,f.positives=h,f.result=CBe(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Sc.cache[l]=f,f.result};function CBe(t,e,r){let i=bS(t,e,"-",!1,r)||[],n=bS(e,t,"",!1,r)||[],s=bS(t,e,"-?",!0,r)||[];return i.concat(s).concat(n).join("|")}function EBe(t,e){let r=1,i=1,n=uq(t,r),s=new Set([e]);for(;t<=n&&n<=e;)s.add(n),r+=1,n=uq(t,r);for(n=gq(e+1,i)-1;t1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+fq(a.count),o=c+1;continue}r.isPadded&&(g=BBe(c,r,i)),u.string=g+u.pattern+fq(u.count),s.push(u),o=c+1,a=u}return s}function bS(t,e,r,i,n){let s=[];for(let o of t){let{string:a}=o;!i&&!hq(e,"string",a)&&s.push(r+a),i&&hq(e,"string",a)&&s.push(r+a)}return s}function IBe(t,e){let r=[];for(let i=0;ie?1:e>t?-1:0}function hq(t,e,r){return t.some(i=>i[e]===r)}function uq(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function gq(t,e){return t-t%Math.pow(10,e)}function fq(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function yBe(t,e,r){return`[${t}${e-t==1?"":"-"}${e}]`}function cq(t){return/^-?(0+)\d/.test(t)}function BBe(t,e,r){if(!e.isPadded)return t;let i=Math.abs(e.maxLen-String(t).length),n=r.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Sc.cache={};Sc.clearCache=()=>Sc.cache={};aq.exports=Sc});var SS=w((urt,dq)=>{"use strict";var bBe=require("util"),Cq=pq(),mq=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),QBe=t=>e=>t===!0?Number(e):String(e),QS=t=>typeof t=="number"||typeof t=="string"&&t!=="",Vp=t=>Number.isInteger(+t),vS=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},vBe=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,SBe=(t,e,r)=>{if(e>0){let i=t[0]==="-"?"-":"";i&&(t=t.slice(1)),t=i+t.padStart(i?e-1:e,"0")}return r===!1?String(t):t},Eq=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((o,a)=>oa?1:0),t.positives.sort((o,a)=>oa?1:0);let r=e.capture?"":"?:",i="",n="",s;return t.positives.length&&(i=t.positives.join("|")),t.negatives.length&&(n=`-(${r}${t.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${r}${s})`:s},Iq=(t,e,r,i)=>{if(r)return Cq(t,e,N({wrap:!1},i));let n=String.fromCharCode(t);if(t===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},yq=(t,e,r)=>{if(Array.isArray(t)){let i=r.wrap===!0,n=r.capture?"":"?:";return i?`(${n}${t.join("|")})`:t.join("|")}return Cq(t,e,r)},wq=(...t)=>new RangeError("Invalid range arguments: "+bBe.inspect(...t)),Bq=(t,e,r)=>{if(r.strictRanges===!0)throw wq([t,e]);return[]},xBe=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},PBe=(t,e,r=1,i={})=>{let n=Number(t),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw wq([t,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(t),l=String(e),c=String(r);r=Math.max(Math.abs(r),1);let u=vS(a)||vS(l)||vS(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&vBe(t,e,i)===!1,h=i.transform||QBe(f);if(i.toRegex&&r===1)return Iq(Eq(t,g),Eq(e,g),!0,i);let p={negatives:[],positives:[]},m=S=>p[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],b=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&r>1?m(n):y.push(SBe(h(n,b),g,f)),n=o?n-r:n+r,b++;return i.toRegex===!0?r>1?kBe(p,i):yq(y,null,N({wrap:!1},i)):y},DBe=(t,e,r=1,i={})=>{if(!Vp(t)&&t.length>1||!Vp(e)&&e.length>1)return Bq(t,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${t}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&r===1)return Iq(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-r:s+r,g++;return i.toRegex===!0?yq(u,null,{wrap:!1,options:i}):u},xy=(t,e,r,i={})=>{if(e==null&&QS(t))return[t];if(!QS(t)||!QS(e))return Bq(t,e,i);if(typeof r=="function")return xy(t,e,1,{transform:r});if(mq(r))return xy(t,e,0,r);let n=N({},i);return n.capture===!0&&(n.wrap=!0),r=r||n.step||1,Vp(r)?Vp(t)&&Vp(e)?PBe(t,e,r,n):DBe(t,e,Math.max(Math.abs(r),1),n):r!=null&&!mq(r)?xBe(r,n):xy(t,e,1,r)};dq.exports=xy});var vq=w((grt,bq)=>{"use strict";var RBe=SS(),Qq=Sy(),FBe=(t,e={})=>{let r=(i,n={})=>{let s=Qq.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=Qq.reduce(i.nodes),g=RBe(...u,ie(N({},e),{wrap:!1,toRegex:!0}));if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=r(u,i);return c};return r(t)};bq.exports=FBe});var xq=w((frt,Sq)=>{"use strict";var NBe=SS(),kq=ky(),kg=Sy(),kc=(t="",e="",r=!1)=>{let i=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?kg.flatten(e).map(n=>`{${n}}`):e;for(let n of t)if(Array.isArray(n))for(let s of n)i.push(kc(s,e,r));else for(let s of e)r===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?kc(n,s,r):n+s);return kg.flatten(i)},LBe=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(kc(a.pop(),kq(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(kc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=kg.reduce(n.nodes);if(kg.exceedsLimit(...g,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=NBe(...g,e);f.length===0&&(f=kq(n,e)),a.push(kc(a.pop(),f)),n.nodes=[];return}let l=kg.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";Pq.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Tq=w((prt,Rq)=>{"use strict";var TBe=ky(),{MAX_LENGTH:Fq,CHAR_BACKSLASH:kS,CHAR_BACKTICK:OBe,CHAR_COMMA:MBe,CHAR_DOT:KBe,CHAR_LEFT_PARENTHESES:UBe,CHAR_RIGHT_PARENTHESES:HBe,CHAR_LEFT_CURLY_BRACE:GBe,CHAR_RIGHT_CURLY_BRACE:jBe,CHAR_LEFT_SQUARE_BRACKET:Nq,CHAR_RIGHT_SQUARE_BRACKET:Lq,CHAR_DOUBLE_QUOTE:YBe,CHAR_SINGLE_QUOTE:qBe,CHAR_NO_BREAK_SPACE:JBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:WBe}=Dq(),zBe=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},i=typeof r.maxLength=="number"?Math.min(Fq,r.maxLength):Fq;if(t.length>i)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${i})`);let n={type:"root",input:t,nodes:[]},s=[n],o=n,a=n,l=0,c=t.length,u=0,g=0,f,h={},p=()=>t[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:TBe(o)}]}m({type:"comma",value:f}),o.commas++;continue}if(f===KBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let b=y[y.length-1];b.value+=a.value+f,a=b,o.ranges--;continue}m({type:"dot",value:f});continue}m({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],b=y.nodes.indexOf(o);y.nodes.splice(b,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};Rq.exports=zBe});var Kq=w((drt,Oq)=>{"use strict";var Mq=ky(),_Be=vq(),VBe=xq(),XBe=Tq(),es=(t,e={})=>{let r=[];if(Array.isArray(t))for(let i of t){let n=es.create(i,e);Array.isArray(n)?r.push(...n):r.push(n)}else r=[].concat(es.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};es.parse=(t,e={})=>XBe(t,e);es.stringify=(t,e={})=>typeof t=="string"?Mq(es.parse(t,e),e):Mq(t,e);es.compile=(t,e={})=>(typeof t=="string"&&(t=es.parse(t,e)),_Be(t,e));es.expand=(t,e={})=>{typeof t=="string"&&(t=es.parse(t,e));let r=VBe(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};es.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?es.compile(t,e):es.expand(t,e);Oq.exports=es});var Xp=w((Crt,Uq)=>{"use strict";var ZBe=require("path"),jo="\\\\/",Hq=`[^${jo}]`,qa="\\.",$Be="\\+",e0e="\\?",Py="\\/",t0e="(?=.)",Gq="[^/]",xS=`(?:${Py}|$)`,jq=`(?:^|${Py})`,PS=`${qa}{1,2}${xS}`,r0e=`(?!${qa})`,i0e=`(?!${jq}${PS})`,n0e=`(?!${qa}{0,1}${xS})`,s0e=`(?!${PS})`,o0e=`[^.${Py}]`,a0e=`${Gq}*?`,Yq={DOT_LITERAL:qa,PLUS_LITERAL:$Be,QMARK_LITERAL:e0e,SLASH_LITERAL:Py,ONE_CHAR:t0e,QMARK:Gq,END_ANCHOR:xS,DOTS_SLASH:PS,NO_DOT:r0e,NO_DOTS:i0e,NO_DOT_SLASH:n0e,NO_DOTS_SLASH:s0e,QMARK_NO_DOT:o0e,STAR:a0e,START_ANCHOR:jq},A0e=ie(N({},Yq),{SLASH_LITERAL:`[${jo}]`,QMARK:Hq,STAR:`${Hq}*?`,DOTS_SLASH:`${qa}{1,2}(?:[${jo}]|$)`,NO_DOT:`(?!${qa})`,NO_DOTS:`(?!(?:^|[${jo}])${qa}{1,2}(?:[${jo}]|$))`,NO_DOT_SLASH:`(?!${qa}{0,1}(?:[${jo}]|$))`,NO_DOTS_SLASH:`(?!${qa}{1,2}(?:[${jo}]|$))`,QMARK_NO_DOT:`[^.${jo}]`,START_ANCHOR:`(?:^|[${jo}])`,END_ANCHOR:`(?:[${jo}]|$)`}),l0e={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"};Uq.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:l0e,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,SEP:ZBe.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?A0e:Yq}}});var Zp=w(kn=>{"use strict";var c0e=require("path"),u0e=process.platform==="win32",{REGEX_BACKSLASH:g0e,REGEX_REMOVE_BACKSLASH:f0e,REGEX_SPECIAL_CHARS:h0e,REGEX_SPECIAL_CHARS_GLOBAL:p0e}=Xp();kn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);kn.hasRegexChars=t=>h0e.test(t);kn.isRegexChar=t=>t.length===1&&kn.hasRegexChars(t);kn.escapeRegex=t=>t.replace(p0e,"\\$1");kn.toPosixSlashes=t=>t.replace(g0e,"/");kn.removeBackslashes=t=>t.replace(f0e,e=>e==="\\"?"":e);kn.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};kn.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:u0e===!0||c0e.sep==="\\";kn.escapeLast=(t,e,r)=>{let i=t.lastIndexOf(e,r);return i===-1?t:t[i-1]==="\\"?kn.escapeLast(t,e,i-1):`${t.slice(0,i)}\\${t.slice(i)}`};kn.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};kn.wrapOutput=(t,e={},r={})=>{let i=r.contains?"":"^",n=r.contains?"":"$",s=`${i}(?:${t})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var Zq=w((Ert,qq)=>{"use strict";var Jq=Zp(),{CHAR_ASTERISK:DS,CHAR_AT:d0e,CHAR_BACKWARD_SLASH:$p,CHAR_COMMA:C0e,CHAR_DOT:RS,CHAR_EXCLAMATION_MARK:FS,CHAR_FORWARD_SLASH:Wq,CHAR_LEFT_CURLY_BRACE:NS,CHAR_LEFT_PARENTHESES:LS,CHAR_LEFT_SQUARE_BRACKET:m0e,CHAR_PLUS:E0e,CHAR_QUESTION_MARK:zq,CHAR_RIGHT_CURLY_BRACE:I0e,CHAR_RIGHT_PARENTHESES:_q,CHAR_RIGHT_SQUARE_BRACKET:y0e}=Xp(),Vq=t=>t===Wq||t===$p,Xq=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?Infinity:1)},w0e=(t,e)=>{let r=e||{},i=t.length-1,n=r.parts===!0||r.scanToEnd===!0,s=[],o=[],a=[],l=t,c=-1,u=0,g=0,f=!1,h=!1,p=!1,m=!1,y=!1,b=!1,S=!1,k=!1,T=!1,Y=!1,j=0,Z,J,re={value:"",depth:0,isGlob:!1},ee=()=>c>=i,A=()=>l.charCodeAt(c+1),oe=()=>(Z=J,l.charCodeAt(++c));for(;c0&&(X=l.slice(0,u),l=l.slice(u),g-=u),le&&p===!0&&g>0?(le=l.slice(0,g),O=l.slice(g)):p===!0?(le="",O=l):le=l,le&&le!==""&&le!=="/"&&le!==l&&Vq(le.charCodeAt(le.length-1))&&(le=le.slice(0,-1)),r.unescape===!0&&(O&&(O=Jq.removeBackslashes(O)),le&&S===!0&&(le=Jq.removeBackslashes(le)));let L={prefix:X,input:t,start:u,base:le,glob:O,isBrace:f,isBracket:h,isGlob:p,isExtglob:m,isGlobstar:y,negated:k,negatedExtglob:T};if(r.tokens===!0&&(L.maxDepth=0,Vq(J)||o.push(re),L.tokens=o),r.parts===!0||r.tokens===!0){let pe;for(let Ce=0;Ce{"use strict";var Dy=Xp(),ts=Zp(),{MAX_LENGTH:Ry,POSIX_REGEX_SOURCE:B0e,REGEX_NON_SPECIAL_CHARS:b0e,REGEX_SPECIAL_CHARS_BACKREF:Q0e,REPLACEMENTS:eJ}=Dy,v0e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch(i){return t.map(n=>ts.escapeRegex(n)).join("..")}return r},xg=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,tJ=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=eJ[t]||t;let r=N({},e),i=typeof r.maxLength=="number"?Math.min(Ry,r.maxLength):Ry,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:r.prepend||""},o=[s],a=r.capture?"":"?:",l=ts.isWindows(e),c=Dy.globChars(l),u=Dy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:b,NO_DOTS_SLASH:S,QMARK:k,QMARK_NO_DOT:T,STAR:Y,START_ANCHOR:j}=c,Z=V=>`(${a}(?:(?!${j}${V.dot?m:g}).)*?)`,J=r.dot?"":y,re=r.dot?k:T,ee=r.bash===!0?Z(r):Y;r.capture&&(ee=`(${ee})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let A={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};t=ts.removePrefix(t,A),n=t.length;let oe=[],le=[],X=[],O=s,L,pe=()=>A.index===n-1,Ce=A.peek=(V=1)=>t[A.index+V],Oe=A.advance=()=>t[++A.index]||"",te=()=>t.slice(A.index+1),se=(V="",Qe=0)=>{A.consumed+=V,A.index+=Qe},be=V=>{A.output+=V.output!=null?V.output:V.value,se(V.value)},he=()=>{let V=1;for(;Ce()==="!"&&(Ce(2)!=="("||Ce(3)==="?");)Oe(),A.start++,V++;return V%2==0?!1:(A.negated=!0,A.start++,!0)},Fe=V=>{A[V]++,X.push(V)},Ue=V=>{A[V]--,X.pop()},xe=V=>{if(O.type==="globstar"){let Qe=A.braces>0&&(V.type==="comma"||V.type==="brace"),ce=V.extglob===!0||oe.length&&(V.type==="pipe"||V.type==="paren");V.type!=="slash"&&V.type!=="paren"&&!Qe&&!ce&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=ee,A.output+=O.output)}if(oe.length&&V.type!=="paren"&&(oe[oe.length-1].inner+=V.value),(V.value||V.output)&&be(V),O&&O.type==="text"&&V.type==="text"){O.value+=V.value,O.output=(O.output||"")+V.value;return}V.prev=O,o.push(V),O=V},Se=(V,Qe)=>{let ce=ie(N({},u[Qe]),{conditions:1,inner:""});ce.prev=O,ce.parens=A.parens,ce.output=A.output;let fe=(r.capture?"(":"")+ce.open;Fe("parens"),xe({type:V,value:Qe,output:A.output?"":p}),xe({type:"paren",extglob:!0,value:Oe(),output:fe}),oe.push(ce)},de=V=>{let Qe=V.close+(r.capture?")":""),ce;if(V.type==="negate"){let fe=ee;V.inner&&V.inner.length>1&&V.inner.includes("/")&&(fe=Z(r)),(fe!==ee||pe()||/^\)+$/.test(te()))&&(Qe=V.close=`)$))${fe}`),V.inner.includes("*")&&(ce=te())&&/^\.[^\\/.]+$/.test(ce)&&(Qe=V.close=`)${ce})${fe})`),V.prev.type==="bos"&&(A.negatedExtglob=!0)}xe({type:"paren",extglob:!0,value:L,output:Qe}),Ue("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let V=!1,Qe=t.replace(Q0e,(ce,fe,gt,Ht,Mt,mi)=>Ht==="\\"?(V=!0,ce):Ht==="?"?fe?fe+Ht+(Mt?k.repeat(Mt.length):""):mi===0?re+(Mt?k.repeat(Mt.length):""):k.repeat(gt.length):Ht==="."?g.repeat(gt.length):Ht==="*"?fe?fe+Ht+(Mt?ee:""):ee:fe?ce:`\\${ce}`);return V===!0&&(r.unescape===!0?Qe=Qe.replace(/\\/g,""):Qe=Qe.replace(/\\+/g,ce=>ce.length%2==0?"\\\\":ce?"\\":"")),Qe===t&&r.contains===!0?(A.output=t,A):(A.output=ts.wrapOutput(Qe,A,e),A)}for(;!pe();){if(L=Oe(),L==="\0")continue;if(L==="\\"){let ce=Ce();if(ce==="/"&&r.bash!==!0||ce==="."||ce===";")continue;if(!ce){L+="\\",xe({type:"text",value:L});continue}let fe=/^\\+/.exec(te()),gt=0;if(fe&&fe[0].length>2&&(gt=fe[0].length,A.index+=gt,gt%2!=0&&(L+="\\")),r.unescape===!0?L=Oe():L+=Oe(),A.brackets===0){xe({type:"text",value:L});continue}}if(A.brackets>0&&(L!=="]"||O.value==="["||O.value==="[^")){if(r.posix!==!1&&L===":"){let ce=O.value.slice(1);if(ce.includes("[")&&(O.posix=!0,ce.includes(":"))){let fe=O.value.lastIndexOf("["),gt=O.value.slice(0,fe),Ht=O.value.slice(fe+2),Mt=B0e[Ht];if(Mt){O.value=gt+Mt,A.backtrack=!0,Oe(),!s.output&&o.indexOf(O)===1&&(s.output=p);continue}}}(L==="["&&Ce()!==":"||L==="-"&&Ce()==="]")&&(L=`\\${L}`),L==="]"&&(O.value==="["||O.value==="[^")&&(L=`\\${L}`),r.posix===!0&&L==="!"&&O.value==="["&&(L="^"),O.value+=L,be({value:L});continue}if(A.quotes===1&&L!=='"'){L=ts.escapeRegex(L),O.value+=L,be({value:L});continue}if(L==='"'){A.quotes=A.quotes===1?0:1,r.keepQuotes===!0&&xe({type:"text",value:L});continue}if(L==="("){Fe("parens"),xe({type:"paren",value:L});continue}if(L===")"){if(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(xg("opening","("));let ce=oe[oe.length-1];if(ce&&A.parens===ce.parens+1){de(oe.pop());continue}xe({type:"paren",value:L,output:A.parens?")":"\\)"}),Ue("parens");continue}if(L==="["){if(r.nobracket===!0||!te().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(xg("closing","]"));L=`\\${L}`}else Fe("brackets");xe({type:"bracket",value:L});continue}if(L==="]"){if(r.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){xe({type:"text",value:L,output:`\\${L}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(xg("opening","["));xe({type:"text",value:L,output:`\\${L}`});continue}Ue("brackets");let ce=O.value.slice(1);if(O.posix!==!0&&ce[0]==="^"&&!ce.includes("/")&&(L=`/${L}`),O.value+=L,be({value:L}),r.literalBrackets===!1||ts.hasRegexChars(ce))continue;let fe=ts.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),r.literalBrackets===!0){A.output+=fe,O.value=fe;continue}O.value=`(${a}${fe}|${O.value})`,A.output+=O.value;continue}if(L==="{"&&r.nobrace!==!0){Fe("braces");let ce={type:"brace",value:L,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};le.push(ce),xe(ce);continue}if(L==="}"){let ce=le[le.length-1];if(r.nobrace===!0||!ce){xe({type:"text",value:L,output:L});continue}let fe=")";if(ce.dots===!0){let gt=o.slice(),Ht=[];for(let Mt=gt.length-1;Mt>=0&&(o.pop(),gt[Mt].type!=="brace");Mt--)gt[Mt].type!=="dots"&&Ht.unshift(gt[Mt].value);fe=v0e(Ht,r),A.backtrack=!0}if(ce.comma!==!0&&ce.dots!==!0){let gt=A.output.slice(0,ce.outputIndex),Ht=A.tokens.slice(ce.tokensIndex);ce.value=ce.output="\\{",L=fe="\\}",A.output=gt;for(let Mt of Ht)A.output+=Mt.output||Mt.value}xe({type:"brace",value:L,output:fe}),Ue("braces"),le.pop();continue}if(L==="|"){oe.length>0&&oe[oe.length-1].conditions++,xe({type:"text",value:L});continue}if(L===","){let ce=L,fe=le[le.length-1];fe&&X[X.length-1]==="braces"&&(fe.comma=!0,ce="|"),xe({type:"comma",value:L,output:ce});continue}if(L==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}xe({type:"slash",value:L,output:h});continue}if(L==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let ce=le[le.length-1];O.type="dots",O.output+=L,O.value+=L,ce.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){xe({type:"text",value:L,output:g});continue}xe({type:"dot",value:L,output:g});continue}if(L==="?"){if(!(O&&O.value==="(")&&r.noextglob!==!0&&Ce()==="("&&Ce(2)!=="?"){Se("qmark",L);continue}if(O&&O.type==="paren"){let fe=Ce(),gt=L;if(fe==="<"&&!ts.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(fe)||fe==="<"&&!/<([!=]|\w+>)/.test(te()))&&(gt=`\\${L}`),xe({type:"text",value:L,output:gt});continue}if(r.dot!==!0&&(O.type==="slash"||O.type==="bos")){xe({type:"qmark",value:L,output:T});continue}xe({type:"qmark",value:L,output:k});continue}if(L==="!"){if(r.noextglob!==!0&&Ce()==="("&&(Ce(2)!=="?"||!/[!=<:]/.test(Ce(3)))){Se("negate",L);continue}if(r.nonegate!==!0&&A.index===0){he();continue}}if(L==="+"){if(r.noextglob!==!0&&Ce()==="("&&Ce(2)!=="?"){Se("plus",L);continue}if(O&&O.value==="("||r.regex===!1){xe({type:"plus",value:L,output:f});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){xe({type:"plus",value:L});continue}xe({type:"plus",value:f});continue}if(L==="@"){if(r.noextglob!==!0&&Ce()==="("&&Ce(2)!=="?"){xe({type:"at",extglob:!0,value:L,output:""});continue}xe({type:"text",value:L});continue}if(L!=="*"){(L==="$"||L==="^")&&(L=`\\${L}`);let ce=b0e.exec(te());ce&&(L+=ce[0],A.index+=ce[0].length),xe({type:"text",value:L});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=L,O.output=ee,A.backtrack=!0,A.globstar=!0,se(L);continue}let V=te();if(r.noextglob!==!0&&/^\([^?]/.test(V)){Se("star",L);continue}if(O.type==="star"){if(r.noglobstar===!0){se(L);continue}let ce=O.prev,fe=ce.prev,gt=ce.type==="slash"||ce.type==="bos",Ht=fe&&(fe.type==="star"||fe.type==="globstar");if(r.bash===!0&&(!gt||V[0]&&V[0]!=="/")){xe({type:"star",value:L,output:""});continue}let Mt=A.braces>0&&(ce.type==="comma"||ce.type==="brace"),mi=oe.length&&(ce.type==="pipe"||ce.type==="paren");if(!gt&&ce.type!=="paren"&&!Mt&&!mi){xe({type:"star",value:L,output:""});continue}for(;V.slice(0,3)==="/**";){let Gt=t[A.index+4];if(Gt&&Gt!=="/")break;V=V.slice(3),se("/**",3)}if(ce.type==="bos"&&pe()){O.type="globstar",O.value+=L,O.output=Z(r),A.output=O.output,A.globstar=!0,se(L);continue}if(ce.type==="slash"&&ce.prev.type!=="bos"&&!Ht&&pe()){A.output=A.output.slice(0,-(ce.output+O.output).length),ce.output=`(?:${ce.output}`,O.type="globstar",O.output=Z(r)+(r.strictSlashes?")":"|$)"),O.value+=L,A.globstar=!0,A.output+=ce.output+O.output,se(L);continue}if(ce.type==="slash"&&ce.prev.type!=="bos"&&V[0]==="/"){let Gt=V[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(ce.output+O.output).length),ce.output=`(?:${ce.output}`,O.type="globstar",O.output=`${Z(r)}${h}|${h}${Gt})`,O.value+=L,A.output+=ce.output+O.output,A.globstar=!0,se(L+Oe()),xe({type:"slash",value:"/",output:""});continue}if(ce.type==="bos"&&V[0]==="/"){O.type="globstar",O.value+=L,O.output=`(?:^|${h}|${Z(r)}${h})`,A.output=O.output,A.globstar=!0,se(L+Oe()),xe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=Z(r),O.value+=L,A.output+=O.output,A.globstar=!0,se(L);continue}let Qe={type:"star",value:L,output:ee};if(r.bash===!0){Qe.output=".*?",(O.type==="bos"||O.type==="slash")&&(Qe.output=J+Qe.output),xe(Qe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&r.regex===!0){Qe.output=L,xe(Qe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=b,O.output+=b):r.dot===!0?(A.output+=S,O.output+=S):(A.output+=J,O.output+=J),Ce()!=="*"&&(A.output+=p,O.output+=p)),xe(Qe)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(xg("closing","]"));A.output=ts.escapeLast(A.output,"["),Ue("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(xg("closing",")"));A.output=ts.escapeLast(A.output,"("),Ue("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(xg("closing","}"));A.output=ts.escapeLast(A.output,"{"),Ue("braces")}if(r.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&xe({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let V of A.tokens)A.output+=V.output!=null?V.output:V.value,V.suffix&&(A.output+=V.suffix)}return A};tJ.fastpaths=(t,e)=>{let r=N({},e),i=typeof r.maxLength=="number"?Math.min(Ry,r.maxLength):Ry,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);t=eJ[t]||t;let s=ts.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=Dy.globChars(s),m=r.dot?g:u,y=r.dot?f:u,b=r.capture?"":"?:",S={negated:!1,prefix:""},k=r.bash===!0?".*?":h;r.capture&&(k=`(${k})`);let T=J=>J.noglobstar===!0?k:`(${b}(?:(?!${p}${J.dot?c:o}).)*?)`,Y=J=>{switch(J){case"*":return`${m}${l}${k}`;case".*":return`${o}${l}${k}`;case"*.*":return`${m}${k}${o}${l}${k}`;case"*/*":return`${m}${k}${a}${l}${y}${k}`;case"**":return m+T(r);case"**/*":return`(?:${m}${T(r)}${a})?${y}${l}${k}`;case"**/*.*":return`(?:${m}${T(r)}${a})?${y}${k}${o}${l}${k}`;case"**/.*":return`(?:${m}${T(r)}${a})?${o}${l}${k}`;default:{let re=/^(.*?)\.(\w+)$/.exec(J);if(!re)return;let ee=Y(re[1]);return ee?ee+o+re[2]:void 0}}},j=ts.removePrefix(t,S),Z=Y(j);return Z&&r.strictSlashes!==!0&&(Z+=`${a}?`),Z};$q.exports=tJ});var nJ=w((yrt,iJ)=>{"use strict";var S0e=require("path"),k0e=Zq(),TS=rJ(),OS=Zp(),x0e=Xp(),P0e=t=>t&&typeof t=="object"&&!Array.isArray(t),_r=(t,e,r=!1)=>{if(Array.isArray(t)){let u=t.map(f=>_r(f,e,r));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=P0e(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=OS.isWindows(e),o=i?_r.compileRe(t,e):_r.makeRe(t,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u=ie(N({},e),{ignore:null,onMatch:null,onResult:null});l=_r(n.ignore,u,r)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=_r.test(u,o,e,{glob:t,posix:s}),m={glob:t,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(m),f===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return r&&(c.state=a),c};_r.test=(t,e,r,{glob:i,posix:n}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let s=r||{},o=s.format||(n?OS.toPosixSlashes:null),a=t===i,l=a&&o?o(t):t;return a===!1&&(l=o?o(t):t,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=_r.matchBase(t,e,r,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};_r.matchBase=(t,e,r,i=OS.isWindows(r))=>(e instanceof RegExp?e:_r.makeRe(e,r)).test(S0e.basename(t));_r.isMatch=(t,e,r)=>_r(e,r)(t);_r.parse=(t,e)=>Array.isArray(t)?t.map(r=>_r.parse(r,e)):TS(t,ie(N({},e),{fastpaths:!1}));_r.scan=(t,e)=>k0e(t,e);_r.compileRe=(t,e,r=!1,i=!1)=>{if(r===!0)return t.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${t.output})${o}`;t&&t.negated===!0&&(a=`^(?!${a}).*$`);let l=_r.toRegex(a,e);return i===!0&&(l.state=t),l};_r.makeRe=(t,e={},r=!1,i=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(n.output=TS.fastpaths(t,e)),n.output||(n=TS(t,e)),_r.compileRe(n,e,r,i)};_r.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};_r.constants=x0e;iJ.exports=_r});var MS=w((wrt,sJ)=>{"use strict";sJ.exports=nJ()});var rs=w((Brt,oJ)=>{"use strict";var aJ=require("util"),AJ=Kq(),Yo=MS(),KS=Zp(),lJ=t=>t===""||t==="./",Pr=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),r&&r.onResult&&r.onResult(u)};for(let u=0;u!i.has(u));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Pr.match=Pr;Pr.matcher=(t,e)=>Yo(t,e);Pr.isMatch=(t,e,r)=>Yo(e,r)(t);Pr.any=Pr.isMatch;Pr.not=(t,e,r={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=a=>{r.onResult&&r.onResult(a),n.push(a.output)},o=Pr(t,e,ie(N({},r),{onResult:s}));for(let a of n)o.includes(a)||i.add(a);return[...i]};Pr.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${aJ.inspect(t)}"`);if(Array.isArray(e))return e.some(i=>Pr.contains(t,i,r));if(typeof e=="string"){if(lJ(t)||lJ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Pr.isMatch(t,e,ie(N({},r),{contains:!0}))};Pr.matchKeys=(t,e,r)=>{if(!KS.isObject(t))throw new TypeError("Expected the first argument to be an object");let i=Pr(Object.keys(t),e,r),n={};for(let s of i)n[s]=t[s];return n};Pr.some=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=Yo(String(n),r);if(i.some(o=>s(o)))return!0}return!1};Pr.every=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=Yo(String(n),r);if(!i.every(o=>s(o)))return!1}return!0};Pr.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${aJ.inspect(t)}"`);return[].concat(e).every(i=>Yo(i,r)(t))};Pr.capture=(t,e,r)=>{let i=KS.isWindows(r),s=Yo.makeRe(String(t),ie(N({},r),{capture:!0})).exec(i?KS.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Pr.makeRe=(...t)=>Yo.makeRe(...t);Pr.scan=(...t)=>Yo.scan(...t);Pr.parse=(t,e)=>{let r=[];for(let i of[].concat(t||[]))for(let n of AJ(String(i),e))r.push(Yo.parse(n,e));return r};Pr.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:AJ(t,e)};Pr.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Pr.braces(t,ie(N({},e),{expand:!0}))};oJ.exports=Pr});var uJ=w((brt,cJ)=>{"use strict";cJ.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var fJ=w((Qrt,gJ)=>{"use strict";var D0e=uJ();gJ.exports=t=>typeof t=="string"?t.replace(D0e(),""):t});var xJ=w((jrt,kJ)=>{"use strict";kJ.exports=(...t)=>[...new Set([].concat(...t))]});var ek=w((Yrt,PJ)=>{"use strict";var j0e=require("stream"),DJ=j0e.PassThrough,Y0e=Array.prototype.slice;PJ.exports=q0e;function q0e(){let t=[],e=!1,r=Y0e.call(arguments),i=r[r.length-1];i&&!Array.isArray(i)&&i.pipe==null?r.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=DJ(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});function J0e(t){return t.reduce((e,r)=>[].concat(e,r),[])}Oy.flatten=J0e;function W0e(t,e){let r=[[]],i=0;for(let n of t)e(n)?(i++,r[i]=[]):r[i].push(n);return r}Oy.splitWhen=W0e});var NJ=w(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});function z0e(t){return t.code==="ENOENT"}tk.isEnoentCodeError=z0e});var TJ=w(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});var LJ=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function _0e(t,e){return new LJ(t,e)}rk.createDirentFromStats=_0e});var OJ=w(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});var V0e=require("path"),X0e=2,Z0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function $0e(t){return t.replace(/\\/g,"/")}Tg.unixify=$0e;function ebe(t,e){return V0e.resolve(t,e)}Tg.makeAbsolute=ebe;function tbe(t){return t.replace(Z0e,"\\$2")}Tg.escape=tbe;function rbe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(X0e)}return t}Tg.removeLeadingDotSegment=rbe});var KJ=w((_rt,MJ)=>{MJ.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var GJ=w((Vrt,UJ)=>{var ibe=KJ(),HJ={"{":"}","(":")","[":"]"},nbe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=t.indexOf("\\",e),o===-1||o>i)))||n!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(n=t.indexOf("}",e),n>e&&(o=t.indexOf("\\",e),o===-1||o>n))||s!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(s=t.indexOf(")",e),s>e&&(o=t.indexOf("\\",e),o===-1||o>s))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(o=t.indexOf("\\",r),o===-1||o>s))))return!0;if(t[e]==="\\"){var a=t[e+1];e+=2;var l=HJ[a];if(l){var c=t.indexOf(l,e);c!==-1&&(e=c+1)}if(t[e]==="!")return!0}else e++}return!1},sbe=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var obe=GJ(),abe=require("path").posix.dirname,Abe=require("os").platform()==="win32",ik="/",lbe=/\\/g,cbe=/[\{\[].*[\}\]]$/,ube=/(^|[^\\])([\{\[]|\([^\)]+$)/,gbe=/\\([\!\*\?\|\[\]\(\)\{\}])/g;jJ.exports=function(e,r){var i=Object.assign({flipBackslashes:!0},r);i.flipBackslashes&&Abe&&e.indexOf(ik)<0&&(e=e.replace(lbe,ik)),cbe.test(e)&&(e+=ik),e+="a";do e=abe(e);while(obe(e)||ube.test(e));return e.replace(gbe,"$1")}});var $J=w(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});var fbe=require("path"),hbe=YJ(),qJ=rs(),pbe=MS(),JJ="**",dbe="\\",Cbe=/[*?]|^!/,mbe=/\[.*]/,Ebe=/(?:^|[^!*+?@])\(.*\|.*\)/,Ibe=/[!*+?@]\(.*\)/,ybe=/{.*(?:,|\.\.).*}/;function zJ(t,e={}){return!WJ(t,e)}si.isStaticPattern=zJ;function WJ(t,e={}){return!!(e.caseSensitiveMatch===!1||t.includes(dbe)||Cbe.test(t)||mbe.test(t)||Ebe.test(t)||e.extglob!==!1&&Ibe.test(t)||e.braceExpansion!==!1&&ybe.test(t))}si.isDynamicPattern=WJ;function wbe(t){return My(t)?t.slice(1):t}si.convertToPositivePattern=wbe;function Bbe(t){return"!"+t}si.convertToNegativePattern=Bbe;function My(t){return t.startsWith("!")&&t[1]!=="("}si.isNegativePattern=My;function _J(t){return!My(t)}si.isPositivePattern=_J;function bbe(t){return t.filter(My)}si.getNegativePatterns=bbe;function Qbe(t){return t.filter(_J)}si.getPositivePatterns=Qbe;function vbe(t){return hbe(t,{flipBackslashes:!1})}si.getBaseDirectory=vbe;function Sbe(t){return t.includes(JJ)}si.hasGlobStar=Sbe;function VJ(t){return t.endsWith("/"+JJ)}si.endsWithSlashGlobStar=VJ;function kbe(t){let e=fbe.basename(t);return VJ(t)||zJ(e)}si.isAffectDepthOfReadingPattern=kbe;function xbe(t){return t.reduce((e,r)=>e.concat(XJ(r)),[])}si.expandPatternsWithBraceExpansion=xbe;function XJ(t){return qJ.braces(t,{expand:!0,nodupes:!0})}si.expandBraceExpansion=XJ;function Pbe(t,e){let r=pbe.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.parts.length===0?[t]:r.parts}si.getPatternParts=Pbe;function ZJ(t,e){return qJ.makeRe(t,e)}si.makeRe=ZJ;function Dbe(t,e){return t.map(r=>ZJ(r,e))}si.convertPatternsToRe=Dbe;function Rbe(t,e){return e.some(r=>r.test(t))}si.matchAny=Rbe});var t3=w(nk=>{"use strict";Object.defineProperty(nk,"__esModule",{value:!0});var Fbe=ek();function Nbe(t){let e=Fbe(t);return t.forEach(r=>{r.once("error",i=>e.emit("error",i))}),e.once("close",()=>e3(t)),e.once("end",()=>e3(t)),e}nk.merge=Nbe;function e3(t){t.forEach(e=>e.emit("close"))}});var r3=w(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});function Lbe(t){return typeof t=="string"}Ky.isString=Lbe;function Tbe(t){return t===""}Ky.isEmpty=Tbe});var za=w(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});var Obe=FJ();Wa.array=Obe;var Mbe=NJ();Wa.errno=Mbe;var Kbe=TJ();Wa.fs=Kbe;var Ube=OJ();Wa.path=Ube;var Hbe=$J();Wa.pattern=Hbe;var Gbe=t3();Wa.stream=Gbe;var jbe=r3();Wa.string=jbe});var a3=w(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});var Fc=za();function Ybe(t,e){let r=i3(t),i=n3(t,e.ignore),n=r.filter(l=>Fc.pattern.isStaticPattern(l,e)),s=r.filter(l=>Fc.pattern.isDynamicPattern(l,e)),o=sk(n,i,!1),a=sk(s,i,!0);return o.concat(a)}_a.generate=Ybe;function sk(t,e,r){let i=s3(t);return"."in i?[ok(".",t,e,r)]:o3(i,e,r)}_a.convertPatternsToTasks=sk;function i3(t){return Fc.pattern.getPositivePatterns(t)}_a.getPositivePatterns=i3;function n3(t,e){return Fc.pattern.getNegativePatterns(t).concat(e).map(Fc.pattern.convertToPositivePattern)}_a.getNegativePatternsAsPositive=n3;function s3(t){let e={};return t.reduce((r,i)=>{let n=Fc.pattern.getBaseDirectory(i);return n in r?r[n].push(i):r[n]=[i],r},e)}_a.groupPatternsByBaseDirectory=s3;function o3(t,e,r){return Object.keys(t).map(i=>ok(i,t[i],e,r))}_a.convertPatternGroupsToTasks=o3;function ok(t,e,r,i){return{dynamic:i,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Fc.pattern.convertToNegativePattern))}}_a.convertPatternGroupToTask=ok});var l3=w(Uy=>{"use strict";Object.defineProperty(Uy,"__esModule",{value:!0});Uy.read=void 0;function qbe(t,e,r){e.fs.lstat(t,(i,n)=>{if(i!==null){A3(r,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){ak(r,n);return}e.fs.stat(t,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){A3(r,s);return}ak(r,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),ak(r,o)})})}Uy.read=qbe;function A3(t,e){t(e)}function ak(t,e){t(null,e)}});var c3=w(Hy=>{"use strict";Object.defineProperty(Hy,"__esModule",{value:!0});Hy.read=void 0;function Jbe(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let i=e.fs.statSync(t);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw i}}Hy.read=Jbe});var u3=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.createFileSystemAdapter=ZA.FILE_SYSTEM_ADAPTER=void 0;var Gy=require("fs");ZA.FILE_SYSTEM_ADAPTER={lstat:Gy.lstat,stat:Gy.stat,lstatSync:Gy.lstatSync,statSync:Gy.statSync};function Wbe(t){return t===void 0?ZA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},ZA.FILE_SYSTEM_ADAPTER),t)}ZA.createFileSystemAdapter=Wbe});var f3=w(Ak=>{"use strict";Object.defineProperty(Ak,"__esModule",{value:!0});var zbe=u3(),g3=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=zbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e!=null?e:r}};Ak.default=g3});var Nc=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.statSync=$A.stat=$A.Settings=void 0;var h3=l3(),_be=c3(),lk=f3();$A.Settings=lk.default;function Vbe(t,e,r){if(typeof e=="function"){h3.read(t,ck(),e);return}h3.read(t,ck(e),r)}$A.stat=Vbe;function Xbe(t,e){let r=ck(e);return _be.read(t,r)}$A.statSync=Xbe;function ck(t={}){return t instanceof lk.default?t:new lk.default(t)}});var d3=w((Ait,p3)=>{p3.exports=Zbe;function Zbe(t,e){var r,i,n,s=!0;Array.isArray(t)?(r=[],i=t.length):(n=Object.keys(t),r={},i=n.length);function o(l){function c(){e&&e(l,r),e=null}s?process.nextTick(c):c()}function a(l,c,u){r[l]=u,(--i==0||c)&&o(c)}i?n?n.forEach(function(l){t[l](function(c,u){a(l,c,u)})}):t.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var uk=w(jy=>{"use strict";Object.defineProperty(jy,"__esModule",{value:!0});jy.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Yy=process.versions.node.split(".");if(Yy[0]===void 0||Yy[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var C3=Number.parseInt(Yy[0],10),$be=Number.parseInt(Yy[1],10),m3=10,eQe=10,tQe=C3>m3,rQe=C3===m3&&$be>=eQe;jy.IS_SUPPORT_READDIR_WITH_FILE_TYPES=tQe||rQe});var I3=w(qy=>{"use strict";Object.defineProperty(qy,"__esModule",{value:!0});qy.createDirentFromStats=void 0;var E3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function iQe(t,e){return new E3(t,e)}qy.createDirentFromStats=iQe});var gk=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.fs=void 0;var nQe=I3();Jy.fs=nQe});var fk=w(Wy=>{"use strict";Object.defineProperty(Wy,"__esModule",{value:!0});Wy.joinPathSegments=void 0;function sQe(t,e,r){return t.endsWith(r)?t+e:t+r+e}Wy.joinPathSegments=sQe});var v3=w(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});el.readdir=el.readdirWithFileTypes=el.read=void 0;var oQe=Nc(),y3=d3(),aQe=uk(),w3=gk(),B3=fk();function AQe(t,e,r){if(!e.stats&&aQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){b3(t,e,r);return}Q3(t,e,r)}el.read=AQe;function b3(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(i,n)=>{if(i!==null){zy(r,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:B3.joinPathSegments(t,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){hk(r,s);return}let o=s.map(a=>lQe(a,e));y3(o,(a,l)=>{if(a!==null){zy(r,a);return}hk(r,l)})})}el.readdirWithFileTypes=b3;function lQe(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){r(i);return}r(null,t);return}t.dirent=w3.fs.createDirentFromStats(t.name,n),r(null,t)})}}function Q3(t,e,r){e.fs.readdir(t,(i,n)=>{if(i!==null){zy(r,i);return}let s=n.map(o=>{let a=B3.joinPathSegments(t,o,e.pathSegmentSeparator);return l=>{oQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:w3.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});y3(s,(o,a)=>{if(o!==null){zy(r,o);return}hk(r,a)})})}el.readdir=Q3;function zy(t,e){t(e)}function hk(t,e){t(null,e)}});var D3=w(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});tl.readdir=tl.readdirWithFileTypes=tl.read=void 0;var cQe=Nc(),uQe=uk(),S3=gk(),k3=fk();function gQe(t,e){return!e.stats&&uQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?x3(t,e):P3(t,e)}tl.read=gQe;function x3(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:k3.joinPathSegments(t,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=S3.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}tl.readdirWithFileTypes=x3;function P3(t,e){return e.fs.readdirSync(t).map(i=>{let n=k3.joinPathSegments(t,i,e.pathSegmentSeparator),s=cQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:S3.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}tl.readdir=P3});var R3=w(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});rl.createFileSystemAdapter=rl.FILE_SYSTEM_ADAPTER=void 0;var Og=require("fs");rl.FILE_SYSTEM_ADAPTER={lstat:Og.lstat,stat:Og.stat,lstatSync:Og.lstatSync,statSync:Og.statSync,readdir:Og.readdir,readdirSync:Og.readdirSync};function fQe(t){return t===void 0?rl.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},rl.FILE_SYSTEM_ADAPTER),t)}rl.createFileSystemAdapter=fQe});var N3=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var hQe=require("path"),pQe=Nc(),dQe=R3(),F3=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=dQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,hQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new pQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};pk.default=F3});var _y=w(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.Settings=il.scandirSync=il.scandir=void 0;var L3=v3(),CQe=D3(),dk=N3();il.Settings=dk.default;function mQe(t,e,r){if(typeof e=="function"){L3.read(t,Ck(),e);return}L3.read(t,Ck(e),r)}il.scandir=mQe;function EQe(t,e){let r=Ck(e);return CQe.read(t,r)}il.scandirSync=EQe;function Ck(t={}){return t instanceof dk.default?t:new dk.default(t)}});var O3=w((mit,T3)=>{"use strict";function IQe(t){var e=new t,r=e;function i(){var s=e;return s.next?e=s.next:(e=new t,r=e),s.next=null,s}function n(s){r.next=s,r=s}return{get:i,release:n}}T3.exports=IQe});var K3=w((Eit,mk)=>{"use strict";var yQe=O3();function M3(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var i=yQe(wQe),n=null,s=null,o=0,a=null,l={push:m,drain:Wo,saturated:Wo,pause:u,paused:!1,concurrency:r,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:y,empty:Wo,kill:S,killAndDrain:k,error:T};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var Y=n,j=0;Y;)Y=Y.next,j++;return j}function f(){for(var Y=n,j=[];Y;)j.push(Y.value),Y=Y.next;return j}function h(){if(!!l.paused){l.paused=!1;for(var Y=0;Y{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.joinPathSegments=zo.replacePathSegmentSeparator=zo.isAppliedFilter=zo.isFatalError=void 0;function bQe(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}zo.isFatalError=bQe;function QQe(t,e){return t===null||t(e)}zo.isAppliedFilter=QQe;function vQe(t,e){return t.split(/[/\\]/).join(e)}zo.replacePathSegmentSeparator=vQe;function SQe(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}zo.joinPathSegments=SQe});var Ik=w(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var kQe=Vy(),U3=class{constructor(e,r){this._root=e,this._settings=r,this._root=kQe.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};Ek.default=U3});var wk=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});var xQe=require("events"),PQe=_y(),DQe=K3(),Xy=Vy(),RQe=Ik(),H3=class extends RQe.default{constructor(e,r){super(e,r);this._settings=r,this._scandir=PQe.scandir,this._emitter=new xQe.EventEmitter,this._queue=DQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let i={directory:e,base:r};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){r(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!Xy.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let i=e.path;r!==void 0&&(e.path=Xy.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),Xy.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&Xy.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};yk.default=H3});var j3=w(Bk=>{"use strict";Object.defineProperty(Bk,"__esModule",{value:!0});var FQe=wk(),G3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new FQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(r=>{NQe(e,r)}),this._reader.onEntry(r=>{this._storage.add(r)}),this._reader.onEnd(()=>{LQe(e,[...this._storage])}),this._reader.read()}};Bk.default=G3;function NQe(t,e){t(e)}function LQe(t,e){t(null,e)}});var q3=w(bk=>{"use strict";Object.defineProperty(bk,"__esModule",{value:!0});var TQe=require("stream"),OQe=wk(),Y3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new OQe.default(this._root,this._settings),this._stream=new TQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};bk.default=Y3});var W3=w(Qk=>{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});var MQe=_y(),Zy=Vy(),KQe=Ik(),J3=class extends KQe.default{constructor(){super(...arguments);this._scandir=MQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,r)}catch(i){this._handleError(i)}}_handleError(e){if(!!Zy.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let i=e.path;r!==void 0&&(e.path=Zy.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),Zy.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&Zy.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};Qk.default=J3});var _3=w(vk=>{"use strict";Object.defineProperty(vk,"__esModule",{value:!0});var UQe=W3(),z3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new UQe.default(this._root,this._settings)}read(){return this._reader.read()}};vk.default=z3});var X3=w(Sk=>{"use strict";Object.defineProperty(Sk,"__esModule",{value:!0});var HQe=require("path"),GQe=_y(),V3=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,HQe.sep),this.fsScandirSettings=new GQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};Sk.default=V3});var xk=w(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.Settings=_o.walkStream=_o.walkSync=_o.walk=void 0;var Z3=j3(),jQe=q3(),YQe=_3(),kk=X3();_o.Settings=kk.default;function qQe(t,e,r){if(typeof e=="function"){new Z3.default(t,$y()).read(e);return}new Z3.default(t,$y(e)).read(r)}_o.walk=qQe;function JQe(t,e){let r=$y(e);return new YQe.default(t,r).read()}_o.walkSync=JQe;function WQe(t,e){let r=$y(e);return new jQe.default(t,r).read()}_o.walkStream=WQe;function $y(t={}){return t instanceof kk.default?t:new kk.default(t)}});var Dk=w(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});var zQe=require("path"),_Qe=Nc(),$3=za(),eW=class{constructor(e){this._settings=e,this._fsStatSettings=new _Qe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return zQe.resolve(this._settings.cwd,e)}_makeEntry(e,r){let i={name:r,path:r,dirent:$3.fs.createDirentFromStats(r,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!$3.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};Pk.default=eW});var Fk=w(Rk=>{"use strict";Object.defineProperty(Rk,"__esModule",{value:!0});var VQe=require("stream"),XQe=Nc(),ZQe=xk(),$Qe=Dk(),tW=class extends $Qe.default{constructor(){super(...arguments);this._walkStream=ZQe.walkStream,this._stat=XQe.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let i=e.map(this._getFullEntryPath,this),n=new VQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],r).then(l=>{l!==null&&r.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,r)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((r,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?r(s):i(n))})}};Rk.default=tW});var iW=w(Nk=>{"use strict";Object.defineProperty(Nk,"__esModule",{value:!0});var Mg=za(),rW=class{constructor(e,r,i){this._patterns=e,this._settings=r,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Mg.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let i=this._getPatternSegments(r),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:r,segments:i,sections:n})}}_getPatternSegments(e){return Mg.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Mg.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Mg.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Mg.array.splitWhen(e,r=>r.dynamic&&Mg.pattern.hasGlobStar(r.pattern))}};Nk.default=rW});var sW=w(Lk=>{"use strict";Object.defineProperty(Lk,"__esModule",{value:!0});var eve=iW(),nW=class extends eve.default{match(e){let r=e.split("/"),i=r.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||r.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};Lk.default=nW});var aW=w(Tk=>{"use strict";Object.defineProperty(Tk,"__esModule",{value:!0});var ew=za(),tve=sW(),oW=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,i){let n=this._getMatcher(r),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new tve.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(ew.pattern.isAffectDepthOfReadingPattern);return ew.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,i,n){let s=this._getEntryLevel(e,r.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(r))return!1;let o=ew.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,r){let i=e.split("/").length;return r.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!ew.pattern.matchAny(e,r)}};Tk.default=oW});var lW=w(Ok=>{"use strict";Object.defineProperty(Ok,"__esModule",{value:!0});var od=za(),AW=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let i=od.pattern.convertPatternsToRe(e,this._micromatchOptions),n=od.pattern.convertPatternsToRe(r,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,r,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,r)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let i=od.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,r)}_isMatchToPatterns(e,r){let i=od.path.removeLeadingDotSegment(e);return od.pattern.matchAny(i,r)}};Ok.default=AW});var uW=w(Mk=>{"use strict";Object.defineProperty(Mk,"__esModule",{value:!0});var rve=za(),cW=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return rve.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};Mk.default=cW});var hW=w(Kk=>{"use strict";Object.defineProperty(Kk,"__esModule",{value:!0});var gW=za(),fW=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=gW.path.makeAbsolute(this._settings.cwd,r),r=gW.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};Kk.default=fW});var tw=w(Uk=>{"use strict";Object.defineProperty(Uk,"__esModule",{value:!0});var ive=require("path"),nve=aW(),sve=lW(),ove=uW(),ave=hW(),pW=class{constructor(e){this._settings=e,this.errorFilter=new ove.default(this._settings),this.entryFilter=new sve.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new nve.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ave.default(this._settings)}_getRootDirectory(e){return ive.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Uk.default=pW});var CW=w(Hk=>{"use strict";Object.defineProperty(Hk,"__esModule",{value:!0});var Ave=Fk(),lve=tw(),dW=class extends lve.default{constructor(){super(...arguments);this._reader=new Ave.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(r,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};Hk.default=dW});var EW=w(Gk=>{"use strict";Object.defineProperty(Gk,"__esModule",{value:!0});var cve=require("stream"),uve=Fk(),gve=tw(),mW=class extends gve.default{constructor(){super(...arguments);this._reader=new uve.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(r,e,i),s=new cve.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};Gk.default=mW});var yW=w(jk=>{"use strict";Object.defineProperty(jk,"__esModule",{value:!0});var fve=Nc(),hve=xk(),pve=Dk(),IW=class extends pve.default{constructor(){super(...arguments);this._walkSync=hve.walkSync,this._statSync=fve.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,r);o===null||!r.entryFilter(o)||i.push(o)}return i}_getEntry(e,r,i){try{let n=this._getStat(e);return this._makeEntry(n,r)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};jk.default=IW});var BW=w(Yk=>{"use strict";Object.defineProperty(Yk,"__esModule",{value:!0});var dve=yW(),Cve=tw(),wW=class extends Cve.default{constructor(){super(...arguments);this._reader=new dve.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(r,e,i).map(i.transform)}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};Yk.default=wW});var QW=w(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});var Kg=require("fs"),mve=require("os"),Eve=mve.cpus().length;ad.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Kg.lstat,lstatSync:Kg.lstatSync,stat:Kg.stat,statSync:Kg.statSync,readdir:Kg.readdir,readdirSync:Kg.readdirSync};var bW=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,Eve),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,Infinity),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},ad.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};ad.default=bW});var rw=w((jit,vW)=>{"use strict";var SW=a3(),Ive=CW(),yve=EW(),wve=BW(),qk=QW(),Lc=za();async function Wk(t,e){Ug(t);let r=Jk(t,Ive.default,e),i=await Promise.all(r);return Lc.array.flatten(i)}(function(t){function e(o,a){Ug(o);let l=Jk(o,wve.default,a);return Lc.array.flatten(l)}t.sync=e;function r(o,a){Ug(o);let l=Jk(o,yve.default,a);return Lc.stream.merge(l)}t.stream=r;function i(o,a){Ug(o);let l=[].concat(o),c=new qk.default(a);return SW.generate(l,c)}t.generateTasks=i;function n(o,a){Ug(o);let l=new qk.default(a);return Lc.pattern.isDynamicPattern(o,l)}t.isDynamicPattern=n;function s(o){return Ug(o),Lc.path.escape(o)}t.escapePath=s})(Wk||(Wk={}));function Jk(t,e,r){let i=[].concat(t),n=new qk.default(r),s=SW.generate(i,n),o=new e(n);return s.map(o.read,o)}function Ug(t){if(![].concat(t).every(i=>Lc.string.isString(i)&&!Lc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}vW.exports=Wk});var xW=w(Tc=>{"use strict";var{promisify:Bve}=require("util"),kW=require("fs");async function zk(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await Bve(kW[t])(r))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function _k(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return kW[t](r)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Tc.isFile=zk.bind(null,"stat","isFile");Tc.isDirectory=zk.bind(null,"stat","isDirectory");Tc.isSymlink=zk.bind(null,"lstat","isSymbolicLink");Tc.isFileSync=_k.bind(null,"statSync","isFile");Tc.isDirectorySync=_k.bind(null,"statSync","isDirectory");Tc.isSymlinkSync=_k.bind(null,"lstatSync","isSymbolicLink")});var NW=w((qit,Vk)=>{"use strict";var Oc=require("path"),PW=xW(),DW=t=>t.length>1?`{${t.join(",")}}`:t[0],RW=(t,e)=>{let r=t[0]==="!"?t.slice(1):t;return Oc.isAbsolute(r)?r:Oc.join(e,r)},bve=(t,e)=>Oc.extname(t)?`**/${t}`:`**/${t}.${DW(e)}`,FW=(t,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(r=>Oc.posix.join(t,bve(r,e.extensions))):e.files?e.files.map(r=>Oc.posix.join(t,`**/${r}`)):e.extensions?[Oc.posix.join(t,`**/*.${DW(e.extensions)}`)]:[Oc.posix.join(t,"**")]};Vk.exports=async(t,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=await Promise.all([].concat(t).map(async i=>await PW.isDirectory(RW(i,e.cwd))?FW(i,e):i));return[].concat.apply([],r)};Vk.exports.sync=(t,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=[].concat(t).map(i=>PW.isDirectorySync(RW(i,e.cwd))?FW(i,e):i);return[].concat.apply([],r)}});var YW=w((Jit,LW)=>{function TW(t){return Array.isArray(t)?t:[t]}var OW="",MW=" ",Xk="\\",Qve=/^\s+$/,vve=/^\\!/,Sve=/^\\#/,kve=/\r?\n/g,xve=/^\.*\/|^\.+$/,Zk="/",KW=typeof Symbol!="undefined"?Symbol.for("node-ignore"):"node-ignore",Pve=(t,e,r)=>Object.defineProperty(t,e,{value:r}),Dve=/([0-z])-([0-z])/g,Rve=t=>t.replace(Dve,(e,r,i)=>r.charCodeAt(0)<=i.charCodeAt(0)?e:OW),Fve=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Nve=[[/\\?\s+$/,t=>t.indexOf("\\")===0?MW:OW],[/\\\s/g,()=>MW],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>Xk],[/\\\\/g,()=>Xk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,r,i,n)=>e===Xk?`\\[${r}${Fve(i)}${n}`:n==="]"&&i.length%2==0?`[${Rve(r)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],UW=Object.create(null),Lve=(t,e)=>{let r=UW[t];return r||(r=Nve.reduce((i,n)=>i.replace(n[0],n[1].bind(t)),t),UW[t]=r),e?new RegExp(r,"i"):new RegExp(r)},$k=t=>typeof t=="string",Tve=t=>t&&$k(t)&&!Qve.test(t)&&t.indexOf("#")!==0,Ove=t=>t.split(kve),HW=class{constructor(e,r,i,n){this.origin=e,this.pattern=r,this.negative=i,this.regex=n}},Mve=(t,e)=>{let r=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vve,"!").replace(Sve,"#");let n=Lve(t,e);return new HW(r,t,i,n)},Kve=(t,e)=>{throw new e(t)},Va=(t,e,r)=>$k(t)?t?Va.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),GW=t=>xve.test(t);Va.isNotRelative=GW;Va.convert=t=>t;var jW=class{constructor({ignorecase:e=!0}={}){Pve(this,KW,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[KW]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Tve(e)){let r=Mve(e,this._ignorecase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,TW($k(e)?Ove(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!r)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,r,i,n){let s=e&&Va.convert(e);return Va(s,e,Kve),this._t(s,r,i,n)}_t(e,r,i,n){if(e in r)return r[e];if(n||(n=e.split(Zk)),n.pop(),!n.length)return r[e]=this._testOne(e,i);let s=this._t(n.join(Zk)+Zk,r,i,n);return r[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return TW(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},iw=t=>new jW(t),Uve=()=>!1,Hve=t=>Va(t&&Va.convert(t),t,Uve);iw.isPathValid=Hve;iw.default=iw;LW.exports=iw;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");Va.convert=t;let e=/^[a-z]:\//i;Va.isNotRelative=r=>e.test(r)||GW(r)}});var JW=w((Wit,qW)=>{"use strict";qW.exports=t=>{let e=/^\\\\\?\\/.test(t),r=/[^\u0000-\u0080]+/.test(t);return e||r?t:t.replace(/\\/g,"/")}});var $W=w((zit,ex)=>{"use strict";var{promisify:Gve}=require("util"),WW=require("fs"),Xa=require("path"),zW=rw(),jve=YW(),Ad=JW(),_W=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],Yve=Gve(WW.readFile),qve=t=>e=>e.startsWith("!")?"!"+Xa.posix.join(t,e.slice(1)):Xa.posix.join(t,e),Jve=(t,e)=>{let r=Ad(Xa.relative(e.cwd,Xa.dirname(e.fileName)));return t.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(qve(r))},VW=t=>{let e=jve();for(let r of t)e.add(Jve(r.content,{cwd:r.cwd,fileName:r.filePath}));return e},Wve=(t,e)=>{if(t=Ad(t),Xa.isAbsolute(e)){if(Ad(e).startsWith(t))return e;throw new Error(`Path ${e} is not in cwd ${t}`)}return Xa.join(t,e)},XW=(t,e)=>r=>t.ignores(Ad(Xa.relative(e,Wve(e,r.path||r)))),zve=async(t,e)=>{let r=Xa.join(e,t),i=await Yve(r,"utf8");return{cwd:e,filePath:r,content:i}},_ve=(t,e)=>{let r=Xa.join(e,t),i=WW.readFileSync(r,"utf8");return{cwd:e,filePath:r,content:i}},ZW=({ignore:t=[],cwd:e=Ad(process.cwd())}={})=>({ignore:t,cwd:e});ex.exports=async t=>{t=ZW(t);let e=await zW("**/.gitignore",{ignore:_W.concat(t.ignore),cwd:t.cwd}),r=await Promise.all(e.map(n=>zve(n,t.cwd))),i=VW(r);return XW(i,t.cwd)};ex.exports.sync=t=>{t=ZW(t);let r=zW.sync("**/.gitignore",{ignore:_W.concat(t.ignore),cwd:t.cwd}).map(n=>_ve(n,t.cwd)),i=VW(r);return XW(i,t.cwd)}});var i8=w((_it,e8)=>{"use strict";var{Transform:Vve}=require("stream"),tx=class extends Vve{constructor(){super({objectMode:!0})}},t8=class extends tx{constructor(e){super();this._filter=e}_transform(e,r,i){this._filter(e)&&this.push(e),i()}},r8=class extends tx{constructor(){super();this._pushed=new Set}_transform(e,r,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};e8.exports={FilterStream:t8,UniqueStream:r8}});var sx=w((Vit,Mc)=>{"use strict";var n8=require("fs"),nw=xJ(),Xve=ek(),sw=rw(),ow=NW(),rx=$W(),{FilterStream:Zve,UniqueStream:$ve}=i8(),s8=()=>!1,o8=t=>t[0]==="!",eSe=t=>{if(!t.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},tSe=(t={})=>{if(!t.cwd)return;let e;try{e=n8.statSync(t.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},rSe=t=>t.stats instanceof n8.Stats?t.path:t,aw=(t,e)=>{t=nw([].concat(t)),eSe(t),tSe(e);let r=[];e=N({ignore:[],expandDirectories:!0},e);for(let[i,n]of t.entries()){if(o8(n))continue;let s=t.slice(i).filter(a=>o8(a)).map(a=>a.slice(1)),o=ie(N({},e),{ignore:e.ignore.concat(s)});r.push({pattern:n,options:o})}return r},iSe=(t,e)=>{let r={};return t.options.cwd&&(r.cwd=t.options.cwd),Array.isArray(t.options.expandDirectories)?r=ie(N({},r),{files:t.options.expandDirectories}):typeof t.options.expandDirectories=="object"&&(r=N(N({},r),t.options.expandDirectories)),e(t.pattern,r)},ix=(t,e)=>t.options.expandDirectories?iSe(t,e):[t.pattern],a8=t=>t&&t.gitignore?rx.sync({cwd:t.cwd,ignore:t.ignore}):s8,nx=t=>e=>{let{options:r}=t;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=ow.sync(r.ignore)),{pattern:e,options:r}};Mc.exports=async(t,e)=>{let r=aw(t,e),i=async()=>e&&e.gitignore?rx({cwd:e.cwd,ignore:e.ignore}):s8,n=async()=>{let l=await Promise.all(r.map(async c=>{let u=await ix(c,ow);return Promise.all(u.map(nx(c)))}));return nw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>sw(l.pattern,l.options)));return nw(...a).filter(l=>!s(rSe(l)))};Mc.exports.sync=(t,e)=>{let r=aw(t,e),i=[];for(let o of r){let a=ix(o,ow.sync).map(nx(o));i.push(...a)}let n=a8(e),s=[];for(let o of i)s=nw(s,sw.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Mc.exports.stream=(t,e)=>{let r=aw(t,e),i=[];for(let a of r){let l=ix(a,ow.sync).map(nx(a));i.push(...l)}let n=a8(e),s=new Zve(a=>!n(a)),o=new $ve;return Xve(i.map(a=>sw.stream(a.pattern,a.options))).pipe(s).pipe(o)};Mc.exports.generateGlobTasks=aw;Mc.exports.hasMagic=(t,e)=>[].concat(t).some(r=>sw.isDynamicPattern(r,e));Mc.exports.gitignore=rx});var Rn=w((Bnt,w8)=>{function dSe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}w8.exports=dSe});var hx=w((bnt,B8)=>{var CSe=typeof global=="object"&&global&&global.Object===Object&&global;B8.exports=CSe});var Fs=w((Qnt,b8)=>{var mSe=hx(),ESe=typeof self=="object"&&self&&self.Object===Object&&self,ISe=mSe||ESe||Function("return this")();b8.exports=ISe});var v8=w((vnt,Q8)=>{var ySe=Fs(),wSe=function(){return ySe.Date.now()};Q8.exports=wSe});var k8=w((Snt,S8)=>{var BSe=/\s/;function bSe(t){for(var e=t.length;e--&&BSe.test(t.charAt(e)););return e}S8.exports=bSe});var P8=w((knt,x8)=>{var QSe=k8(),vSe=/^\s+/;function SSe(t){return t&&t.slice(0,QSe(t)+1).replace(vSe,"")}x8.exports=SSe});var Hc=w((xnt,D8)=>{var kSe=Fs(),xSe=kSe.Symbol;D8.exports=xSe});var L8=w((Pnt,R8)=>{var F8=Hc(),N8=Object.prototype,PSe=N8.hasOwnProperty,DSe=N8.toString,Id=F8?F8.toStringTag:void 0;function RSe(t){var e=PSe.call(t,Id),r=t[Id];try{t[Id]=void 0;var i=!0}catch(s){}var n=DSe.call(t);return i&&(e?t[Id]=r:delete t[Id]),n}R8.exports=RSe});var O8=w((Dnt,T8)=>{var FSe=Object.prototype,NSe=FSe.toString;function LSe(t){return NSe.call(t)}T8.exports=LSe});var Gc=w((Rnt,M8)=>{var K8=Hc(),TSe=L8(),OSe=O8(),MSe="[object Null]",KSe="[object Undefined]",U8=K8?K8.toStringTag:void 0;function USe(t){return t==null?t===void 0?KSe:MSe:U8&&U8 in Object(t)?TSe(t):OSe(t)}M8.exports=USe});var Zo=w((Fnt,H8)=>{function HSe(t){return t!=null&&typeof t=="object"}H8.exports=HSe});var yd=w((Nnt,G8)=>{var GSe=Gc(),jSe=Zo(),YSe="[object Symbol]";function qSe(t){return typeof t=="symbol"||jSe(t)&&GSe(t)==YSe}G8.exports=qSe});var J8=w((Lnt,j8)=>{var JSe=P8(),Y8=Rn(),WSe=yd(),q8=0/0,zSe=/^[-+]0x[0-9a-f]+$/i,_Se=/^0b[01]+$/i,VSe=/^0o[0-7]+$/i,XSe=parseInt;function ZSe(t){if(typeof t=="number")return t;if(WSe(t))return q8;if(Y8(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Y8(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=JSe(t);var r=_Se.test(t);return r||VSe.test(t)?XSe(t.slice(2),r?2:8):zSe.test(t)?q8:+t}j8.exports=ZSe});var _8=w((Tnt,W8)=>{var $Se=Rn(),px=v8(),z8=J8(),eke="Expected a function",tke=Math.max,rke=Math.min;function ike(t,e,r){var i,n,s,o,a,l,c=0,u=!1,g=!1,f=!0;if(typeof t!="function")throw new TypeError(eke);e=z8(e)||0,$Se(r)&&(u=!!r.leading,g="maxWait"in r,s=g?tke(z8(r.maxWait)||0,e):s,f="trailing"in r?!!r.trailing:f);function h(j){var Z=i,J=n;return i=n=void 0,c=j,o=t.apply(J,Z),o}function p(j){return c=j,a=setTimeout(b,e),u?h(j):o}function m(j){var Z=j-l,J=j-c,re=e-Z;return g?rke(re,s-J):re}function y(j){var Z=j-l,J=j-c;return l===void 0||Z>=e||Z<0||g&&J>=s}function b(){var j=px();if(y(j))return S(j);a=setTimeout(b,m(j))}function S(j){return a=void 0,f&&i?h(j):(i=n=void 0,o)}function k(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function T(){return a===void 0?o:S(px())}function Y(){var j=px(),Z=y(j);if(i=arguments,n=this,l=j,Z){if(a===void 0)return p(l);if(g)return clearTimeout(a),a=setTimeout(b,e),h(l)}return a===void 0&&(a=setTimeout(b,e)),o}return Y.cancel=k,Y.flush=T,Y}W8.exports=ike});var X8=w((Ont,V8)=>{var nke=_8(),ske=Rn(),oke="Expected a function";function ake(t,e,r){var i=!0,n=!0;if(typeof t!="function")throw new TypeError(oke);return ske(r)&&(i="leading"in r?!!r.leading:i,n="trailing"in r?!!r.trailing:n),nke(t,e,{leading:i,maxWait:e,trailing:n})}V8.exports=ake});var eA=w(($a,Sw)=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});var s4=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Ike(t){return s4.includes(t)}var yke=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...s4];function wke(t){return yke.includes(t)}var Bke=["null","undefined","string","number","bigint","boolean","symbol"];function bke(t){return Bke.includes(t)}function zg(t){return e=>typeof e===t}var{toString:o4}=Object.prototype,kd=t=>{let e=o4.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&z.domElement(t))return"HTMLElement";if(wke(e))return e},hr=t=>e=>kd(e)===t;function z(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(z.observable(t))return"Observable";if(z.array(t))return"Array";if(z.buffer(t))return"Buffer";let e=kd(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}z.undefined=zg("undefined");z.string=zg("string");var Qke=zg("number");z.number=t=>Qke(t)&&!z.nan(t);z.bigint=zg("bigint");z.function_=zg("function");z.null_=t=>t===null;z.class_=t=>z.function_(t)&&t.toString().startsWith("class ");z.boolean=t=>t===!0||t===!1;z.symbol=zg("symbol");z.numericString=t=>z.string(t)&&!z.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));z.array=(t,e)=>Array.isArray(t)?z.function_(e)?t.every(e):!0:!1;z.buffer=t=>{var e,r,i,n;return(n=(i=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||i===void 0?void 0:i.call(r,t))!==null&&n!==void 0?n:!1};z.nullOrUndefined=t=>z.null_(t)||z.undefined(t);z.object=t=>!z.null_(t)&&(typeof t=="object"||z.function_(t));z.iterable=t=>{var e;return z.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};z.asyncIterable=t=>{var e;return z.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};z.generator=t=>z.iterable(t)&&z.function_(t.next)&&z.function_(t.throw);z.asyncGenerator=t=>z.asyncIterable(t)&&z.function_(t.next)&&z.function_(t.throw);z.nativePromise=t=>hr("Promise")(t);var vke=t=>{var e,r;return z.function_((e=t)===null||e===void 0?void 0:e.then)&&z.function_((r=t)===null||r===void 0?void 0:r.catch)};z.promise=t=>z.nativePromise(t)||vke(t);z.generatorFunction=hr("GeneratorFunction");z.asyncGeneratorFunction=t=>kd(t)==="AsyncGeneratorFunction";z.asyncFunction=t=>kd(t)==="AsyncFunction";z.boundFunction=t=>z.function_(t)&&!t.hasOwnProperty("prototype");z.regExp=hr("RegExp");z.date=hr("Date");z.error=hr("Error");z.map=t=>hr("Map")(t);z.set=t=>hr("Set")(t);z.weakMap=t=>hr("WeakMap")(t);z.weakSet=t=>hr("WeakSet")(t);z.int8Array=hr("Int8Array");z.uint8Array=hr("Uint8Array");z.uint8ClampedArray=hr("Uint8ClampedArray");z.int16Array=hr("Int16Array");z.uint16Array=hr("Uint16Array");z.int32Array=hr("Int32Array");z.uint32Array=hr("Uint32Array");z.float32Array=hr("Float32Array");z.float64Array=hr("Float64Array");z.bigInt64Array=hr("BigInt64Array");z.bigUint64Array=hr("BigUint64Array");z.arrayBuffer=hr("ArrayBuffer");z.sharedArrayBuffer=hr("SharedArrayBuffer");z.dataView=hr("DataView");z.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;z.urlInstance=t=>hr("URL")(t);z.urlString=t=>{if(!z.string(t))return!1;try{return new URL(t),!0}catch(e){return!1}};z.truthy=t=>Boolean(t);z.falsy=t=>!t;z.nan=t=>Number.isNaN(t);z.primitive=t=>z.null_(t)||bke(typeof t);z.integer=t=>Number.isInteger(t);z.safeInteger=t=>Number.isSafeInteger(t);z.plainObject=t=>{if(o4.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};z.typedArray=t=>Ike(kd(t));var Ske=t=>z.safeInteger(t)&&t>=0;z.arrayLike=t=>!z.nullOrUndefined(t)&&!z.function_(t)&&Ske(t.length);z.inRange=(t,e)=>{if(z.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(z.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var kke=1,xke=["innerHTML","ownerDocument","style","attributes","nodeValue"];z.domElement=t=>z.object(t)&&t.nodeType===kke&&z.string(t.nodeName)&&!z.plainObject(t)&&xke.every(e=>e in t);z.observable=t=>{var e,r,i,n;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((n=(i=t)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};z.nodeStream=t=>z.object(t)&&z.function_(t.pipe)&&!z.observable(t);z.infinite=t=>t===Infinity||t===-Infinity;var a4=t=>e=>z.integer(e)&&Math.abs(e%2)===t;z.evenInteger=a4(0);z.oddInteger=a4(1);z.emptyArray=t=>z.array(t)&&t.length===0;z.nonEmptyArray=t=>z.array(t)&&t.length>0;z.emptyString=t=>z.string(t)&&t.length===0;z.nonEmptyString=t=>z.string(t)&&t.length>0;var Pke=t=>z.string(t)&&!/\S/.test(t);z.emptyStringOrWhitespace=t=>z.emptyString(t)||Pke(t);z.emptyObject=t=>z.object(t)&&!z.map(t)&&!z.set(t)&&Object.keys(t).length===0;z.nonEmptyObject=t=>z.object(t)&&!z.map(t)&&!z.set(t)&&Object.keys(t).length>0;z.emptySet=t=>z.set(t)&&t.size===0;z.nonEmptySet=t=>z.set(t)&&t.size>0;z.emptyMap=t=>z.map(t)&&t.size===0;z.nonEmptyMap=t=>z.map(t)&&t.size>0;z.propertyKey=t=>z.any([z.string,z.number,z.symbol],t);z.formData=t=>hr("FormData")(t);z.urlSearchParams=t=>hr("URLSearchParams")(t);var A4=(t,e,r)=>{if(!z.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};z.any=(t,...e)=>(z.array(t)?t:[t]).some(i=>A4(Array.prototype.some,i,e));z.all=(t,...e)=>A4(Array.prototype.every,t,e);var We=(t,e,r,i={})=>{if(!t){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(r.map(o=>`\`${z(o)}\``))].join(", ")}`:`received value of type \`${z(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};$a.assert={undefined:t=>We(z.undefined(t),"undefined",t),string:t=>We(z.string(t),"string",t),number:t=>We(z.number(t),"number",t),bigint:t=>We(z.bigint(t),"bigint",t),function_:t=>We(z.function_(t),"Function",t),null_:t=>We(z.null_(t),"null",t),class_:t=>We(z.class_(t),"Class",t),boolean:t=>We(z.boolean(t),"boolean",t),symbol:t=>We(z.symbol(t),"symbol",t),numericString:t=>We(z.numericString(t),"string with a number",t),array:(t,e)=>{We(z.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>We(z.buffer(t),"Buffer",t),nullOrUndefined:t=>We(z.nullOrUndefined(t),"null or undefined",t),object:t=>We(z.object(t),"Object",t),iterable:t=>We(z.iterable(t),"Iterable",t),asyncIterable:t=>We(z.asyncIterable(t),"AsyncIterable",t),generator:t=>We(z.generator(t),"Generator",t),asyncGenerator:t=>We(z.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>We(z.nativePromise(t),"native Promise",t),promise:t=>We(z.promise(t),"Promise",t),generatorFunction:t=>We(z.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>We(z.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>We(z.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>We(z.boundFunction(t),"Function",t),regExp:t=>We(z.regExp(t),"RegExp",t),date:t=>We(z.date(t),"Date",t),error:t=>We(z.error(t),"Error",t),map:t=>We(z.map(t),"Map",t),set:t=>We(z.set(t),"Set",t),weakMap:t=>We(z.weakMap(t),"WeakMap",t),weakSet:t=>We(z.weakSet(t),"WeakSet",t),int8Array:t=>We(z.int8Array(t),"Int8Array",t),uint8Array:t=>We(z.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>We(z.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>We(z.int16Array(t),"Int16Array",t),uint16Array:t=>We(z.uint16Array(t),"Uint16Array",t),int32Array:t=>We(z.int32Array(t),"Int32Array",t),uint32Array:t=>We(z.uint32Array(t),"Uint32Array",t),float32Array:t=>We(z.float32Array(t),"Float32Array",t),float64Array:t=>We(z.float64Array(t),"Float64Array",t),bigInt64Array:t=>We(z.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>We(z.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>We(z.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>We(z.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>We(z.dataView(t),"DataView",t),urlInstance:t=>We(z.urlInstance(t),"URL",t),urlString:t=>We(z.urlString(t),"string with a URL",t),truthy:t=>We(z.truthy(t),"truthy",t),falsy:t=>We(z.falsy(t),"falsy",t),nan:t=>We(z.nan(t),"NaN",t),primitive:t=>We(z.primitive(t),"primitive",t),integer:t=>We(z.integer(t),"integer",t),safeInteger:t=>We(z.safeInteger(t),"integer",t),plainObject:t=>We(z.plainObject(t),"plain object",t),typedArray:t=>We(z.typedArray(t),"TypedArray",t),arrayLike:t=>We(z.arrayLike(t),"array-like",t),domElement:t=>We(z.domElement(t),"HTMLElement",t),observable:t=>We(z.observable(t),"Observable",t),nodeStream:t=>We(z.nodeStream(t),"Node.js Stream",t),infinite:t=>We(z.infinite(t),"infinite number",t),emptyArray:t=>We(z.emptyArray(t),"empty array",t),nonEmptyArray:t=>We(z.nonEmptyArray(t),"non-empty array",t),emptyString:t=>We(z.emptyString(t),"empty string",t),nonEmptyString:t=>We(z.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>We(z.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>We(z.emptyObject(t),"empty object",t),nonEmptyObject:t=>We(z.nonEmptyObject(t),"non-empty object",t),emptySet:t=>We(z.emptySet(t),"empty set",t),nonEmptySet:t=>We(z.nonEmptySet(t),"non-empty set",t),emptyMap:t=>We(z.emptyMap(t),"empty map",t),nonEmptyMap:t=>We(z.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>We(z.propertyKey(t),"PropertyKey",t),formData:t=>We(z.formData(t),"FormData",t),urlSearchParams:t=>We(z.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>We(z.evenInteger(t),"even integer",t),oddInteger:t=>We(z.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>We(z.directInstanceOf(t,e),"T",t),inRange:(t,e)=>We(z.inRange(t,e),"in range",t),any:(t,...e)=>We(z.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>We(z.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(z,{class:{value:z.class_},function:{value:z.function_},null:{value:z.null_}});Object.defineProperties($a.assert,{class:{value:$a.assert.class_},function:{value:$a.assert.function_},null:{value:$a.assert.null_}});$a.default=z;Sw.exports=z;Sw.exports.default=z;Sw.exports.assert=$a.assert});var l4=w((Gst,Lx)=>{"use strict";var Tx=class extends Error{constructor(e){super(e||"Promise was canceled");this.name="CancelError"}get isCanceled(){return!0}},xd=class{static fn(e){return(...r)=>new xd((i,n,s)=>{r.push(s),e(...r).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,i)=>{this._reject=i;let n=a=>{this._isPending=!1,r(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Tx(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(xd.prototype,Promise.prototype);Lx.exports=xd;Lx.exports.CancelError=Tx});var c4=w((Ox,Mx)=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var Dke=require("tls"),Kx=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let i=typeof r.connect=="function",n=typeof r.secureConnect=="function",s=typeof r.close=="function",o=()=>{i&&r.connect(),t instanceof Dke.TLSSocket&&n&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),s&&t.once("close",r.close)};t.writable&&!t.connecting?o():t.connecting?t.once("connect",o):t.destroyed&&s&&r.close(t._hadError)};Ox.default=Kx;Mx.exports=Kx;Mx.exports.default=Kx});var u4=w((Ux,Hx)=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var Rke=c4(),Fke=Number(process.versions.node.split(".")[0]),Gx=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Fke>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),Rke.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?i(t.socket):t.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?n():t.prependOnceListener("finish",n),t.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,r(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};Ux.default=Gx;Hx.exports=Gx;Hx.exports.default=Gx});var m4=w((jst,jx)=>{"use strict";var{V4MAPPED:Nke,ADDRCONFIG:Lke,ALL:g4,promises:{Resolver:f4},lookup:Tke}=require("dns"),{promisify:Yx}=require("util"),Oke=require("os"),_g=Symbol("cacheableLookupCreateConnection"),qx=Symbol("cacheableLookupInstance"),h4=Symbol("expires"),Mke=typeof g4=="number",p4=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Kke=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},d4=()=>{let t=!1,e=!1;for(let r of Object.values(Oke.networkInterfaces()))for(let i of r)if(!i.internal&&(i.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Uke=t=>Symbol.iterator in t,C4={ttl:!0},Hke={all:!0},Jx=class{constructor({cache:e=new Map,maxTtl:r=Infinity,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new f4,lookup:o=Tke}={}){if(this.maxTtl=r,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Yx(o),this._resolver instanceof f4?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Yx(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Yx(this._resolver.resolve6.bind(this._resolver))),this._iface=d4(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,i){if(typeof r=="function"?(i=r,r={}):typeof r=="number"&&(r={family:r}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(n=>{r.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let i=await this.query(e);if(r.family===6){let n=i.filter(s=>s.family===6);r.hints&Nke&&(Mke&&r.hints&g4||n.length===0)?Kke(i):i=n}else r.family===4&&(i=i.filter(n=>n.family===4));if(r.hints&Lke){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return r.all?i:i[0]}async query(e){let r=await this._cache.get(e);if(!r){let i=this._pending[e];if(i)r=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,r=await n}}return r=r.map(i=>N({},i)),r}async _resolve(e){let r=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,C4),this._resolve6(e,C4)].map(c=>r(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch(r){return{entries:[],cacheTtl:0}}}async _set(e,r,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,r[h4]=Date.now()+i;try{await this._cache.set(e,r,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}Uke(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Hke);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let i=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,i),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let i=Infinity,n=Date.now();for(let[s,o]of this._cache){let a=o[h4];n>=a?this._cache.delete(s):a("lookup"in r||(r.lookup=this.lookup),e[_g](r,i))}uninstall(e){if(p4(e),e[_g]){if(e[qx]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[_g],delete e[_g],delete e[qx]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=d4(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};jx.exports=Jx;jx.exports.default=Jx});var y4=w((Yst,Wx)=>{"use strict";var Gke=typeof URL=="undefined"?require("url").URL:URL,jke="text/plain",Yke="us-ascii",E4=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),qke=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let i=r[1].split(";"),n=r[2],s=e?"":r[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===Yke)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==jke)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},I4=(t,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return qke(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Gke(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];E4(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])E4(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),t=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};Wx.exports=I4;Wx.exports.default=I4});var b4=w((qst,w4)=>{w4.exports=B4;function B4(t,e){if(t&&e)return B4(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(i){r[i]=t[i]}),r;function r(){for(var i=new Array(arguments.length),n=0;n{var Q4=b4();zx.exports=Q4(kw);zx.exports.strict=Q4(v4);kw.proto=kw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return kw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return v4(this)},configurable:!0})});function kw(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function v4(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var Vx=w((Wst,S4)=>{var Jke=_x(),Wke=function(){},zke=function(t){return t.setHeader&&typeof t.abort=="function"},_ke=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},k4=function(t,e,r){if(typeof e=="function")return k4(t,null,e);e||(e={}),r=Jke(r||Wke);var i=t._writableState,n=t._readableState,s=e.readable||e.readable!==!1&&t.readable,o=e.writable||e.writable!==!1&&t.writable,a=function(){t.writable||l()},l=function(){o=!1,s||r.call(t)},c=function(){s=!1,o||r.call(t)},u=function(p){r.call(t,p?new Error("exited with error code: "+p):null)},g=function(p){r.call(t,p)},f=function(){if(s&&!(n&&n.ended))return r.call(t,new Error("premature close"));if(o&&!(i&&i.ended))return r.call(t,new Error("premature close"))},h=function(){t.req.on("finish",l)};return zke(t)?(t.on("complete",l),t.on("abort",f),t.req?h():t.on("request",h)):o&&!i&&(t.on("end",a),t.on("close",a)),_ke(t)&&t.on("exit",u),t.on("end",c),t.on("finish",l),e.error!==!1&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",h),t.req&&t.req.removeListener("finish",l),t.removeListener("end",a),t.removeListener("close",a),t.removeListener("finish",l),t.removeListener("exit",u),t.removeListener("end",c),t.removeListener("error",g),t.removeListener("close",f)}};S4.exports=k4});var D4=w((zst,x4)=>{var Vke=_x(),Xke=Vx(),Xx=require("fs"),Pd=function(){},Zke=/^v?\.0/.test(process.version),xw=function(t){return typeof t=="function"},$ke=function(t){return!Zke||!Xx?!1:(t instanceof(Xx.ReadStream||Pd)||t instanceof(Xx.WriteStream||Pd))&&xw(t.close)},exe=function(t){return t.setHeader&&xw(t.abort)},txe=function(t,e,r,i){i=Vke(i);var n=!1;t.on("close",function(){n=!0}),Xke(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,$ke(t))return t.close(Pd);if(exe(t))return t.abort();if(xw(t.destroy))return t.destroy();i(o||new Error("stream was destroyed"))}}},P4=function(t){t()},rxe=function(t,e){return t.pipe(e)},ixe=function(){var t=Array.prototype.slice.call(arguments),e=xw(t[t.length-1]||Pd)&&t.pop()||Pd;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,i=t.map(function(n,s){var o=s0;return txe(n,o,a,function(l){r||(r=l),l&&i.forEach(P4),!o&&(i.forEach(P4),e(r))})});return t.reduce(rxe)};x4.exports=ixe});var F4=w((_st,R4)=>{"use strict";var{PassThrough:nxe}=require("stream");R4.exports=t=>{t=N({},t);let{array:e}=t,{encoding:r}=t,i=r==="buffer",n=!1;e?n=!(r||i):r=r||"utf8",i&&(r=null);let s=new nxe({objectMode:n});r&&s.setEncoding(r);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var N4=w((Vst,Vg)=>{"use strict";var sxe=D4(),oxe=F4(),Zx=class extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}};async function Pw(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e=N({maxBuffer:Infinity},e);let{maxBuffer:r}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=sxe(t,oxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>r&&o(new Zx)})}),i.getBufferedValue()}Vg.exports=Pw;Vg.exports.default=Pw;Vg.exports.buffer=(t,e)=>Pw(t,ie(N({},e),{encoding:"buffer"}));Vg.exports.array=(t,e)=>Pw(t,ie(N({},e),{array:!0}));Vg.exports.MaxBufferError=Zx});var T4=w((Zst,L4)=>{"use strict";var axe=[200,203,204,206,300,301,404,405,410,414,501],Axe=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],lxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},cxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function $x(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let i of r){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function uxe(t){let e=[];for(let r in t){let i=t[r];e.push(i===!0?r:r+"="+i)}if(!!e.length)return e.join(", ")}L4.exports=class{constructor(e,r,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,trustServerDate:a,_fromObject:l}={}){if(l){this._fromObject(l);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._trustServerDate=a!==void 0?a:!0,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=$x(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=$x(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":uxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!r.headers["cache-control"]&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Axe.indexOf(this._status)!==-1&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||axe.indexOf(this._status)!==-1))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=$x(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of r)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let i in e)lxe[i]||(r[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete r[n]}if(r.warning){let i=r.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?r.warning=i.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){let e=Date.parse(this._resHeaders.date);if(isFinite(e)){let r=8*3600*1e3;if(Math.abs(this._responseTime-e)e&&(e=i)}let r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){let e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this._serverDate();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(r-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){return Math.max(0,this.maxAge()-this.age())*1e3}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let n=r["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?r["if-none-match"]=n.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),!r||!r.headers)throw Error("Response headers missing");let i=!1;if(r.status!==void 0&&r.status!=304?i=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in r.headers&&!cxe[o]?r.headers[o]:this._resHeaders[o];let s=Object.assign({},r,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}});var Dw=w(($st,O4)=>{"use strict";O4.exports=t=>{let e={};for(let[r,i]of Object.entries(t))e[r.toLowerCase()]=i;return e}});var U4=w((eot,M4)=>{"use strict";var gxe=require("stream").Readable,fxe=Dw(),K4=class extends gxe{constructor(e,r,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super();this.statusCode=e,this.headers=fxe(r),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};M4.exports=K4});var G4=w((tot,H4)=>{"use strict";var hxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];H4.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(hxe));for(let i of r)i in e||(e[i]=typeof t[i]=="function"?t[i].bind(t):t[i])}});var Y4=w((rot,j4)=>{"use strict";var pxe=require("stream").PassThrough,dxe=G4(),Cxe=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new pxe;return dxe(t,e),t.pipe(e)};j4.exports=Cxe});var q4=w(eP=>{eP.stringify=function t(e){if(typeof e=="undefined")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",i=Array.isArray(e);r=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]=="undefined";Object.hasOwnProperty.call(e,s)&&!o&&(n||(r+=","),n=!1,i?e[s]==null?r+="null":r+=t(e[s]):e[s]!==void 0&&(r+=t(s)+":"+t(e[s])))}return r+=i?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e=="undefined"?"null":JSON.stringify(e)};eP.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var _4=w((not,J4)=>{"use strict";var mxe=require("events"),W4=q4(),Exe=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(require(e[r]))(t)}return new Map},z4=class extends mxe{constructor(e,r){super();if(this.opts=Object.assign({namespace:"keyv",serialize:W4.stringify,deserialize:W4.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=Exe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return r&&r.raw?n:n.value}})}set(e,r,i){e=this._getKeyPrefix(e),typeof i=="undefined"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return r={value:r,expires:s},this.opts.serialize(r)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};J4.exports=z4});var Z4=w((sot,V4)=>{"use strict";var Ixe=require("events"),Rw=require("url"),yxe=y4(),wxe=N4(),tP=T4(),X4=U4(),Bxe=Dw(),bxe=Y4(),Qxe=_4(),ea=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Qxe({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,i)=>{let n;if(typeof r=="string")n=rP(Rw.parse(r)),r={};else if(r instanceof Rw.URL)n=rP(Rw.parse(r.toString())),r={};else{let[g,...f]=(r.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=rP(ie(N({},r),{pathname:g,search:h}))}r=N(N({headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1},r),vxe(n)),r.headers=Bxe(r.headers);let s=new Ixe,o=yxe(Rw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${r.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(y=>{h=()=>{f||(f=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=tP.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let k=S.policy.responseHeaders();y=new X4(l.statusCode,k,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new tP(g,y,g),y.fromCache=!1);let b;g.cache&&y.cachePolicy.storable()?(b=bxe(y),(async()=>{try{let S=wxe.buffer(y);if(await Promise.race([p,new Promise(j=>y.once("end",j))]),f)return;let k=await S,T={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:k},Y=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(Y=Y?Math.min(Y,g.maxTtl):g.maxTtl),await this.cache.set(a,T,Y)}catch(S){s.emit("error",new ea.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new ea.CacheError(S))}})(),s.emit("response",b||y),typeof i=="function"&&i(b||y)};try{let y=e(g,m);y.once("error",h),y.once("abort",h),s.emit("request",y)}catch(y){s.emit("error",new ea.RequestError(y))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p=="undefined")return u(h);let m=tP.fromObject(p.cachePolicy);if(m.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let y=m.responseHeaders(),b=new X4(p.statusCode,y,p.body,p.url);b.cachePolicy=m,b.fromCache=!0,s.emit("response",b),typeof i=="function"&&i(b)}else l=p,h.headers=m.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new ea.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(r)}catch(h){r.automaticFailover&&!c&&u(r),s.emit("error",new ea.CacheError(h))}})(),s}}};function vxe(t){let e=N({},t);return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function rP(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}ea.RequestError=class extends Error{constructor(t){super(t.message);this.name="RequestError",Object.assign(this,t)}};ea.CacheError=class extends Error{constructor(t){super(t.message);this.name="CacheError",Object.assign(this,t)}};V4.exports=ea});var ez=w((oot,$4)=>{"use strict";var Sxe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];$4.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(Sxe)),i={};for(let n of r)n in e||(i[n]={get(){let s=t[n];return typeof s=="function"?s.bind(t):s},set(s){t[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var rz=w((aot,tz)=>{"use strict";var{Transform:kxe,PassThrough:xxe}=require("stream"),iP=require("zlib"),Pxe=ez();tz.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof iP.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let i=!0,n=new kxe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new xxe({autoDestroy:!1,destroy(a,l){t.destroy(),l(a)}}),o=r?iP.createBrotliDecompress():iP.createUnzip();return o.once("error",a=>{if(i&&!t.readable){s.end();return}s.destroy(a)}),Pxe(t,s),t.pipe(n).pipe(o).pipe(s),s}});var nP=w((Aot,iz)=>{"use strict";var nz=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};iz.exports=nz});var oP=w((lot,sz)=>{"use strict";var Dxe=require("events"),Rxe=require("tls"),Fxe=require("http2"),Nxe=nP(),gn=Symbol("currentStreamsCount"),oz=Symbol("request"),Ns=Symbol("cachedOriginSet"),Xg=Symbol("gracefullyClosing"),Lxe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Txe=(t,e,r)=>{let i=0,n=t.length;for(;i>>1;r(t[s],e)?i=s+1:n=s}return i},Oxe=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,sP=(t,e)=>{for(let r of t)r[Ns].lengthe[Ns].includes(i))&&r[gn]+e[gn]<=e.remoteSettings.maxConcurrentStreams&&az(r)},Mxe=(t,e)=>{for(let r of t)e[Ns].lengthr[Ns].includes(i))&&e[gn]+r[gn]<=r.remoteSettings.maxConcurrentStreams&&az(e)},Az=({agent:t,isFree:e})=>{let r={};for(let i in t.sessions){let s=t.sessions[i].filter(o=>{let a=o[tA.kCurrentStreamsCount]{t[Xg]=!0,t[gn]===0&&t.close()},tA=class extends Dxe{constructor({timeout:e=6e4,maxSessions:r=Infinity,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super();this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Nxe({maxSize:n})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let i of Lxe)e[i]&&(r+=`:${e[i]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let i=this.queue[e][r];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(r),a=tA.normalizeOrigin(e,r&&r.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let m=p.remoteSettings.maxConcurrentStreams;if(m=m||p[Xg]||p.destroyed)continue;h||(g=m),y>f&&(h=p,f=y)}}if(h){if(i.length!==1){for(let{reject:p}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);p(m)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=Fxe.connect(e,N({createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u)},r));f[gn]=0,f[Xg]=!1;let h=()=>f[gn]{this.tlsSessionCache.set(u,y)}),f.once("error",y=>{for(let{reject:b}of i)b(y);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(f),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:b}of i)b(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!h())){for(let y of f[Ns])if(y in this.queue[o]){let{listeners:b}=this.queue[o][y];for(;b.length!==0&&h();)b.shift().resolve(f);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[Ns]=f.originSet,!!h()&&(m(),sP(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let b of i)b.reject(y);f.destroy();return}f[Ns]=f.originSet;{let y=this.sessions;if(o in y){let b=y[o];b.splice(Txe(b,f,Oxe),0,f)}else y[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),m(),l(),f[gn]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,r,i),i.length=0),f.on("remoteSettings",()=>{m(),sP(this.sessions[o],f)})}),f[oz]=f.request,f.request=(y,b)=>{if(f[Xg])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=f[oz](y,b);return f.ref(),++f[gn],f[gn]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(p=h(),--f[gn],!f.destroyed&&!f.closed&&(Mxe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let k=f[gn]===0;k&&f.unref(),k&&(this._freeSessionsCount>this.maxFreeSessions||f[Xg])?f.close():(sP(this.sessions[o],f),m())}}),S}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,r,i,n){return new Promise((s,o)=>{this.getSession(e,r,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,r){return tA.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof r.servername=="undefined"&&(r.servername=n),Rxe.connect(i,n,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[gn]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let i of r)i.destroy(e);for(let r of Object.values(this.queue))for(let i of Object.values(r))i.destroyed=!0;this.queue={}}get freeSessions(){return Az({agent:this,isFree:!0})}get busySessions(){return Az({agent:this,isFree:!1})}};tA.kCurrentStreamsCount=gn;tA.kGracefullyClosing=Xg;sz.exports={Agent:tA,globalAgent:new tA}});var aP=w((cot,lz)=>{"use strict";var{Readable:Kxe}=require("stream"),cz=class extends Kxe{constructor(e,r){super({highWaterMark:r,autoDestroy:!1});this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};lz.exports=cz});var AP=w((uot,uz)=>{"use strict";uz.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var fz=w((got,gz)=>{"use strict";gz.exports=(t,e,r)=>{for(let i of r)t.on(i,(...n)=>e.emit(i,...n))}});var pz=w((fot,hz)=>{"use strict";hz.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var Cz=w((pot,dz)=>{"use strict";var Zg=(t,e,r)=>{dz.exports[e]=class extends t{constructor(...n){super(typeof r=="string"?r:r(n));this.name=`${super.name} [${e}]`,this.code=e}}};Zg(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],i=Array.isArray(r);return i&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${i?"one of":"of"} type ${r}. Received ${typeof t[2]}`});Zg(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);Zg(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);Zg(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);Zg(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);Zg(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var gP=w((dot,mz)=>{"use strict";var Uxe=require("http2"),{Writable:Hxe}=require("stream"),{Agent:Ez,globalAgent:Gxe}=oP(),jxe=aP(),Yxe=AP(),qxe=fz(),Jxe=pz(),{ERR_INVALID_ARG_TYPE:lP,ERR_INVALID_PROTOCOL:Wxe,ERR_HTTP_HEADERS_SENT:Iz,ERR_INVALID_HTTP_TOKEN:zxe,ERR_HTTP_INVALID_HEADER_VALUE:_xe,ERR_INVALID_CHAR:Vxe}=Cz(),{HTTP2_HEADER_STATUS:yz,HTTP2_HEADER_METHOD:wz,HTTP2_HEADER_PATH:Bz,HTTP2_METHOD_CONNECT:Xxe}=Uxe.constants,Wi=Symbol("headers"),cP=Symbol("origin"),uP=Symbol("session"),bz=Symbol("options"),Fw=Symbol("flushedHeaders"),Dd=Symbol("jobs"),Zxe=/^[\^`\-\w!#$%&*+.|~]+$/,$xe=/[^\t\u0020-\u007E\u0080-\u00FF]/,Qz=class extends Hxe{constructor(e,r,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=Yxe(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(i=r,r=n?e:N({},e)):r=N(N({},e),r),r.h2session)this[uP]=r.h2session;else if(r.agent===!1)this.agent=new Ez({maxFreeSessions:0});else if(typeof r.agent=="undefined"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new Ez({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Gxe;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new lP("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Wxe(r.protocol,"https:");let s=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,o=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:a}=r;if(r.timeout=void 0,this[Wi]=Object.create(null),this[Dd]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[l,c]of Object.entries(r.headers))this.setHeader(l,c);r.auth&&!("authorization"in this[Wi])&&(this[Wi].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[bz]=r,s===443?(this[cP]=`https://${o}`,":authority"in this[Wi]||(this[Wi][":authority"]=o)):(this[cP]=`https://${o}:${s}`,":authority"in this[Wi]||(this[Wi][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[Fw]=!1}get method(){return this[Wi][wz]}set method(e){e&&(this[Wi][wz]=e.toUpperCase())}get path(){return this[Wi][Bz]}set path(e){e&&(this[Wi][Bz]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,r,i);this._request?n():this[Dd].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[Dd].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[Fw]||this.destroyed)return;this[Fw]=!0;let e=this.method===Xxe,r=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||qxe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new jxe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[yz],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[yz]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[Dd])o();this.emit("socket",this.socket)};if(this[uP])try{r(this[uP].request(this[Wi]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[cP],this[bz],this[Wi]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new lP("name","string",e);return this[Wi][e.toLowerCase()]}get headersSent(){return this[Fw]}removeHeader(e){if(typeof e!="string")throw new lP("name","string",e);if(this.headersSent)throw new Iz("remove");delete this[Wi][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Iz("set");if(typeof e!="string"||!Zxe.test(e)&&!Jxe(e))throw new zxe("Header name",e);if(typeof r=="undefined")throw new _xe(r,e);if($xe.test(r))throw new Vxe("header content",e);this[Wi][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let i=()=>this._request.setTimeout(e,r);return this._request?i():this[Dd].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};mz.exports=Qz});var Sz=w((Cot,vz)=>{"use strict";var ePe=require("tls");vz.exports=(t={})=>new Promise((e,r)=>{let i=ePe.connect(t,()=>{t.resolveSocket?(i.off("error",r),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})});var xz=w((mot,kz)=>{"use strict";var tPe=require("net");kz.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),tPe.isIP(e)?"":e}});var Rz=w((Eot,fP)=>{"use strict";var Pz=require("http"),hP=require("https"),rPe=Sz(),iPe=nP(),nPe=gP(),sPe=xz(),oPe=AP(),Nw=new iPe({maxSize:100}),Rd=new Map,Dz=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{t.emit("free",e,r)};e.on("free",i);let n=()=>{t.removeSocket(e,r)};e.on("close",n);let s=()=>{t.removeSocket(e,r),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),t.emit("free",e,r)},aPe=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!Nw.has(e)){if(Rd.has(e))return(await Rd.get(e)).alpnProtocol;let{path:r,agent:i}=t;t.path=t.socketPath;let n=rPe(t);Rd.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(Nw.set(e,o),t.path=r,o==="h2")s.destroy();else{let{globalAgent:a}=hP,l=hP.Agent.prototype.createConnection;i?i.createConnection===l?Dz(i,s,t):s.destroy():a.createConnection===l?Dz(a,s,t):s.destroy()}return Rd.delete(e),o}catch(s){throw Rd.delete(e),s}}return Nw.get(e)};fP.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=oPe(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e=ie(N(N({ALPNProtocols:["h2","http/1.1"]},t),e),{resolveSocket:!0}),!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||sPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?hP.globalAgent:Pz.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await aPe(e)==="h2"?(n&&(e.agent=n.http2),new nPe(e,r)):Pz.request(e,r)};fP.exports.protocolCache=Nw});var Nz=w((Iot,Fz)=>{"use strict";var APe=require("http2"),lPe=oP(),pP=gP(),cPe=aP(),uPe=Rz(),gPe=(t,e,r)=>new pP(t,e,r),fPe=(t,e,r)=>{let i=new pP(t,e,r);return i.end(),i};Fz.exports=ie(N(ie(N({},APe),{ClientRequest:pP,IncomingMessage:cPe}),lPe),{request:gPe,get:fPe,auto:uPe})});var CP=w(dP=>{"use strict";Object.defineProperty(dP,"__esModule",{value:!0});var Lz=eA();dP.default=t=>Lz.default.nodeStream(t)&&Lz.default.function_(t.getBoundary)});var Kz=w(mP=>{"use strict";Object.defineProperty(mP,"__esModule",{value:!0});var Tz=require("fs"),Oz=require("util"),Mz=eA(),hPe=CP(),pPe=Oz.promisify(Tz.stat);mP.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(Mz.default.string(t))return Buffer.byteLength(t);if(Mz.default.buffer(t))return t.length;if(hPe.default(t))return Oz.promisify(t.getLength.bind(t))();if(t instanceof Tz.ReadStream){let{size:r}=await pPe(t.path);return r===0?void 0:r}}});var IP=w(EP=>{"use strict";Object.defineProperty(EP,"__esModule",{value:!0});function dPe(t,e,r){let i={};for(let n of r)i[n]=(...s)=>{e.emit(n,...s)},t.on(n,i[n]);return()=>{for(let n of r)t.off(n,i[n])}}EP.default=dPe});var Uz=w(yP=>{"use strict";Object.defineProperty(yP,"__esModule",{value:!0});yP.default=()=>{let t=[];return{once(e,r,i){e.once(r,i),t.push({origin:e,event:r,fn:i})},unhandleAll(){for(let e of t){let{origin:r,event:i,fn:n}=e;r.removeListener(i,n)}t.length=0}}}});var Gz=w(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});Fd.TimeoutError=void 0;var CPe=require("net"),mPe=Uz(),Hz=Symbol("reentry"),EPe=()=>{},wP=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`);this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};Fd.TimeoutError=wP;Fd.default=(t,e,r)=>{if(Hz in t)return EPe;t[Hz]=!0;let i=[],{once:n,unhandleAll:s}=mPe.default(),o=(g,f,h)=>{var p;let m=setTimeout(f,g,g,h);(p=m.unref)===null||p===void 0||p.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=r,c=(g,f)=>{t.destroy(new wP(g,f))},u=()=>{for(let g of i)g();s()};if(t.once("error",g=>{if(u(),t.listenerCount("error")===0)throw g}),t.once("close",u),n(t,"response",g=>{n(g,"end",u)}),typeof e.request!="undefined"&&o(e.request,c,"request"),typeof e.socket!="undefined"){let g=()=>{c(e.socket,"socket")};t.setTimeout(e.socket,g),i.push(()=>{t.removeListener("timeout",g)})}return n(t,"socket",g=>{var f;let{socketPath:h}=t;if(g.connecting){let p=Boolean(h!=null?h:CPe.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup!="undefined"&&!p&&typeof g.address().address=="undefined"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect!="undefined"){let m=()=>o(e.connect,c,"connect");p?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect!="undefined"&&r.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send!="undefined"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(t,"upload-complete",p())}):n(t,"upload-complete",p())}}),typeof e.response!="undefined"&&n(t,"upload-complete",()=>{let g=o(e.response,c,"response");n(t,"response",g)}),u}});var Yz=w(BP=>{"use strict";Object.defineProperty(BP,"__esModule",{value:!0});var jz=eA();BP.default=t=>{t=t;let e={protocol:t.protocol,hostname:jz.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return jz.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var qz=w(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});var IPe=require("url"),yPe=["protocol","host","hostname","port","pathname","search"];bP.default=(t,e)=>{var r,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(i=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&i!==void 0?i:""}`}let n=new IPe.URL(t);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of yPe)e[s]&&(n[s]=e[s].toString());return n}});var Wz=w(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var Jz=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};QP.default=Jz});var SP=w(vP=>{"use strict";Object.defineProperty(vP,"__esModule",{value:!0});var wPe=async t=>{let e=[],r=0;for await(let i of t)e.push(i),r+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};vP.default=wPe});var _z=w(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});qc.dnsLookupIpVersionToFamily=qc.isDnsLookupIpVersion=void 0;var zz={auto:0,ipv4:4,ipv6:6};qc.isDnsLookupIpVersion=t=>t in zz;qc.dnsLookupIpVersionToFamily=t=>{if(qc.isDnsLookupIpVersion(t))return zz[t];throw new Error("Invalid DNS lookup IP version")}});var kP=w(Lw=>{"use strict";Object.defineProperty(Lw,"__esModule",{value:!0});Lw.isResponseOk=void 0;Lw.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Xz=w(xP=>{"use strict";Object.defineProperty(xP,"__esModule",{value:!0});var Vz=new Set;xP.default=t=>{Vz.has(t)||(Vz.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var Zz=w(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Ir=eA(),BPe=(t,e)=>{if(Ir.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ir.assert.any([Ir.default.string,Ir.default.undefined],t.encoding),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],t.resolveBodyOnly),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],t.methodRewriting),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],t.isStream),Ir.assert.any([Ir.default.string,Ir.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry=N({},e.retry):t.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ir.default.object(r)?(t.retry=N(N({},t.retry),r),t.retry.methods=[...new Set(t.retry.methods.map(i=>i.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Ir.default.number(r)&&(t.retry.limit=r),Ir.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Ir.default.number))),Ir.default.object(t.pagination)){e&&(t.pagination=N(N({},e.pagination),t.pagination));let{pagination:i}=t;if(!Ir.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ir.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ir.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ir.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};PP.default=BPe});var $z=w(Nd=>{"use strict";Object.defineProperty(Nd,"__esModule",{value:!0});Nd.retryAfterStatusCodes=void 0;Nd.retryAfterStatusCodes=new Set([413,429,503]);var bPe=({attemptCount:t,retryOptions:e,error:r,retryAfter:i})=>{if(t>e.limit)return 0;let n=e.methods.includes(r.options.method),s=e.errorCodes.includes(r.code),o=r.response&&e.statusCodes.includes(r.response.statusCode);if(!n||!s&&!o)return 0;if(r.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(r.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(t-1)*1e3+a};Nd.default=bPe});var Td=w(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.UnsupportedProtocolError=qt.ReadError=qt.TimeoutError=qt.UploadError=qt.CacheError=qt.HTTPError=qt.MaxRedirectsError=qt.RequestError=qt.setNonEnumerableProperties=qt.knownHookEvents=qt.withoutBody=qt.kIsNormalizedAlready=void 0;var e5=require("util"),t5=require("stream"),QPe=require("fs"),Al=require("url"),r5=require("http"),DP=require("http"),vPe=require("https"),SPe=u4(),kPe=m4(),i5=Z4(),xPe=rz(),PPe=Nz(),DPe=Dw(),Ie=eA(),RPe=Kz(),n5=CP(),FPe=IP(),s5=Gz(),NPe=Yz(),o5=qz(),LPe=Wz(),TPe=SP(),a5=_z(),OPe=kP(),ll=Xz(),MPe=Zz(),KPe=$z(),RP,Ri=Symbol("request"),Tw=Symbol("response"),$g=Symbol("responseSize"),ef=Symbol("downloadedSize"),tf=Symbol("bodySize"),rf=Symbol("uploadedSize"),Ow=Symbol("serverResponsesPiped"),A5=Symbol("unproxyEvents"),l5=Symbol("isFromCache"),FP=Symbol("cancelTimeouts"),c5=Symbol("startedReading"),nf=Symbol("stopReading"),Mw=Symbol("triggerRead"),cl=Symbol("body"),Ld=Symbol("jobs"),u5=Symbol("originalResponse"),g5=Symbol("retryTimeout");qt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var UPe=Ie.default.string(process.versions.brotli);qt.withoutBody=new Set(["GET","HEAD"]);qt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function HPe(t){for(let e in t){let r=t[e];if(!Ie.default.string(r)&&!Ie.default.number(r)&&!Ie.default.boolean(r)&&!Ie.default.null_(r)&&!Ie.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function GPe(t){return Ie.default.object(t)&&!("statusCode"in t)}var NP=new LPe.default,jPe=async t=>new Promise((e,r)=>{let i=n=>{r(n)};t.pending||e(),t.once("error",i),t.once("ready",()=>{t.off("error",i),e()})}),YPe=new Set([300,301,302,303,304,307,308]),qPe=["context","body","json","form"];qt.setNonEnumerableProperties=(t,e)=>{let r={};for(let i of t)if(!!i)for(let n of qPe)n in i&&(r[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,r)};var fi=class extends Error{constructor(e,r,i){var n;super(e);if(Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,i instanceof LP?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[Tw]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ie.default.string(r.stack)&&Ie.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`).reverse(),a=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` +`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` +`)}${a.reverse().join(` +`)}`}}};qt.RequestError=fi;var TP=class extends fi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e);this.name="MaxRedirectsError"}};qt.MaxRedirectsError=TP;var OP=class extends fi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request);this.name="HTTPError"}};qt.HTTPError=OP;var MP=class extends fi{constructor(e,r){super(e.message,e,r);this.name="CacheError"}};qt.CacheError=MP;var KP=class extends fi{constructor(e,r){super(e.message,e,r);this.name="UploadError"}};qt.UploadError=KP;var UP=class extends fi{constructor(e,r,i){super(e.message,e,i);this.name="TimeoutError",this.event=e.event,this.timings=r}};qt.TimeoutError=UP;var Kw=class extends fi{constructor(e,r){super(e.message,e,r);this.name="ReadError"}};qt.ReadError=Kw;var HP=class extends fi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e);this.name="UnsupportedProtocolError"}};qt.UnsupportedProtocolError=HP;var JPe=["socket","connect","continue","information","upgrade","timeout"],LP=class extends t5.Duplex{constructor(e,r={},i){super({autoDestroy:!1,highWaterMark:0});this[ef]=0,this[rf]=0,this.requestInitialized=!1,this[Ow]=new Set,this.redirects=[],this[nf]=!1,this[Mw]=!1,this[Ld]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof DP.IncomingMessage&&(this.options.headers=N(N({},c.headers),this.options.headers))});let{json:o,body:a,form:l}=r;if((o||a||l)&&this._lockWrite(),qt.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,i)}catch(c){Ie.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof QPe.ReadStream&&await jPe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Ri])===null||c===void 0||c.destroy();return}for(let g of this[Ld])g();this[Ld].length=0,this.requestInitialized=!0}catch(u){if(u instanceof fi){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,r,i){var n,s,o,a,l;let c=r;if(Ie.default.object(e)&&!Ie.default.urlInstance(e))r=N(N(N({},i),e),r);else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r=N(N({},i),r),e!==void 0&&(r.url=e),Ie.default.urlInstance(r.url)&&(r.url=new Al.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),Ie.assert.any([Ie.default.string,Ie.default.undefined],r.method),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.headers),Ie.assert.any([Ie.default.string,Ie.default.urlInstance,Ie.default.undefined],r.prefixUrl),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.cookieJar),Ie.assert.any([Ie.default.object,Ie.default.string,Ie.default.undefined],r.searchParams),Ie.assert.any([Ie.default.object,Ie.default.string,Ie.default.undefined],r.cache),Ie.assert.any([Ie.default.object,Ie.default.number,Ie.default.undefined],r.timeout),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.context),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.hooks),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.decompress),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.ignoreInvalidCookies),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.followRedirect),Ie.assert.any([Ie.default.number,Ie.default.undefined],r.maxRedirects),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.throwHttpErrors),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.http2),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.allowGetBody),Ie.assert.any([Ie.default.string,Ie.default.undefined],r.localAddress),Ie.assert.any([a5.isDnsLookupIpVersion,Ie.default.undefined],r.dnsLookupIpVersion),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.https),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.rejectUnauthorized),r.https&&(Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.https.rejectUnauthorized),Ie.assert.any([Ie.default.function_,Ie.default.undefined],r.https.checkServerIdentity),Ie.assert.any([Ie.default.string,Ie.default.object,Ie.default.array,Ie.default.undefined],r.https.certificateAuthority),Ie.assert.any([Ie.default.string,Ie.default.object,Ie.default.array,Ie.default.undefined],r.https.key),Ie.assert.any([Ie.default.string,Ie.default.object,Ie.default.array,Ie.default.undefined],r.https.certificate),Ie.assert.any([Ie.default.string,Ie.default.undefined],r.https.passphrase),Ie.assert.any([Ie.default.string,Ie.default.buffer,Ie.default.array,Ie.default.undefined],r.https.pfx)),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.cacheOptions),Ie.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(i==null?void 0:i.headers)?r.headers=N({},r.headers):r.headers=DPe(N(N({},i==null?void 0:i.headers),r.headers)),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(i==null?void 0:i.searchParams)){let h;if(Ie.default.string(r.searchParams)||r.searchParams instanceof Al.URLSearchParams)h=new Al.URLSearchParams(r.searchParams);else{HPe(r.searchParams),h=new Al.URLSearchParams;for(let p in r.searchParams){let m=r.searchParams[p];m===null?h.append(p,""):m!==void 0&&h.append(p,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,m)=>{h.has(m)||h.append(m,p)}),r.searchParams=h}if(r.username=(s=r.username)!==null&&s!==void 0?s:"",r.password=(o=r.password)!==null&&o!==void 0?o:"",Ie.default.undefined(r.prefixUrl)?r.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),Ie.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=o5.default(r.prefixUrl+r.url,r)}else(Ie.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=o5.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:h}=r;Object.defineProperty(r,"prefixUrl",{set:m=>{let y=r.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${m}: ${y.href}`);r.url=new Al.URL(m+y.href.slice(h.length)),h=m},get:()=>h});let{protocol:p}=r.url;if(p==="unix:"&&(p="http:",r.url=new Al.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),p!=="http:"&&p!=="https:")throw new HP(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:u}=r;if(u){let{setCookie:h,getCookieString:p}=u;Ie.assert.function_(h),Ie.assert.function_(p),h.length===4&&p.length===0&&(h=e5.promisify(h.bind(r.cookieJar)),p=e5.promisify(p.bind(r.cookieJar)),r.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=r;if(g&&(NP.has(g)||NP.set(g,new i5((h,p)=>{let m=h[Ri](h,p);return Ie.default.promise(m)&&(m.once=(y,b)=>{if(y==="error")m.catch(b);else if(y==="abort")(async()=>{try{(await m).once("abort",b)}catch(S){}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),r.cacheOptions=N({},r.cacheOptions),r.dnsCache===!0)RP||(RP=new kPe.default),r.dnsCache=RP;else if(!Ie.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ie.default(r.dnsCache)}`);Ie.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout=N(N({},i.timeout),r.timeout):r.timeout=N({},r.timeout),r.context||(r.context={});let f=r.hooks===(i==null?void 0:i.hooks);r.hooks=N({},r.hooks);for(let h of qt.knownHookEvents)if(h in r.hooks)if(Ie.default.array(r.hooks[h]))r.hooks[h]=[...r.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${Ie.default(r.hooks[h])}`);else r.hooks[h]=[];if(i&&!f)for(let h of qt.knownHookEvents)i.hooks[h].length>0&&(r.hooks[h]=[...i.hooks[h],...r.hooks[h]]);if("family"in r&&ll.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),(i==null?void 0:i.https)&&(r.https=N(N({},i.https),r.https)),"rejectUnauthorized"in r&&ll.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&ll.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&ll.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&ll.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&ll.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&ll.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&ll.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let h in r.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return r.maxRedirects=(l=r.maxRedirects)!==null&&l!==void 0?l:0,qt.setNonEnumerableProperties([i,c],r),MPe.default(r,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,i=!Ie.default.undefined(e.form),n=!Ie.default.undefined(e.json),s=!Ie.default.undefined(e.body),o=i||n||s,a=qt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof t5.Readable)&&!Ie.default.string(e.body)&&!Ie.default.buffer(e.body)&&!n5.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ie.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ie.default.string(r["content-type"]);s?(n5.default(e.body)&&l&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[cl]=e.body):i?(l&&(r["content-type"]="application/x-www-form-urlencoded"),this[cl]=new Al.URLSearchParams(e.form).toString()):(l&&(r["content-type"]="application/json"),this[cl]=e.stringifyJson(e.json));let c=await RPe.default(this[cl],e.headers);Ie.default.undefined(r["content-length"])&&Ie.default.undefined(r["transfer-encoding"])&&!a&&!Ie.default.undefined(c)&&(r["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[tf]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:i}=r;this[u5]=e,r.decompress&&(e=xPe(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:r5.STATUS_CODES[n],s.url=r.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[l5]=s.isFromCache,this[$g]=Number(e.headers["content-length"])||void 0,this[Tw]=e,e.once("end",()=>{this[$g]=this[ef],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new Kw(a,this))}),e.once("aborted",()=>{this._beforeError(new Kw({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ie.default.object(r.cookieJar)&&o){let a=o.map(async l=>r.cookieJar.setCookie(l,i.toString()));r.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(r.followRedirect&&e.headers.location&&YPe.has(n)){if(e.resume(),this[Ri]&&(this[FP](),delete this[Ri],this[A5]()),(n===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[cl]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new TP(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new Al.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(c.username=r.username,c.password=r.password),this.redirects.push(u),r.url=c;for(let g of r.hooks.beforeRedirect)await g(r,s);this.emit("redirect",s,r),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(r.isStream&&r.throwHttpErrors&&!OPe.isResponseOk(s)){this._beforeError(new OP(s));return}e.on("readable",()=>{this[Mw]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[Ow])if(!a.headersSent){for(let l in e.headers){let c=r.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:i,url:n}=r;SPe.default(e),this[FP]=s5.default(e,i,n);let s=r.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof s5.TimeoutError?new UP(l,this.timings,this):new fi(l.message,l,this),this._beforeError(l)}),this[A5]=FPe.default(e,this,JPe),this[Ri]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[cl],a=this.redirects.length===0?this:e;Ie.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new KP(l,this))})):(this._unlockWrite(),Ie.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((i,n)=>{Object.assign(r,NPe.default(e)),delete r.url;let s,o=NP.get(r.cache)(r,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});r.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,r,i,n,s;let{options:o}=this,{headers:a}=o;for(let b in a)if(Ie.default.undefined(a[b]))delete a[b];else if(Ie.default.null_(a[b]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${b}\` header`);if(o.decompress&&Ie.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=UPe?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let b=await o.cookieJar.getCookieString(o.url.toString());Ie.default.nonEmptyString(b)&&(o.headers.cookie=b)}for(let b of o.hooks.beforeRequest){let S=await b(o);if(!Ie.default.undefined(S)){o.request=()=>S;break}}o.body&&this[cl]!==o.body&&(this[cl]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let b=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(b==null?void 0:b.groups){let{socketPath:S,path:k}=b.groups;Object.assign(o,{socketPath:S,path:k,host:""})}}let f=g.protocol==="https:",h;o.http2?h=PPe.auto:h=f?vPe.request:r5.request;let p=(e=o.request)!==null&&e!==void 0?e:h,m=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Ri]=p,delete o.request,delete o.timeout;let y=o;if(y.shared=(r=o.cacheOptions)===null||r===void 0?void 0:r.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=a5.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch(b){throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let b=await m(g,y);Ie.default.undefined(b)&&(b=h(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),GPe(b)?this._onRequest(b):this.writable?(this.once("finish",()=>{this._onResponse(b)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(b)}catch(b){throw b instanceof i5.CacheError?new MP(b,this):new fi(b.message,b,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new fi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[nf])return;let{options:r}=this,i=this.retryCount+1;this[nf]=!0,e instanceof fi||(e=new fi(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await TPe.default(s),s.body=s.rawBody.toString()}catch(o){}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await r.retry.calculateDelay({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:KPe.default({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new fi(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new fi(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[g5]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[Mw]=!0;let e=this[Tw];if(e&&!this[nf]){e.readableLength&&(this[Mw]=!1);let r;for(;(r=e.read())!==null;){this[ef]+=r.length,this[c5]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(r)}}}_write(e,r,i){let n=()=>{this._writeRequest(e,r,i)};this.requestInitialized?n():this[Ld].push(n)}_writeRequest(e,r,i){this[Ri].destroyed||(this._progressCallbacks.push(()=>{this[rf]+=Buffer.byteLength(e,r);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Ri].write(e,r,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Ri in this)){e();return}if(this[Ri].destroyed){e();return}this[Ri].end(i=>{i||(this[tf]=this[rf],this.emit("uploadProgress",this.uploadProgress),this[Ri].emit("upload-complete")),e(i)})};this.requestInitialized?r():this[Ld].push(r)}_destroy(e,r){var i;this[nf]=!0,clearTimeout(this[g5]),Ri in this&&(this[FP](),((i=this[Tw])===null||i===void 0?void 0:i.complete)||this[Ri].destroy()),e!==null&&!Ie.default.undefined(e)&&!(e instanceof fi)&&(e=new fi(e.message,e,this)),r(e)}get _isAboutToError(){return this[nf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,i;return((r=(e=this[Ri])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!((i=this[u5])===null||i===void 0?void 0:i.complete)}get socket(){var e,r;return(r=(e=this[Ri])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[$g]?e=this[ef]/this[$g]:this[$g]===this[ef]?e=1:e=0,{percent:e,transferred:this[ef],total:this[$g]}}get uploadProgress(){let e;return this[tf]?e=this[rf]/this[tf]:this[tf]===this[rf]?e=1:e=0,{percent:e,transferred:this[rf],total:this[tf]}}get timings(){var e;return(e=this[Ri])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[l5]}pipe(e,r){if(this[c5])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof DP.ServerResponse&&this[Ow].add(e),super.pipe(e,r)}unpipe(e){return e instanceof DP.ServerResponse&&this[Ow].delete(e),super.unpipe(e),this}};qt.default=LP});var Od=w(po=>{"use strict";var WPe=po&&po.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),zPe=po&&po.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&WPe(e,t,r)};Object.defineProperty(po,"__esModule",{value:!0});po.CancelError=po.ParseError=void 0;var f5=Td(),h5=class extends f5.RequestError{constructor(e,r){let{options:i}=r.request;super(`${e.message} in "${i.url.toString()}"`,e,r.request);this.name="ParseError"}};po.ParseError=h5;var p5=class extends f5.RequestError{constructor(e){super("Promise was canceled",{},e);this.name="CancelError"}get isCanceled(){return!0}};po.CancelError=p5;zPe(Td(),po)});var C5=w(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});var d5=Od(),_Pe=(t,e,r,i)=>{let{rawBody:n}=t;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":r(n.toString());if(e==="buffer")return n;throw new d5.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(s){throw new d5.ParseError(s,t)}};GP.default=_Pe});var jP=w(ul=>{"use strict";var VPe=ul&&ul.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),XPe=ul&&ul.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&VPe(e,t,r)};Object.defineProperty(ul,"__esModule",{value:!0});var ZPe=require("events"),$Pe=eA(),eDe=l4(),Uw=Od(),m5=C5(),E5=Td(),tDe=IP(),rDe=SP(),I5=kP(),iDe=["request","response","redirect","uploadProgress","downloadProgress"];function y5(t){let e,r,i=new ZPe.EventEmitter,n=new eDe((o,a,l)=>{let c=u=>{let g=new E5.default(void 0,t);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new Uw.CancelError(g))),e=g,g.once("response",async p=>{var m;if(p.retryCount=u,p.request.aborted)return;let y;try{y=await rDe.default(g),p.rawBody=y}catch(T){return}if(g._isAboutToError)return;let b=((m=p.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(b),{options:k}=g;if(S&&!k.decompress)p.body=y;else try{p.body=m5.default(p,k.responseType,k.parseJson,k.encoding)}catch(T){if(p.body=y.toString(),I5.isResponseOk(p)){g._beforeError(T);return}}try{for(let[T,Y]of k.hooks.afterResponse.entries())p=await Y(p,async j=>{let Z=E5.default.normalizeArguments(void 0,ie(N({},j),{retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1}),k);Z.hooks.afterResponse=Z.hooks.afterResponse.slice(0,T);for(let re of Z.hooks.beforeRetry)await re(Z);let J=y5(Z);return l(()=>{J.catch(()=>{}),J.cancel()}),J})}catch(T){g._beforeError(new Uw.RequestError(T.message,T,g));return}if(!I5.isResponseOk(p)){g._beforeError(new Uw.HTTPError(p));return}r=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:m}=g;if(p instanceof Uw.HTTPError&&!m.throwHttpErrors){let{response:y}=p;o(g.options.resolveBodyOnly?y.body:y);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,m)=>{var y,b;if(h===((y=m.request)===null||y===void 0?void 0:y.options.body)&&$Pe.default.nodeStream((b=m.request)===null||b===void 0?void 0:b.options.body)){f(m);return}c(p)}),tDe.default(g,i,iDe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=r.request;return m5.default(r,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ul.default=y5;XPe(Od(),ul)});var w5=w(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});var nDe=Od();function sDe(t,...e){let r=(async()=>{if(t instanceof nDe.RequestError)try{for(let n of e)if(n)for(let s of n)t=await s(t)}catch(n){t=n}throw t})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}YP.default=sDe});var Q5=w(qP=>{"use strict";Object.defineProperty(qP,"__esModule",{value:!0});var B5=eA();function b5(t){for(let e of Object.values(t))(B5.default.plainObject(e)||B5.default.array(e))&&b5(e);return Object.freeze(t)}qP.default=b5});var S5=w(v5=>{"use strict";Object.defineProperty(v5,"__esModule",{value:!0})});var JP=w(Ls=>{"use strict";var oDe=Ls&&Ls.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),aDe=Ls&&Ls.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&oDe(e,t,r)};Object.defineProperty(Ls,"__esModule",{value:!0});Ls.defaultHandler=void 0;var k5=eA(),Ts=jP(),ADe=w5(),Hw=Td(),lDe=Q5(),cDe={RequestError:Ts.RequestError,CacheError:Ts.CacheError,ReadError:Ts.ReadError,HTTPError:Ts.HTTPError,MaxRedirectsError:Ts.MaxRedirectsError,TimeoutError:Ts.TimeoutError,ParseError:Ts.ParseError,CancelError:Ts.CancelError,UnsupportedProtocolError:Ts.UnsupportedProtocolError,UploadError:Ts.UploadError},uDe=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:Gw}=Hw.default,x5=(...t)=>{let e;for(let r of t)e=Gw(void 0,r,e);return e},gDe=t=>t.isStream?new Hw.default(void 0,t):Ts.default(t),fDe=t=>"defaults"in t&&"options"in t.defaults,hDe=["get","post","put","patch","head","delete"];Ls.defaultHandler=(t,e)=>e(t);var P5=(t,e)=>{if(t)for(let r of t)r(e)},D5=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>t.handlers[l++](u,l===t.handlers.length?gDe:c);if(k5.default.plainObject(i)){let u=N(N({},i),n);Hw.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{P5(t.options.hooks.init,n),P5((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=Gw(i,n,s!=null?s:t.options);if(g[Hw.kIsNormalizedAlready]=!0,u)throw new Ts.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return ADe.default(u,t.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[t.options],s=[...t._rawHandlers],o;for(let a of i)fDe(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Ls.defaultHandler),s.length===0&&s.push(Ls.defaultHandler),D5({options:x5(...n),handlers:s,mutableDefaults:Boolean(o)})};let r=async function*(i,n){let s=Gw(i,n,t.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!k5.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of r(i,n))s.push(o);return s},e.paginate.each=r,e.stream=(i,n)=>e(i,ie(N({},n),{isStream:!0}));for(let i of hDe)e[i]=(n,s)=>e(n,ie(N({},s),{method:i})),e.stream[i]=(n,s)=>e(n,ie(N({},s),{method:i,isStream:!0}));return Object.assign(e,cDe),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:lDe.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=x5,e};Ls.default=D5;aDe(S5(),Ls)});var Yw=w((rA,jw)=>{"use strict";var pDe=rA&&rA.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),R5=rA&&rA.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&pDe(e,t,r)};Object.defineProperty(rA,"__esModule",{value:!0});var dDe=require("url"),F5=JP(),CDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let i of e){let n=i.split(";");if(n[1].includes("next")){r=n[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new dDe.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:Infinity,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[F5.defaultHandler],mutableDefaults:!1},WP=F5.default(CDe);rA.default=WP;jw.exports=WP;jw.exports.default=WP;jw.exports.__esModule=!0;R5(JP(),rA);R5(jP(),rA)});var O5=w(sf=>{"use strict";var jot=require("net"),mDe=require("tls"),zP=require("http"),N5=require("https"),EDe=require("events"),Yot=require("assert"),IDe=require("util");sf.httpOverHttp=yDe;sf.httpsOverHttp=wDe;sf.httpOverHttps=BDe;sf.httpsOverHttps=bDe;function yDe(t){var e=new iA(t);return e.request=zP.request,e}function wDe(t){var e=new iA(t);return e.request=zP.request,e.createSocket=L5,e.defaultPort=443,e}function BDe(t){var e=new iA(t);return e.request=N5.request,e}function bDe(t){var e=new iA(t);return e.request=N5.request,e.createSocket=L5,e.defaultPort=443,e}function iA(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||zP.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=T5(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};iA.prototype.createSocket=function(e,r){var i=this,n={};i.sockets.push(n);var s=_P({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),gl("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){gl("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){gl("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return gl("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,r(f)}function u(g){o.removeAllListeners(),gl(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};iA.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function L5(t,e){var r=this;iA.prototype.createSocket.call(r,t,function(i){var n=t.request.getHeader("host"),s=_P({},r.options,{socket:i,servername:n?n.replace(/:.*$/,""):t.host}),o=mDe.connect(0,s);r.sockets[r.sockets.indexOf(i)]=o,e(o)})}function T5(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function _P(t){for(var e=1,r=arguments.length;e{M5.exports=O5()});var _5=w((Ww,eD)=>{var z5=Object.assign({},require("fs")),tD=function(){var t=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(t=t||__filename),function(e){e=e||{};var r=typeof e!="undefined"?e:{},i,n;r.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in r)r.hasOwnProperty(o)&&(s[o]=r[o]);var a=[],l="./this.program",c=function(d,E){throw E},u=!1,g=!0,f="";function h(d){return r.locateFile?r.locateFile(d,f):f+d}var p,m,y,b;g&&(u?f=require("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var D=Qa(E);return D?I?D:D.toString():(y||(y=z5),b||(b=require("path")),E=b.normalize(E),y.readFileSync(E,I?null:"utf8"))},m=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),X(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(d){process.exit(d)},r.inspect=function(){return"[Emscripten Module object]"});var S=r.print||console.log.bind(console),k=r.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(r[o]=s[o]);s=null,r.arguments&&(a=r.arguments),r.thisProgram&&(l=r.thisProgram),r.quit&&(c=r.quit);var T=16;function Y(d,E){return E||(E=T),Math.ceil(d/E)*E}var j=0,Z=function(d){j=d},J;r.wasmBinary&&(J=r.wasmBinary);var re=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Sr("no native wasm support detected");function ee(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return de[d>>0];case"i8":return de[d>>0];case"i16":return Qe[d>>1];case"i32":return fe[d>>2];case"i64":return fe[d>>2];case"float":return Ht[d>>2];case"double":return Mt[d>>3];default:Sr("invalid type for getValue: "+E)}return null}var A,oe=!1,le;function X(d,E){d||Sr("Assertion failed: "+E)}function O(d){var E=r["_"+d];return X(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function L(d,E,I,D,M){var _={string:function(nt){var It=0;if(nt!=null&&nt!==0){var ke=(nt.length<<2)+1;It=B(ke),be(nt,It,ke)}return It},array:function(nt){var It=B(nt.length);return Ue(nt,It),It}};function ne(nt){return E==="string"?te(nt):E==="boolean"?Boolean(nt):nt}var Be=O(d),Ee=[],_e=0;if(D)for(var ot=0;ot=D);)++M;if(M-E>16&&d.subarray&&Ce)return Ce.decode(d.subarray(E,M));for(var _="";E>10,56320|_e&1023)}}return _}function te(d,E){return d?Oe(V,d,E):""}function se(d,E,I,D){if(!(D>0))return 0;for(var M=I,_=I+D-1,ne=0;ne=55296&&Be<=57343){var Ee=d.charCodeAt(++ne);Be=65536+((Be&1023)<<10)|Ee&1023}if(Be<=127){if(I>=_)break;E[I++]=Be}else if(Be<=2047){if(I+1>=_)break;E[I++]=192|Be>>6,E[I++]=128|Be&63}else if(Be<=65535){if(I+2>=_)break;E[I++]=224|Be>>12,E[I++]=128|Be>>6&63,E[I++]=128|Be&63}else{if(I+3>=_)break;E[I++]=240|Be>>18,E[I++]=128|Be>>12&63,E[I++]=128|Be>>6&63,E[I++]=128|Be&63}}return E[I]=0,I-M}function be(d,E,I){return se(d,V,E,I)}function he(d){for(var E=0,I=0;I=55296&&D<=57343&&(D=65536+((D&1023)<<10)|d.charCodeAt(++I)&1023),D<=127?++E:D<=2047?E+=2:D<=65535?E+=3:E+=4}return E}function Fe(d){var E=he(d)+1,I=Et(E);return I&&se(d,de,I,E),I}function Ue(d,E){de.set(d,E)}function xe(d,E){return d%E>0&&(d+=E-d%E),d}var Se,de,V,Qe,ce,fe,gt,Ht,Mt;function mi(d){Se=d,r.HEAP8=de=new Int8Array(d),r.HEAP16=Qe=new Int16Array(d),r.HEAP32=fe=new Int32Array(d),r.HEAPU8=V=new Uint8Array(d),r.HEAPU16=ce=new Uint16Array(d),r.HEAPU32=gt=new Uint32Array(d),r.HEAPF32=Ht=new Float32Array(d),r.HEAPF64=Mt=new Float64Array(d)}var Gt=r.INITIAL_MEMORY||16777216,Qr,Ti=[],Vs=[],Un=[],Hn=!1;function vr(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)ya(r.preRun.shift());ko(Ti)}function Gn(){Hn=!0,!r.noFSInit&&!v.init.initialized&&v.init(),hs.init(),ko(Vs)}function gs(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Ru(r.postRun.shift());ko(Un)}function ya(d){Ti.unshift(d)}function kA(d){Vs.unshift(d)}function Ru(d){Un.unshift(d)}var fs=0,xA=null,wa=null;function Fu(d){return d}function PA(d){fs++,r.monitorRunDependencies&&r.monitorRunDependencies(fs)}function DA(d){if(fs--,r.monitorRunDependencies&&r.monitorRunDependencies(fs),fs==0&&(xA!==null&&(clearInterval(xA),xA=null),wa)){var E=wa;wa=null,E()}}r.preloadedImages={},r.preloadedAudios={};function Sr(d){r.onAbort&&r.onAbort(d),d+="",k(d),oe=!0,le=1,d="abort("+d+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(d);throw n(E),E}var jl="data:application/octet-stream;base64,";function Nu(d){return d.startsWith(jl)}var So="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";Nu(So)||(So=h(So));function Lu(d){try{if(d==So&&J)return new Uint8Array(J);var E=Qa(d);if(E)return E;if(m)return m(d);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(I){Sr(I)}}function Sh(d,E){var I,D,M;try{M=Lu(d),D=new WebAssembly.Module(M),I=new WebAssembly.Instance(D,E)}catch(ne){var _=ne.toString();throw k("failed to compile wasm module: "+_),(_.includes("imported Memory")||_.includes("memory import"))&&k("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ne}return[I,D]}function kh(){var d={a:va};function E(M,_){var ne=M.exports;r.asm=ne,A=r.asm.u,mi(A.buffer),Qr=r.asm.pa,kA(r.asm.v),DA("wasm-instantiate")}if(PA("wasm-instantiate"),r.instantiateWasm)try{var I=r.instantiateWasm(d,E);return I}catch(M){return k("Module.instantiateWasm callback failed with error: "+M),!1}var D=Sh(So,d);return E(D[0]),r.asm}var ae,Oi;function ko(d){for(;d.length>0;){var E=d.shift();if(typeof E=="function"){E(r);continue}var I=E.func;typeof I=="number"?E.arg===void 0?Qr.get(I)():Qr.get(I)(E.arg):I(E.arg===void 0?null:E.arg)}}function jn(d,E){var I=new Date(fe[d>>2]*1e3);fe[E>>2]=I.getUTCSeconds(),fe[E+4>>2]=I.getUTCMinutes(),fe[E+8>>2]=I.getUTCHours(),fe[E+12>>2]=I.getUTCDate(),fe[E+16>>2]=I.getUTCMonth(),fe[E+20>>2]=I.getUTCFullYear()-1900,fe[E+24>>2]=I.getUTCDay(),fe[E+36>>2]=0,fe[E+32>>2]=0;var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[E+28>>2]=M,jn.GMTString||(jn.GMTString=Fe("GMT")),fe[E+40>>2]=jn.GMTString,E}function Tu(d,E){return jn(d,E)}var vt={splitPath:function(d){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(d).slice(1)},normalizeArray:function(d,E){for(var I=0,D=d.length-1;D>=0;D--){var M=d[D];M==="."?d.splice(D,1):M===".."?(d.splice(D,1),I++):I&&(d.splice(D,1),I--)}if(E)for(;I;I--)d.unshift("..");return d},normalize:function(d){var E=d.charAt(0)==="/",I=d.substr(-1)==="/";return d=vt.normalizeArray(d.split("/").filter(function(D){return!!D}),!E).join("/"),!d&&!E&&(d="."),d&&I&&(d+="/"),(E?"/":"")+d},dirname:function(d){var E=vt.splitPath(d),I=E[0],D=E[1];return!I&&!D?".":(D&&(D=D.substr(0,D.length-1)),I+D)},basename:function(d){if(d==="/")return"/";d=vt.normalize(d),d=d.replace(/\/$/,"");var E=d.lastIndexOf("/");return E===-1?d:d.substr(E+1)},extname:function(d){return vt.splitPath(d)[3]},join:function(){var d=Array.prototype.slice.call(arguments,0);return vt.normalize(d.join("/"))},join2:function(d,E){return vt.normalize(d+"/"+E)}};function Yl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var d=new Uint8Array(1);return function(){return crypto.getRandomValues(d),d[0]}}else if(g)try{var E=require("crypto");return function(){return E.randomBytes(1)[0]}}catch(I){}return function(){Sr("randomDevice")}}var Yn={resolve:function(){for(var d="",E=!1,I=arguments.length-1;I>=-1&&!E;I--){var D=I>=0?arguments[I]:v.cwd();if(typeof D!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!D)return"";d=D+"/"+d,E=D.charAt(0)==="/"}return d=vt.normalizeArray(d.split("/").filter(function(M){return!!M}),!E).join("/"),(E?"/":"")+d||"."},relative:function(d,E){d=Yn.resolve(d).substr(1),E=Yn.resolve(E).substr(1);function I(_e){for(var ot=0;ot<_e.length&&_e[ot]==="";ot++);for(var wt=_e.length-1;wt>=0&&_e[wt]==="";wt--);return ot>wt?[]:_e.slice(ot,wt-ot+1)}for(var D=I(d.split("/")),M=I(E.split("/")),_=Math.min(D.length,M.length),ne=_,Be=0;Be<_;Be++)if(D[Be]!==M[Be]){ne=Be;break}for(var Ee=[],Be=ne;Be0?E=D.slice(0,M).toString("utf-8"):E=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` +`));if(!E)return null;d.input=FA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(S(Oe(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(S(Oe(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(k(Oe(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(k(Oe(d.output,0)),d.output=[])}}};function ps(d){for(var E=Y(d,65536),I=Et(E);d=E)){var D=1024*1024;E=Math.max(E,I*(I>>0),I!=0&&(E=Math.max(E,256));var M=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(M.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=v.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,v.isDir(d.mode)?E.size=4096:v.isFile(d.mode)?E.size=d.usedBytes:v.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&&pt.resizeFileStorage(d,E.size)},lookup:function(d,E){throw v.genericErrors[44]},mknod:function(d,E,I,D){return pt.createNode(d,E,I,D)},rename:function(d,E,I){if(v.isDir(d.mode)){var D;try{D=v.lookupNode(E,I)}catch(_){}if(D)for(var M in D.contents)throw new v.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=v.lookupNode(d,E);for(var D in I.contents)throw new v.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[".",".."];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var D=pt.createNode(d,E,511|40960,0);return D.link=I,D},readlink:function(d){if(!v.isLink(d.mode))throw new v.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,D,M){var _=d.node.contents;if(M>=d.node.usedBytes)return 0;var ne=Math.min(d.node.usedBytes-M,D);if(ne>8&&_.subarray)E.set(_.subarray(M,M+ne),I);else for(var Be=0;Be0||D+I>2)}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}return E.mode},realPath:function(d){for(var E=[];d.parent!==d;)E.push(d.name),d=d.parent;return E.push(d.mount.opts.root),E.reverse(),vt.join.apply(null,E)},flagsForNode:function(d){d&=~2097152,d&=~2048,d&=~32768,d&=~524288;var E=0;for(var I in lt.flagsForNodeMap)d&I&&(E|=lt.flagsForNodeMap[I],d^=I);if(d)throw new v.ErrnoError(28);return E},node_ops:{getattr:function(d){var E=lt.realPath(d),I;try{I=Me.lstatSync(E)}catch(D){throw D.code?new v.ErrnoError(lt.convertNodeCode(D)):D}return lt.isWindows&&!I.blksize&&(I.blksize=4096),lt.isWindows&&!I.blocks&&(I.blocks=(I.size+I.blksize-1)/I.blksize|0),{dev:I.dev,ino:I.ino,mode:I.mode,nlink:I.nlink,uid:I.uid,gid:I.gid,rdev:I.rdev,size:I.size,atime:I.atime,mtime:I.mtime,ctime:I.ctime,blksize:I.blksize,blocks:I.blocks}},setattr:function(d,E){var I=lt.realPath(d);try{if(E.mode!==void 0&&(Me.chmodSync(I,E.mode),d.mode=E.mode),E.timestamp!==void 0){var D=new Date(E.timestamp);Me.utimesSync(I,D,D)}E.size!==void 0&&Me.truncateSync(I,E.size)}catch(M){throw M.code?new v.ErrnoError(lt.convertNodeCode(M)):M}},lookup:function(d,E){var I=vt.join2(lt.realPath(d),E),D=lt.getMode(I);return lt.createNode(d,E,D)},mknod:function(d,E,I,D){var M=lt.createNode(d,E,I,D),_=lt.realPath(M);try{v.isDir(M.mode)?Me.mkdirSync(_,M.mode):Me.writeFileSync(_,"",{mode:M.mode})}catch(ne){throw ne.code?new v.ErrnoError(lt.convertNodeCode(ne)):ne}return M},rename:function(d,E,I){var D=lt.realPath(d),M=vt.join2(lt.realPath(E),I);try{Me.renameSync(D,M)}catch(_){throw _.code?new v.ErrnoError(lt.convertNodeCode(_)):_}d.name=I},unlink:function(d,E){var I=vt.join2(lt.realPath(d),E);try{Me.unlinkSync(I)}catch(D){throw D.code?new v.ErrnoError(lt.convertNodeCode(D)):D}},rmdir:function(d,E){var I=vt.join2(lt.realPath(d),E);try{Me.rmdirSync(I)}catch(D){throw D.code?new v.ErrnoError(lt.convertNodeCode(D)):D}},readdir:function(d){var E=lt.realPath(d);try{return Me.readdirSync(E)}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}},symlink:function(d,E,I){var D=vt.join2(lt.realPath(d),E);try{Me.symlinkSync(I,D)}catch(M){throw M.code?new v.ErrnoError(lt.convertNodeCode(M)):M}},readlink:function(d){var E=lt.realPath(d);try{return E=Me.readlinkSync(E),E=Ku.relative(Ku.resolve(d.mount.opts.root),E),E}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}}},stream_ops:{open:function(d){var E=lt.realPath(d.node);try{v.isFile(d.node.mode)&&(d.nfd=Me.openSync(E,lt.flagsForNode(d.flags)))}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}},close:function(d){try{v.isFile(d.node.mode)&&d.nfd&&Me.closeSync(d.nfd)}catch(E){throw E.code?new v.ErrnoError(lt.convertNodeCode(E)):E}},read:function(d,E,I,D,M){if(D===0)return 0;try{return Me.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(_){throw new v.ErrnoError(lt.convertNodeCode(_))}},write:function(d,E,I,D,M){try{return Me.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(_){throw new v.ErrnoError(lt.convertNodeCode(_))}},llseek:function(d,E,I){var D=E;if(I===1)D+=d.position;else if(I===2&&v.isFile(d.node.mode))try{var M=Me.fstatSync(d.nfd);D+=M.size}catch(_){throw new v.ErrnoError(lt.convertNodeCode(_))}if(D<0)throw new v.ErrnoError(28);return D},mmap:function(d,E,I,D,M,_){if(E!==0)throw new v.ErrnoError(28);if(!v.isFile(d.node.mode))throw new v.ErrnoError(43);var ne=ps(I);return lt.stream_ops.read(d,de,ne,I,D),{ptr:ne,allocated:!0}},msync:function(d,E,I,D,M){if(!v.isFile(d.node.mode))throw new v.ErrnoError(43);if(M&2)return 0;var _=lt.stream_ops.write(d,E,0,D,I,!1);return 0}}},mn={lookupPath:function(d){return{path:d,node:{mode:lt.getMode(d)}}},createStandardStreams:function(){v.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var d=1;d<3;d++)v.streams[d]={fd:d,nfd:d,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(d,E){v.isDir(d)?Me.mkdirSync(d,E):Me.writeFileSync(d,"",{mode:E})},mkdir:function(){Me.mkdirSync.apply(void 0,arguments)},symlink:function(){Me.symlinkSync.apply(void 0,arguments)},rename:function(){Me.renameSync.apply(void 0,arguments)},rmdir:function(){Me.rmdirSync.apply(void 0,arguments)},readdir:function(){Me.readdirSync.apply(void 0,arguments)},unlink:function(){Me.unlinkSync.apply(void 0,arguments)},readlink:function(){return Me.readlinkSync.apply(void 0,arguments)},stat:function(){return Me.statSync.apply(void 0,arguments)},lstat:function(){return Me.lstatSync.apply(void 0,arguments)},chmod:function(){Me.chmodSync.apply(void 0,arguments)},fchmod:function(){Me.fchmodSync.apply(void 0,arguments)},chown:function(){Me.chownSync.apply(void 0,arguments)},fchown:function(){Me.fchownSync.apply(void 0,arguments)},truncate:function(){Me.truncateSync.apply(void 0,arguments)},ftruncate:function(d,E){if(E<0)throw new v.ErrnoError(28);Me.ftruncateSync.apply(void 0,arguments)},utime:function(){Me.utimesSync.apply(void 0,arguments)},open:function(d,E,I,D){typeof E=="string"&&(E=Zs.modeStringToFlags(E));var M=Me.openSync(d,lt.flagsForNode(E),I),_=D!=null?D:v.nextfd(M),ne={fd:_,nfd:M,position:0,path:d,flags:E,seekable:!0};return v.streams[_]=ne,ne},close:function(d){d.stream_ops||Me.closeSync(d.nfd),v.closeStream(d.fd)},llseek:function(d,E,I){if(d.stream_ops)return Zs.llseek(d,E,I);var D=E;if(I===1)D+=d.position;else if(I===2)D+=Me.fstatSync(d.nfd).size;else if(I!==0)throw new v.ErrnoError(xo.EINVAL);if(D<0)throw new v.ErrnoError(xo.EINVAL);return d.position=D,D},read:function(d,E,I,D,M){if(d.stream_ops)return Zs.read(d,E,I,D,M);var _=typeof M!="undefined";!_&&d.seekable&&(M=d.position);var ne=Me.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return _||(d.position+=ne),ne},write:function(d,E,I,D,M){if(d.stream_ops)return Zs.write(d,E,I,D,M);d.flags&+"1024"&&v.llseek(d,0,+"2");var _=typeof M!="undefined";!_&&d.seekable&&(M=d.position);var ne=Me.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return _||(d.position+=ne),ne},allocate:function(){throw new v.ErrnoError(xo.EOPNOTSUPP)},mmap:function(d,E,I,D,M,_){if(d.stream_ops)return Zs.mmap(d,E,I,D,M,_);if(E!==0)throw new v.ErrnoError(28);var ne=ps(I);return v.read(d,de,ne,I,D),{ptr:ne,allocated:!0}},msync:function(d,E,I,D,M){return d.stream_ops?Zs.msync(d,E,I,D,M):(M&2||v.write(d,E,0,D,I),0)},munmap:function(){return 0},ioctl:function(){throw new v.ErrnoError(xo.ENOTTY)}},v={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(d,E){if(d=Yn.resolve(v.cwd(),d),E=E||{},!d)return{path:"",node:null};var I={follow_mount:!0,recurse_count:0};for(var D in I)E[D]===void 0&&(E[D]=I[D]);if(E.recurse_count>8)throw new v.ErrnoError(32);for(var M=vt.normalizeArray(d.split("/").filter(function(ut){return!!ut}),!1),_=v.root,ne="/",Be=0;Be40)throw new v.ErrnoError(32)}}return{path:ne,node:_}},getPath:function(d){for(var E;;){if(v.isRoot(d)){var I=d.mount.mountpoint;return E?I[I.length-1]!=="/"?I+"/"+E:I+E:I}E=E?d.name+"/"+E:d.name,d=d.parent}},hashName:function(d,E){for(var I=0,D=0;D>>0)%v.nameTable.length},hashAddNode:function(d){var E=v.hashName(d.parent.id,d.name);d.name_next=v.nameTable[E],v.nameTable[E]=d},hashRemoveNode:function(d){var E=v.hashName(d.parent.id,d.name);if(v.nameTable[E]===d)v.nameTable[E]=d.name_next;else for(var I=v.nameTable[E];I;){if(I.name_next===d){I.name_next=d.name_next;break}I=I.name_next}},lookupNode:function(d,E){var I=v.mayLookup(d);if(I)throw new v.ErrnoError(I,d);for(var D=v.hashName(d.id,E),M=v.nameTable[D];M;M=M.name_next){var _=M.name;if(M.parent.id===d.id&&_===E)return M}return v.lookup(d,E)},createNode:function(d,E,I,D){var M=new v.FSNode(d,E,I,D);return v.hashAddNode(M),M},destroyNode:function(d){v.hashRemoveNode(d)},isRoot:function(d){return d===d.parent},isMountpoint:function(d){return!!d.mounted},isFile:function(d){return(d&61440)==32768},isDir:function(d){return(d&61440)==16384},isLink:function(d){return(d&61440)==40960},isChrdev:function(d){return(d&61440)==8192},isBlkdev:function(d){return(d&61440)==24576},isFIFO:function(d){return(d&61440)==4096},isSocket:function(d){return(d&49152)==49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(d){var E=v.flagModes[d];if(typeof E=="undefined")throw new Error("Unknown file open mode: "+d);return E},flagsToPermissionString:function(d){var E=["r","w","rw"][d&3];return d&512&&(E+="w"),E},nodePermissions:function(d,E){return v.ignorePermissions?0:E.includes("r")&&!(d.mode&292)||E.includes("w")&&!(d.mode&146)||E.includes("x")&&!(d.mode&73)?2:0},mayLookup:function(d){var E=v.nodePermissions(d,"x");return E||(d.node_ops.lookup?0:2)},mayCreate:function(d,E){try{var I=v.lookupNode(d,E);return 20}catch(D){}return v.nodePermissions(d,"wx")},mayDelete:function(d,E,I){var D;try{D=v.lookupNode(d,E)}catch(_){return _.errno}var M=v.nodePermissions(d,"wx");if(M)return M;if(I){if(!v.isDir(D.mode))return 54;if(v.isRoot(D)||v.getPath(D)===v.cwd())return 10}else if(v.isDir(D.mode))return 31;return 0},mayOpen:function(d,E){return d?v.isLink(d.mode)?32:v.isDir(d.mode)&&(v.flagsToPermissionString(E)!=="r"||E&512)?31:v.nodePermissions(d,v.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(d,E){d=d||0,E=E||v.MAX_OPEN_FDS;for(var I=d;I<=E;I++)if(!v.streams[I])return I;throw new v.ErrnoError(33)},getStream:function(d){return v.streams[d]},createStream:function(d,E,I){v.FSStream||(v.FSStream=function(){},v.FSStream.prototype={object:{get:function(){return this.node},set:function(ne){this.node=ne}},isRead:{get:function(){return(this.flags&2097155)!=1}},isWrite:{get:function(){return(this.flags&2097155)!=0}},isAppend:{get:function(){return this.flags&1024}}});var D=new v.FSStream;for(var M in d)D[M]=d[M];d=D;var _=v.nextfd(E,I);return d.fd=_,v.streams[_]=d,d},closeStream:function(d){v.streams[d]=null},chrdev_stream_ops:{open:function(d){var E=v.getDevice(d.node.rdev);d.stream_ops=E.stream_ops,d.stream_ops.open&&d.stream_ops.open(d)},llseek:function(){throw new v.ErrnoError(70)}},major:function(d){return d>>8},minor:function(d){return d&255},makedev:function(d,E){return d<<8|E},registerDevice:function(d,E){v.devices[d]={stream_ops:E}},getDevice:function(d){return v.devices[d]},getMounts:function(d){for(var E=[],I=[d];I.length;){var D=I.pop();E.push(D),I.push.apply(I,D.mounts)}return E},syncfs:function(d,E){typeof d=="function"&&(E=d,d=!1),v.syncFSRequests++,v.syncFSRequests>1&&k("warning: "+v.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var I=v.getMounts(v.root.mount),D=0;function M(ne){return v.syncFSRequests--,E(ne)}function _(ne){if(ne)return _.errored?void 0:(_.errored=!0,M(ne));++D>=I.length&&M(null)}I.forEach(function(ne){if(!ne.type.syncfs)return _(null);ne.type.syncfs(ne,d,_)})},mount:function(d,E,I){var D=I==="/",M=!I,_;if(D&&v.root)throw new v.ErrnoError(10);if(!D&&!M){var ne=v.lookupPath(I,{follow_mount:!1});if(I=ne.path,_=ne.node,v.isMountpoint(_))throw new v.ErrnoError(10);if(!v.isDir(_.mode))throw new v.ErrnoError(54)}var Be={type:d,opts:E,mountpoint:I,mounts:[]},Ee=d.mount(Be);return Ee.mount=Be,Be.root=Ee,D?v.root=Ee:_&&(_.mounted=Be,_.mount&&_.mount.mounts.push(Be)),Ee},unmount:function(d){var E=v.lookupPath(d,{follow_mount:!1});if(!v.isMountpoint(E.node))throw new v.ErrnoError(28);var I=E.node,D=I.mounted,M=v.getMounts(D);Object.keys(v.nameTable).forEach(function(ne){for(var Be=v.nameTable[ne];Be;){var Ee=Be.name_next;M.includes(Be.mount)&&v.destroyNode(Be),Be=Ee}}),I.mounted=null;var _=I.mount.mounts.indexOf(D);I.mount.mounts.splice(_,1)},lookup:function(d,E){return d.node_ops.lookup(d,E)},mknod:function(d,E,I){var D=v.lookupPath(d,{parent:!0}),M=D.node,_=vt.basename(d);if(!_||_==="."||_==="..")throw new v.ErrnoError(28);var ne=v.mayCreate(M,_);if(ne)throw new v.ErrnoError(ne);if(!M.node_ops.mknod)throw new v.ErrnoError(63);return M.node_ops.mknod(M,_,E,I)},create:function(d,E){return E=E!==void 0?E:438,E&=4095,E|=32768,v.mknod(d,E,0)},mkdir:function(d,E){return E=E!==void 0?E:511,E&=511|512,E|=16384,v.mknod(d,E,0)},mkdirTree:function(d,E){for(var I=d.split("/"),D="",M=0;Mthis.length-1||ut<0)){var nt=ut%this.chunkSize,It=ut/this.chunkSize|0;return this.getter(It)[nt]}},_.prototype.setDataGetter=function(ut){this.getter=ut},_.prototype.cacheLength=function(){var ut=new XMLHttpRequest;if(ut.open("HEAD",I,!1),ut.send(null),!(ut.status>=200&&ut.status<300||ut.status===304))throw new Error("Couldn't load "+I+". Status: "+ut.status);var nt=Number(ut.getResponseHeader("Content-length")),It,ke=(It=ut.getResponseHeader("Accept-Ranges"))&&It==="bytes",Wn=(It=ut.getResponseHeader("Content-Encoding"))&&It==="gzip",Mi=1024*1024;ke||(Mi=nt);var MA=function(ds,Sa){if(ds>Sa)throw new Error("invalid range ("+ds+", "+Sa+") or no bytes requested!");if(Sa>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var qr=new XMLHttpRequest;if(qr.open("GET",I,!1),nt!==Mi&&qr.setRequestHeader("Range","bytes="+ds+"-"+Sa),typeof Uint8Array!="undefined"&&(qr.responseType="arraybuffer"),qr.overrideMimeType&&qr.overrideMimeType("text/plain; charset=x-user-defined"),qr.send(null),!(qr.status>=200&&qr.status<300||qr.status===304))throw new Error("Couldn't load "+I+". Status: "+qr.status);return qr.response!==void 0?new Uint8Array(qr.response||[]):FA(qr.responseText||"",!0)},Yr=this;Yr.setDataGetter(function(ds){var Sa=ds*Mi,qr=(ds+1)*Mi-1;if(qr=Math.min(qr,nt-1),typeof Yr.chunks[ds]=="undefined"&&(Yr.chunks[ds]=MA(Sa,qr)),typeof Yr.chunks[ds]=="undefined")throw new Error("doXHR failed!");return Yr.chunks[ds]}),(Wn||!nt)&&(Mi=nt=1,nt=this.getter(0).length,Mi=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=Mi,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ne=new _;Object.defineProperties(ne,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Be={isDevice:!1,contents:ne}}else var Be={isDevice:!1,url:I};var Ee=v.createFile(d,E,Be,D,M);Be.contents?Ee.contents=Be.contents:Be.url&&(Ee.contents=null,Ee.url=Be.url),Object.defineProperties(Ee,{usedBytes:{get:function(){return this.contents.length}}});var _e={},ot=Object.keys(Ee.stream_ops);return ot.forEach(function(wt){var ut=Ee.stream_ops[wt];_e[wt]=function(){return v.forceLoadFile(Ee),ut.apply(null,arguments)}}),_e.read=function(ut,nt,It,ke,Wn){v.forceLoadFile(Ee);var Mi=ut.node.contents;if(Wn>=Mi.length)return 0;var MA=Math.min(Mi.length-Wn,ke);if(Mi.slice)for(var Yr=0;Yr>2]=D.dev,fe[I+4>>2]=0,fe[I+8>>2]=D.ino,fe[I+12>>2]=D.mode,fe[I+16>>2]=D.nlink,fe[I+20>>2]=D.uid,fe[I+24>>2]=D.gid,fe[I+28>>2]=D.rdev,fe[I+32>>2]=0,Oi=[D.size>>>0,(ae=D.size,+Math.abs(ae)>=1?ae>0?(Math.min(+Math.floor(ae/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ae-+(~~ae>>>0))/4294967296)>>>0:0)],fe[I+40>>2]=Oi[0],fe[I+44>>2]=Oi[1],fe[I+48>>2]=4096,fe[I+52>>2]=D.blocks,fe[I+56>>2]=D.atime.getTime()/1e3|0,fe[I+60>>2]=0,fe[I+64>>2]=D.mtime.getTime()/1e3|0,fe[I+68>>2]=0,fe[I+72>>2]=D.ctime.getTime()/1e3|0,fe[I+76>>2]=0,Oi=[D.ino>>>0,(ae=D.ino,+Math.abs(ae)>=1?ae>0?(Math.min(+Math.floor(ae/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ae-+(~~ae>>>0))/4294967296)>>>0:0)],fe[I+80>>2]=Oi[0],fe[I+84>>2]=Oi[1],0},doMsync:function(d,E,I,D,M){var _=V.slice(d,d+I);v.msync(E,_,M,I,D)},doMkdir:function(d,E){return d=vt.normalize(d),d[d.length-1]==="/"&&(d=d.substr(0,d.length-1)),v.mkdir(d,E,0),0},doMknod:function(d,E,I){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return v.mknod(d,E,I),0},doReadlink:function(d,E,I){if(I<=0)return-28;var D=v.readlink(d),M=Math.min(I,he(D)),_=de[E+M];return be(D,E,I+1),de[E+M]=_,M},doAccess:function(d,E){if(E&~7)return-28;var I,D=v.lookupPath(d,{follow:!0});if(I=D.node,!I)return-44;var M="";return E&4&&(M+="r"),E&2&&(M+="w"),E&1&&(M+="x"),M&&v.nodePermissions(I,M)?-2:0},doDup:function(d,E,I){var D=v.getStream(I);return D&&v.close(D),v.open(d,E,0,I,I).fd},doReadv:function(d,E,I,D){for(var M=0,_=0;_>2],Be=fe[E+(_*8+4)>>2],Ee=v.read(d,de,ne,Be,D);if(Ee<0)return-1;if(M+=Ee,Ee>2],Be=fe[E+(_*8+4)>>2],Ee=v.write(d,de,ne,Be,D);if(Ee<0)return-1;M+=Ee}return M},varargs:void 0,get:function(){Tt.varargs+=4;var d=fe[Tt.varargs-4>>2];return d},getStr:function(d){var E=te(d);return E},getStreamFromFD:function(d){var E=v.getStream(d);if(!E)throw new v.ErrnoError(8);return E},get64:function(d,E){return d}};function Ou(d,E){try{return d=Tt.getStr(d),v.chmod(d,E),0}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),-I.errno}}function ql(d){return fe[Rt()>>2]=d,d}function xh(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 0:{var M=Tt.get();if(M<0)return-28;var _;return _=v.open(D.path,D.flags,0,M),_.fd}case 1:case 2:return 0;case 3:return D.flags;case 4:{var M=Tt.get();return D.flags|=M,0}case 12:{var M=Tt.get(),ne=0;return Qe[M+ne>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return ql(28),-1;default:return-28}}catch(Be){return(typeof v=="undefined"||!(Be instanceof v.ErrnoError))&&Sr(Be),-Be.errno}}function Ph(d,E){try{var I=Tt.getStreamFromFD(d);return Tt.doStat(v.stat,I.path,E)}catch(D){return(typeof v=="undefined"||!(D instanceof v.ErrnoError))&&Sr(D),-D.errno}}function Dh(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 21509:case 21505:return D.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return D.tty?0:-59;case 21519:{if(!D.tty)return-59;var M=Tt.get();return fe[M>>2]=0,0}case 21520:return D.tty?-28:-59;case 21531:{var M=Tt.get();return v.ioctl(D,E,M)}case 21523:return D.tty?0:-59;case 21524:return D.tty?0:-59;default:Sr("bad ioctl syscall "+E)}}catch(_){return(typeof v=="undefined"||!(_ instanceof v.ErrnoError))&&Sr(_),-_.errno}}function Rh(d,E,I){Tt.varargs=I;try{var D=Tt.getStr(d),M=I?Tt.get():0,_=v.open(D,E,M);return _.fd}catch(ne){return(typeof v=="undefined"||!(ne instanceof v.ErrnoError))&&Sr(ne),-ne.errno}}function Fh(d,E){try{return d=Tt.getStr(d),E=Tt.getStr(E),v.rename(d,E),0}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),-I.errno}}function G(d){try{return d=Tt.getStr(d),v.rmdir(d),0}catch(E){return(typeof v=="undefined"||!(E instanceof v.ErrnoError))&&Sr(E),-E.errno}}function yt(d,E){try{return d=Tt.getStr(d),Tt.doStat(v.stat,d,E)}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),-I.errno}}function RA(d){try{return d=Tt.getStr(d),v.unlink(d),0}catch(E){return(typeof v=="undefined"||!(E instanceof v.ErrnoError))&&Sr(E),-E.errno}}function $i(d,E,I){V.copyWithin(d,E,E+I)}function Jl(d){try{return A.grow(d-Se.byteLength+65535>>>16),mi(A.buffer),1}catch(E){}}function $e(d){var E=V.length;d=d>>>0;var I=2147483648;if(d>I)return!1;for(var D=1;D<=4;D*=2){var M=E*(1+.2/D);M=Math.min(M,d+100663296);var _=Math.min(I,xe(Math.max(d,M),65536)),ne=Jl(_);if(ne)return!0}return!1}function Ba(d){try{var E=Tt.getStreamFromFD(d);return v.close(E),0}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),I.errno}}function Mu(d,E){try{var I=Tt.getStreamFromFD(d),D=I.tty?2:v.isDir(I.mode)?3:v.isLink(I.mode)?7:4;return de[E>>0]=D,0}catch(M){return(typeof v=="undefined"||!(M instanceof v.ErrnoError))&&Sr(M),M.errno}}function kE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),_=Tt.doReadv(M,E,I);return fe[D>>2]=_,0}catch(ne){return(typeof v=="undefined"||!(ne instanceof v.ErrnoError))&&Sr(ne),ne.errno}}function Nh(d,E,I,D,M){try{var _=Tt.getStreamFromFD(d),ne=4294967296,Be=I*ne+(E>>>0),Ee=9007199254740992;return Be<=-Ee||Be>=Ee?-61:(v.llseek(_,Be,D),Oi=[_.position>>>0,(ae=_.position,+Math.abs(ae)>=1?ae>0?(Math.min(+Math.floor(ae/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ae-+(~~ae>>>0))/4294967296)>>>0:0)],fe[M>>2]=Oi[0],fe[M+4>>2]=Oi[1],_.getdents&&Be===0&&D===0&&(_.getdents=null),0)}catch(_e){return(typeof v=="undefined"||!(_e instanceof v.ErrnoError))&&Sr(_e),_e.errno}}function xE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),_=Tt.doWritev(M,E,I);return fe[D>>2]=_,0}catch(ne){return(typeof v=="undefined"||!(ne instanceof v.ErrnoError))&&Sr(ne),ne.errno}}function gr(d){Z(d)}function qn(d){var E=Date.now()/1e3|0;return d&&(fe[d>>2]=E),E}function Wl(){if(Wl.called)return;Wl.called=!0;var d=new Date().getFullYear(),E=new Date(d,0,1),I=new Date(d,6,1),D=E.getTimezoneOffset(),M=I.getTimezoneOffset(),_=Math.max(D,M);fe[oQ()>>2]=_*60,fe[sQ()>>2]=Number(D!=M);function ne(wt){var ut=wt.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ut?ut[1]:"GMT"}var Be=ne(E),Ee=ne(I),_e=Fe(Be),ot=Fe(Ee);M>2]=_e,fe[qu()+4>>2]=ot):(fe[qu()>>2]=ot,fe[qu()+4>>2]=_e)}function Lh(d){Wl();var E=Date.UTC(fe[d+20>>2]+1900,fe[d+16>>2],fe[d+12>>2],fe[d+8>>2],fe[d+4>>2],fe[d>>2],0),I=new Date(E);fe[d+24>>2]=I.getUTCDay();var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[d+28>>2]=M,I.getTime()/1e3|0}var Xs=function(d,E,I,D){d||(d=this),this.parent=d,this.mount=d.mount,this.mounted=null,this.id=v.nextInode++,this.name=E,this.mode=I,this.node_ops={},this.stream_ops={},this.rdev=D},ba=292|73,En=146;if(Object.defineProperties(Xs.prototype,{read:{get:function(){return(this.mode&ba)===ba},set:function(d){d?this.mode|=ba:this.mode&=~ba}},write:{get:function(){return(this.mode&En)===En},set:function(d){d?this.mode|=En:this.mode&=~En}},isFolder:{get:function(){return v.isDir(this.mode)}},isDevice:{get:function(){return v.isChrdev(this.mode)}}}),v.FSNode=Xs,v.staticInit(),g){var Me=z5,Ku=require("path");lt.staticInit()}if(g){var zl=function(d){return function(){try{return d.apply(this,arguments)}catch(E){throw E.code?new v.ErrnoError(xo[E.code]):E}}},Zs=Object.assign({},v);for(var _l in mn)v[_l]=zl(mn[_l])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function FA(d,E,I){var D=I>0?I:he(d)+1,M=new Array(D),_=se(d,M,0,M.length);return E&&(M.length=_),M}var Uu=typeof atob=="function"?atob:function(d){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",I="",D,M,_,ne,Be,Ee,_e,ot=0;d=d.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ne=E.indexOf(d.charAt(ot++)),Be=E.indexOf(d.charAt(ot++)),Ee=E.indexOf(d.charAt(ot++)),_e=E.indexOf(d.charAt(ot++)),D=ne<<2|Be>>4,M=(Be&15)<<4|Ee>>2,_=(Ee&3)<<6|_e,I=I+String.fromCharCode(D),Ee!==64&&(I=I+String.fromCharCode(M)),_e!==64&&(I=I+String.fromCharCode(_));while(ot0||(vr(),fs>0))return;function E(){He||(He=!0,r.calledRun=!0,!oe&&(Gn(),i(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),gs()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),E()},1)):E()}if(r.run=OA,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return OA(),e}}();typeof Ww=="object"&&typeof eD=="object"?eD.exports=tD:typeof define=="function"&&define.amd?define([],function(){return tD}):typeof Ww=="object"&&(Ww.createModule=tD)});var I_=w((xat,E_)=>{function GDe(t,e){for(var r=-1,i=t==null?0:t.length,n=Array(i);++r{var jDe=Array.isArray;y_.exports=jDe});var S_=w((Dat,w_)=>{var B_=Hc(),YDe=I_(),qDe=Ms(),JDe=yd(),WDe=1/0,b_=B_?B_.prototype:void 0,Q_=b_?b_.toString:void 0;function v_(t){if(typeof t=="string")return t;if(qDe(t))return YDe(t,v_)+"";if(JDe(t))return Q_?Q_.call(t):"";var e=t+"";return e=="0"&&1/t==-WDe?"-0":e}w_.exports=v_});var of=w((Rat,k_)=>{var zDe=S_();function _De(t){return t==null?"":zDe(t)}k_.exports=_De});var AD=w((Fat,x_)=>{function VDe(t,e,r){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),r=r>n?n:r,r<0&&(r+=n),n=e>r?0:r-e>>>0,e>>>=0;for(var s=Array(n);++i{var XDe=AD();function ZDe(t,e,r){var i=t.length;return r=r===void 0?i:r,!e&&r>=i?t:XDe(t,e,r)}P_.exports=ZDe});var lD=w((Lat,R_)=>{var $De="\\ud800-\\udfff",eRe="\\u0300-\\u036f",tRe="\\ufe20-\\ufe2f",rRe="\\u20d0-\\u20ff",iRe=eRe+tRe+rRe,nRe="\\ufe0e\\ufe0f",sRe="\\u200d",oRe=RegExp("["+sRe+$De+iRe+nRe+"]");function aRe(t){return oRe.test(t)}R_.exports=aRe});var N_=w((Tat,F_)=>{function ARe(t){return t.split("")}F_.exports=ARe});var G_=w((Oat,L_)=>{var T_="\\ud800-\\udfff",lRe="\\u0300-\\u036f",cRe="\\ufe20-\\ufe2f",uRe="\\u20d0-\\u20ff",gRe=lRe+cRe+uRe,fRe="\\ufe0e\\ufe0f",hRe="["+T_+"]",cD="["+gRe+"]",uD="\\ud83c[\\udffb-\\udfff]",pRe="(?:"+cD+"|"+uD+")",O_="[^"+T_+"]",M_="(?:\\ud83c[\\udde6-\\uddff]){2}",K_="[\\ud800-\\udbff][\\udc00-\\udfff]",dRe="\\u200d",U_=pRe+"?",H_="["+fRe+"]?",CRe="(?:"+dRe+"(?:"+[O_,M_,K_].join("|")+")"+H_+U_+")*",mRe=H_+U_+CRe,ERe="(?:"+[O_+cD+"?",cD,M_,K_,hRe].join("|")+")",IRe=RegExp(uD+"(?="+uD+")|"+ERe+mRe,"g");function yRe(t){return t.match(IRe)||[]}L_.exports=yRe});var Y_=w((Mat,j_)=>{var wRe=N_(),BRe=lD(),bRe=G_();function QRe(t){return BRe(t)?bRe(t):wRe(t)}j_.exports=QRe});var J_=w((Kat,q_)=>{var vRe=D_(),SRe=lD(),kRe=Y_(),xRe=of();function PRe(t){return function(e){e=xRe(e);var r=SRe(e)?kRe(e):void 0,i=r?r[0]:e.charAt(0),n=r?vRe(r,1).join(""):e.slice(1);return i[t]()+n}}q_.exports=PRe});var z_=w((Uat,W_)=>{var DRe=J_(),RRe=DRe("toUpperCase");W_.exports=RRe});var rB=w((Hat,__)=>{var FRe=of(),NRe=z_();function LRe(t){return NRe(FRe(t).toLowerCase())}__.exports=LRe});var V_=w((Gat,iB)=>{function TRe(){var t=0,e=1,r=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,m=15,y=16,b=17,S=0,k=1,T=2,Y=3,j=4;function Z(A,oe){return 55296<=A.charCodeAt(oe)&&A.charCodeAt(oe)<=56319&&56320<=A.charCodeAt(oe+1)&&A.charCodeAt(oe+1)<=57343}function J(A,oe){oe===void 0&&(oe=0);var le=A.charCodeAt(oe);if(55296<=le&&le<=56319&&oe=1){var X=A.charCodeAt(oe-1),O=le;return 55296<=X&&X<=56319?(X-55296)*1024+(O-56320)+65536:O}return le}function re(A,oe,le){var X=[A].concat(oe).concat([le]),O=X[X.length-2],L=le,pe=X.lastIndexOf(p);if(pe>1&&X.slice(1,pe).every(function(te){return te==i})&&[i,h,b].indexOf(A)==-1)return T;var Ce=X.lastIndexOf(n);if(Ce>0&&X.slice(1,Ce).every(function(te){return te==n})&&[f,n].indexOf(O)==-1)return X.filter(function(te){return te==n}).length%2==1?Y:j;if(O==t&&L==e)return S;if(O==r||O==t||O==e)return L==p&&oe.every(function(te){return te==i})?T:k;if(L==r||L==t||L==e)return k;if(O==o&&(L==o||L==a||L==c||L==u))return S;if((O==c||O==a)&&(L==a||L==l))return S;if((O==u||O==l)&&L==l)return S;if(L==i||L==m)return S;if(L==s)return S;if(O==f)return S;var Oe=X.indexOf(i)!=-1?X.lastIndexOf(i)-1:X.length-2;return[h,b].indexOf(X[Oe])!=-1&&X.slice(Oe+1,-1).every(function(te){return te==i})&&L==p||O==m&&[y,b].indexOf(L)!=-1?S:oe.indexOf(n)!=-1?T:O==n&&L==n?S:k}this.nextBreak=function(A,oe){if(oe===void 0&&(oe=0),oe<0)return 0;if(oe>=A.length-1)return A.length;for(var le=ee(J(A,oe)),X=[],O=oe+1;O{var ORe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,nB;function MRe(){if(nB)return nB;if(typeof Intl.Segmenter!="undefined"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return nB=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=V_(),e=new t;return nB=r=>e.splitGraphemes(r)}}X_.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=r-e,n="",s=0,o=0;for(;t.length>0;){let a=t.match(ORe)||[t,t,void 0],l=MRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]!="undefined"&&(n+=a[2]),t=t.slice(a[0].length)}return n}});var af=w((mAt,g6)=>{"use strict";var f6=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]),CAt=g6.exports=t=>t?Object.keys(t).map(e=>[f6.has(e)?f6.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var Af=w((EAt,h6)=>{"use strict";var XRe=require("events"),p6=require("stream"),Jd=bp(),d6=require("string_decoder").StringDecoder,oA=Symbol("EOF"),Wd=Symbol("maybeEmitEnd"),pl=Symbol("emittedEnd"),cB=Symbol("emittingEnd"),uB=Symbol("closed"),C6=Symbol("read"),pD=Symbol("flush"),m6=Symbol("flushChunk"),Nn=Symbol("encoding"),aA=Symbol("decoder"),gB=Symbol("flowing"),zd=Symbol("paused"),_d=Symbol("resume"),pn=Symbol("bufferLength"),E6=Symbol("bufferPush"),dD=Symbol("bufferShift"),_i=Symbol("objectMode"),Vi=Symbol("destroyed"),I6=global._MP_NO_ITERATOR_SYMBOLS_!=="1",ZRe=I6&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),$Re=I6&&Symbol.iterator||Symbol("iterator not implemented"),y6=t=>t==="end"||t==="finish"||t==="prefinish",eFe=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,tFe=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t);h6.exports=class w6 extends p6{constructor(e){super();this[gB]=!1,this[zd]=!1,this.pipes=new Jd,this.buffer=new Jd,this[_i]=e&&e.objectMode||!1,this[_i]?this[Nn]=null:this[Nn]=e&&e.encoding||null,this[Nn]==="buffer"&&(this[Nn]=null),this[aA]=this[Nn]?new d6(this[Nn]):null,this[oA]=!1,this[pl]=!1,this[cB]=!1,this[uB]=!1,this.writable=!0,this.readable=!0,this[pn]=0,this[Vi]=!1}get bufferLength(){return this[pn]}get encoding(){return this[Nn]}set encoding(e){if(this[_i])throw new Error("cannot set encoding in objectMode");if(this[Nn]&&e!==this[Nn]&&(this[aA]&&this[aA].lastNeed||this[pn]))throw new Error("cannot change encoding");this[Nn]!==e&&(this[aA]=e?new d6(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[aA].write(r)))),this[Nn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[_i]}set objectMode(e){this[_i]=this[_i]||!!e}write(e,r,i){if(this[oA])throw new Error("write after end");return this[Vi]?(this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0):(typeof r=="function"&&(i=r,r="utf8"),r||(r="utf8"),!this[_i]&&!Buffer.isBuffer(e)&&(tFe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):eFe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),!this.objectMode&&!e.length?(this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing):(typeof e=="string"&&!this[_i]&&!(r===this[Nn]&&!this[aA].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Nn]&&(e=this[aA].write(e)),this.flowing?(this[pn]!==0&&this[pD](!0),this.emit("data",e)):this[E6](e),this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing))}read(e){if(this[Vi])return null;try{return this[pn]===0||e===0||e>this[pn]?null:(this[_i]&&(e=null),this.buffer.length>1&&!this[_i]&&(this.encoding?this.buffer=new Jd([Array.from(this.buffer).join("")]):this.buffer=new Jd([Buffer.concat(Array.from(this.buffer),this[pn])])),this[C6](e||null,this.buffer.head.value))}finally{this[Wd]()}}[C6](e,r){return e===r.length||e===null?this[dD]():(this.buffer.head.value=r.slice(e),r=r.slice(0,e),this[pn]-=e),this.emit("data",r),!this.buffer.length&&!this[oA]&&this.emit("drain"),r}end(e,r,i){return typeof e=="function"&&(i=e,e=null),typeof r=="function"&&(i=r,r="utf8"),e&&this.write(e,r),i&&this.once("end",i),this[oA]=!0,this.writable=!1,(this.flowing||!this[zd])&&this[Wd](),this}[_d](){this[Vi]||(this[zd]=!1,this[gB]=!0,this.emit("resume"),this.buffer.length?this[pD]():this[oA]?this[Wd]():this.emit("drain"))}resume(){return this[_d]()}pause(){this[gB]=!1,this[zd]=!0}get destroyed(){return this[Vi]}get flowing(){return this[gB]}get paused(){return this[zd]}[E6](e){return this[_i]?this[pn]+=1:this[pn]+=e.length,this.buffer.push(e)}[dD](){return this.buffer.length&&(this[_i]?this[pn]-=1:this[pn]-=this.buffer.head.value.length),this.buffer.shift()}[pD](e){do;while(this[m6](this[dD]()));!e&&!this.buffer.length&&!this[oA]&&this.emit("drain")}[m6](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Vi])return;let i=this[pl];r=r||{},e===process.stdout||e===process.stderr?r.end=!1:r.end=r.end!==!1;let n={dest:e,opts:r,ondrain:s=>this[_d]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[_d](),i&&n.opts.end&&n.dest.end(),e}addListener(e,r){return this.on(e,r)}on(e,r){try{return super.on(e,r)}finally{e==="data"&&!this.pipes.length&&!this.flowing?this[_d]():y6(e)&&this[pl]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[pl]}[Wd](){!this[cB]&&!this[pl]&&!this[Vi]&&this.buffer.length===0&&this[oA]&&(this[cB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[uB]&&this.emit("close"),this[cB]=!1)}emit(e,r){if(e!=="error"&&e!=="close"&&e!==Vi&&this[Vi])return;if(e==="data"){if(!r)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(r)===!1&&this.pause())}else if(e==="end"){if(this[pl]===!0)return;this[pl]=!0,this.readable=!1,this[aA]&&(r=this[aA].end(),r&&(this.pipes.forEach(n=>n.dest.write(r)),super.emit("data",r))),this.pipes.forEach(n=>{n.dest.removeListener("drain",n.ondrain),n.opts.end&&n.dest.end()})}else if(e==="close"&&(this[uB]=!0,!this[pl]&&!this[Vi]))return;let i=new Array(arguments.length);if(i[0]=e,i[1]=r,arguments.length>2)for(let n=2;n{e.push(i),this[_i]||(e.dataLength+=i.length)}),r.then(()=>e)}concat(){return this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this[Nn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Vi,()=>r(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",i=>r(i))})}[ZRe](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[oA])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[oA]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Vi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[$Re](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Vi]?(e?this.emit("error",e):this.emit(Vi),this):(this[Vi]=!0,this.buffer=new Jd,this[pn]=0,typeof this.close=="function"&&!this[uB]&&this.close(),e?this.emit("error",e):this.emit(Vi),this)}static isStream(e){return!!e&&(e instanceof w6||e instanceof p6||e instanceof XRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var b6=w((IAt,B6)=>{var rFe=require("zlib").constants||{ZLIB_VERNUM:4736};B6.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:Infinity,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},rFe))});var QD=w(os=>{"use strict";var CD=require("assert"),dl=require("buffer").Buffer,Q6=require("zlib"),zc=os.constants=b6(),iFe=Af(),v6=dl.concat,_c=Symbol("_superWrite"),Vd=class extends Error{constructor(e){super("zlib: "+e.message);this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},nFe=Symbol("opts"),Xd=Symbol("flushFlag"),S6=Symbol("finishFlushFlag"),mD=Symbol("fullFlushFlag"),pr=Symbol("handle"),fB=Symbol("onError"),lf=Symbol("sawError"),ED=Symbol("level"),ID=Symbol("strategy"),yD=Symbol("ended"),yAt=Symbol("_defaultFullFlush"),wD=class extends iFe{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e);this[lf]=!1,this[yD]=!1,this[nFe]=e,this[Xd]=e.flush,this[S6]=e.finishFlush;try{this[pr]=new Q6[r](e)}catch(i){throw new Vd(i)}this[fB]=i=>{this[lf]||(this[lf]=!0,this.close(),this.emit("error",i))},this[pr].on("error",i=>this[fB](new Vd(i))),this.once("end",()=>this.close)}close(){this[pr]&&(this[pr].close(),this[pr]=null,this.emit("close"))}reset(){if(!this[lf])return CD(this[pr],"zlib binding closed"),this[pr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[mD]),this.write(Object.assign(dl.alloc(0),{[Xd]:e})))}end(e,r,i){return e&&this.write(e,r),this.flush(this[S6]),this[yD]=!0,super.end(null,null,i)}get ended(){return this[yD]}write(e,r,i){if(typeof r=="function"&&(i=r,r="utf8"),typeof e=="string"&&(e=dl.from(e,r)),this[lf])return;CD(this[pr],"zlib binding closed");let n=this[pr]._handle,s=n.close;n.close=()=>{};let o=this[pr].close;this[pr].close=()=>{},dl.concat=c=>c;let a;try{let c=typeof e[Xd]=="number"?e[Xd]:this[Xd];a=this[pr]._processChunk(e,c),dl.concat=v6}catch(c){dl.concat=v6,this[fB](new Vd(c))}finally{this[pr]&&(this[pr]._handle=n,n.close=s,this[pr].close=o,this[pr].removeAllListeners("error"))}this[pr]&&this[pr].on("error",c=>this[fB](new Vd(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[_c](dl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[pr].params(e,r)}finally{this[pr].flush=i}this[pr]&&(this[ED]=e,this[ID]=r)}}}},k6=class extends Cl{constructor(e){super(e,"Deflate")}},x6=class extends Cl{constructor(e){super(e,"Inflate")}},BD=Symbol("_portable"),P6=class extends Cl{constructor(e){super(e,"Gzip");this[BD]=e&&!!e.portable}[_c](e){return this[BD]?(this[BD]=!1,e[9]=255,super[_c](e)):super[_c](e)}},D6=class extends Cl{constructor(e){super(e,"Gunzip")}},R6=class extends Cl{constructor(e){super(e,"DeflateRaw")}},F6=class extends Cl{constructor(e){super(e,"InflateRaw")}},N6=class extends Cl{constructor(e){super(e,"Unzip")}},bD=class extends wD{constructor(e,r){e=e||{},e.flush=e.flush||zc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||zc.BROTLI_OPERATION_FINISH,super(e,r),this[mD]=zc.BROTLI_OPERATION_FLUSH}},L6=class extends bD{constructor(e){super(e,"BrotliCompress")}},T6=class extends bD{constructor(e){super(e,"BrotliDecompress")}};os.Deflate=k6;os.Inflate=x6;os.Gzip=P6;os.Gunzip=D6;os.DeflateRaw=R6;os.InflateRaw=F6;os.Unzip=N6;typeof Q6.BrotliCompress=="function"?(os.BrotliCompress=L6,os.BrotliDecompress=T6):os.BrotliCompress=os.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var Zd=w(hB=>{"use strict";hB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);hB.code=new Map(Array.from(hB.name).map(t=>[t[1],t[0]]))});var $d=w((vAt,O6)=>{"use strict";var bAt=Zd(),sFe=Af(),vD=Symbol("slurp");O6.exports=class extends sFe{constructor(e,r,i){super();switch(this.pause(),this.extended=r,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,r&&this[vD](r),i&&this[vD](i,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-r),this.blockRemain=Math.max(0,n-r),this.ignore?!0:i>=r?super.write(e):super.write(e.slice(0,i))}[vD](e,r){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(r&&i==="path")&&(this[i]=e[i])}}});var U6=w(SD=>{"use strict";var SAt=SD.encode=(t,e)=>{if(Number.isSafeInteger(t))t<0?aFe(t,e):oFe(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},oFe=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},aFe=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var i=e.length;i>1;i--){var n=t&255;t=Math.floor(t/256),r?e[i-1]=M6(n):n===0?e[i-1]=0:(r=!0,e[i-1]=K6(n))}},kAt=SD.parse=t=>{var e=t[t.length-1],r=t[0],i;if(r===128)i=lFe(t.slice(1,t.length));else if(r===255)i=AFe(t);else throw Error("invalid base256 encoding");if(!Number.isSafeInteger(i))throw Error("parsed number outside of javascript safe integer range");return i},AFe=t=>{for(var e=t.length,r=0,i=!1,n=e-1;n>-1;n--){var s=t[n],o;i?o=M6(s):s===0?o=s:(i=!0,o=K6(s)),o!==0&&(r-=o*Math.pow(256,e-n-1))}return r},lFe=t=>{for(var e=t.length,r=0,i=e-1;i>-1;i--){var n=t[i];n!==0&&(r+=n*Math.pow(256,e-i-1))}return r},M6=t=>(255^t)&255,K6=t=>(255^t)+1&255});var uf=w((PAt,H6)=>{"use strict";var kD=Zd(),cf=require("path").posix,G6=U6(),xD=Symbol("slurp"),as=Symbol("type"),j6=class{constructor(e,r,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[as]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,i,n):e&&this.set(e)}decode(e,r,i,n){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Vc(e,r,100),this.mode=ml(e,r+100,8),this.uid=ml(e,r+108,8),this.gid=ml(e,r+116,8),this.size=ml(e,r+124,12),this.mtime=PD(e,r+136,12),this.cksum=ml(e,r+148,12),this[xD](i),this[xD](n,!0),this[as]=Vc(e,r+156,1),this[as]===""&&(this[as]="0"),this[as]==="0"&&this.path.substr(-1)==="/"&&(this[as]="5"),this[as]==="5"&&(this.size=0),this.linkpath=Vc(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Vc(e,r+265,32),this.gname=Vc(e,r+297,32),this.devmaj=ml(e,r+329,8),this.devmin=ml(e,r+337,8),e[r+475]!==0){let o=Vc(e,r+345,155);this.path=o+"/"+this.path}else{let o=Vc(e,r+345,130);o&&(this.path=o+"/"+this.path),this.atime=PD(e,r+476,12),this.ctime=PD(e,r+488,12)}let s=8*32;for(let o=r;o=r+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=cFe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=Xc(e,r,100,s)||this.needPax,this.needPax=El(e,r+100,8,this.mode)||this.needPax,this.needPax=El(e,r+108,8,this.uid)||this.needPax,this.needPax=El(e,r+116,8,this.gid)||this.needPax,this.needPax=El(e,r+124,12,this.size)||this.needPax,this.needPax=DD(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[as].charCodeAt(0),this.needPax=Xc(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Xc(e,r+265,32,this.uname)||this.needPax,this.needPax=Xc(e,r+297,32,this.gname)||this.needPax,this.needPax=El(e,r+329,8,this.devmaj)||this.needPax,this.needPax=El(e,r+337,8,this.devmin)||this.needPax,this.needPax=Xc(e,r+345,i,o)||this.needPax,e[r+475]!==0?this.needPax=Xc(e,r+345,155,o)||this.needPax:(this.needPax=Xc(e,r+345,130,o)||this.needPax,this.needPax=DD(e,r+476,12,this.atime)||this.needPax,this.needPax=DD(e,r+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=r;l{let r=100,i=t,n="",s,o=cf.parse(t).root||".";if(Buffer.byteLength(i)r&&Buffer.byteLength(n)<=e?s=[i.substr(0,r-1),n,!0]:(i=cf.join(cf.basename(n),i),n=cf.dirname(n));while(n!==o&&!s);s||(s=[t.substr(0,r-1),"",!0])}return s},Vc=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),PD=(t,e,r)=>uFe(ml(t,e,r)),uFe=t=>t===null?null:new Date(t*1e3),ml=(t,e,r)=>t[e]&128?G6.parse(t.slice(e,e+r)):gFe(t,e,r),fFe=t=>isNaN(t)?null:t,gFe=(t,e,r)=>fFe(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),hFe={12:8589934591,8:2097151},El=(t,e,r,i)=>i===null?!1:i>hFe[r]||i<0?(G6.encode(i,t.slice(e,e+r)),!0):(pFe(t,e,r,i),!1),pFe=(t,e,r,i)=>t.write(dFe(i,r),e,r,"ascii"),dFe=(t,e)=>CFe(Math.floor(t).toString(8),e),CFe=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",DD=(t,e,r,i)=>i===null?!1:El(t,e,r,i.getTime()/1e3),mFe=new Array(156).join("\0"),Xc=(t,e,r,i)=>i===null?!1:(t.write(i+mFe,e,r,"utf8"),i.length!==Buffer.byteLength(i)||i.length>r);H6.exports=j6});var dB=w((DAt,Y6)=>{"use strict";var EFe=uf(),IFe=require("path"),pB=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),i=512*Math.ceil(1+r/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new EFe({path:("PaxHeader/"+IFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,r,"utf8");for(let s=r+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};pB.parse=(t,e,r)=>new pB(yFe(wFe(t),e),r);var yFe=(t,e)=>e?Object.keys(t).reduce((r,i)=>(r[i]=t[i],r),e):t,wFe=t=>t.replace(/\n$/,"").split(` +`).reduce(BFe,Object.create(null)),BFe=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return t;let s=i.join("=");return t[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,t};Y6.exports=pB});var CB=w((RAt,q6)=>{"use strict";q6.exports=t=>class extends t{warn(e,r,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=r instanceof Error&&r.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(r instanceof Error&&(i=Object.assign(r,i),r=r.message),this.emit("warn",i.tarCode,r,i)):r instanceof Error?this.emit("error",Object.assign(r,i)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),i))}}});var FD=w((FAt,J6)=>{"use strict";var mB=["|","<",">","?",":"],RD=mB.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),bFe=new Map(mB.map((t,e)=>[t,RD[e]])),QFe=new Map(RD.map((t,e)=>[t,mB[e]]));J6.exports={encode:t=>mB.reduce((e,r)=>e.split(r).join(bFe.get(r)),t),decode:t=>RD.reduce((e,r)=>e.split(r).join(QFe.get(r)),t)}});var z6=w((NAt,W6)=>{"use strict";W6.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&~18),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var UD=w((KAt,_6)=>{"use strict";var V6=Af(),X6=dB(),Z6=uf(),LAt=$d(),ra=require("fs"),gf=require("path"),TAt=Zd(),vFe=16*1024*1024,$6=Symbol("process"),eV=Symbol("file"),tV=Symbol("directory"),ND=Symbol("symlink"),rV=Symbol("hardlink"),eC=Symbol("header"),EB=Symbol("read"),LD=Symbol("lstat"),IB=Symbol("onlstat"),TD=Symbol("onread"),OD=Symbol("onreadlink"),MD=Symbol("openfile"),KD=Symbol("onopenfile"),Zc=Symbol("close"),yB=Symbol("mode"),iV=CB(),SFe=FD(),nV=z6(),wB=iV(class extends V6{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||vFe,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=r.cwd||process.cwd(),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(!this.preservePaths&&gf.win32.isAbsolute(e)){let n=gf.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=SFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=r.absolute||gf.resolve(this.cwd,e),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[IB](this.statCache.get(this.absolute)):this[LD]()}[LD](){ra.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[IB](r)})}[IB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=kFe(e),this.emit("stat",e),this[$6]()}[$6](){switch(this.type){case"File":return this[eV]();case"Directory":return this[tV]();case"SymbolicLink":return this[ND]();default:return this.end()}}[yB](e){return nV(e,this.type==="Directory",this.portable)}[eC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new Z6({path:this.path,linkpath:this.linkpath,mode:this[yB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new X6({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[tV](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[eC](),this.end()}[ND](){ra.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[OD](r)})}[OD](e){this.linkpath=e.replace(/\\/g,"/"),this[eC](),this.end()}[rV](e){this.type="Link",this.linkpath=gf.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[eC](),this.end()}[eV](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[rV](r)}this.linkCache.set(e,this.absolute)}if(this[eC](),this.stat.size===0)return this.end();this[MD]()}[MD](){ra.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[KD](r)})}[KD](e){let r=512*Math.ceil(this.stat.size/512),i=Math.min(r,this.maxReadSize),n=Buffer.allocUnsafe(i);this[EB](e,n,0,n.length,0,this.stat.size,r)}[EB](e,r,i,n,s,o,a){ra.read(e,r,i,n,s,(l,c)=>{if(l)return this[Zc](e,()=>this.emit("error",l));this[TD](e,r,i,n,s,o,a,c)})}[Zc](e,r){ra.close(e,r)}[TD](e,r,i,n,s,o,a,l){if(l<=0&&o>0){let u=new Error("encountered unexpected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[Zc](e,()=>this.emit("error",u))}if(l>o){let u=new Error("did not encounter expected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[Zc](e,()=>this.emit("error",u))}if(l===o)for(let u=l;uu?this.emit("error",u):this.end());i>=n&&(r=Buffer.allocUnsafe(n),i=0),n=r.length-i,this[EB](e,r,i,n,s,o,a)}}),sV=class extends wB{constructor(e,r){super(e,r)}[LD](){this[IB](ra.lstatSync(this.absolute))}[ND](){this[OD](ra.readlinkSync(this.absolute))}[MD](){this[KD](ra.openSync(this.absolute,"r"))}[EB](e,r,i,n,s,o,a){let l=!0;try{let c=ra.readSync(e,r,i,n,s);this[TD](e,r,i,n,s,o,a,c),l=!1}finally{if(l)try{this[Zc](e,()=>{})}catch(c){}}}[Zc](e,r){ra.closeSync(e),r()}},xFe=iV(class extends V6{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[yB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(gf.isAbsolute(this.path)&&!this.preservePaths){let n=gf.parse(this.path);i=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new Z6({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new X6({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[yB](e){return nV(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});wB.Sync=sV;wB.Tar=xFe;var kFe=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";_6.exports=wB});var PB=w((HAt,oV)=>{"use strict";var HD=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},PFe=Af(),DFe=QD(),RFe=$d(),GD=UD(),FFe=GD.Sync,NFe=GD.Tar,LFe=bp(),aV=Buffer.alloc(1024),BB=Symbol("onStat"),bB=Symbol("ended"),ia=Symbol("queue"),ff=Symbol("current"),$c=Symbol("process"),QB=Symbol("processing"),AV=Symbol("processJob"),na=Symbol("jobs"),jD=Symbol("jobDone"),vB=Symbol("addFSEntry"),lV=Symbol("addTarEntry"),YD=Symbol("stat"),qD=Symbol("readdir"),SB=Symbol("onreaddir"),kB=Symbol("pipe"),cV=Symbol("entry"),JD=Symbol("entryOpt"),WD=Symbol("writeEntryClass"),uV=Symbol("write"),zD=Symbol("ondrain"),xB=require("fs"),gV=require("path"),TFe=CB(),_D=TFe(class extends PFe{constructor(e){super(e);e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[WD]=GD,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new DFe.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[zD]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[zD]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[ia]=new LFe,this[na]=0,this.jobs=+e.jobs||4,this[QB]=!1,this[bB]=!1}[uV](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[bB]=!0,this[$c](),this}write(e){if(this[bB])throw new Error("write after end");return e instanceof RFe?this[lV](e):this[vB](e),this.flowing}[lV](e){let r=gV.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),!this.filter(e.path,e))e.resume();else{let i=new HD(e.path,r,!1);i.entry=new NFe(e,this[JD](i)),i.entry.on("end",n=>this[jD](i)),this[na]+=1,this[ia].push(i)}this[$c]()}[vB](e){let r=gV.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[ia].push(new HD(e,r)),this[$c]()}[YD](e){e.pending=!0,this[na]+=1;let r=this.follow?"stat":"lstat";xB[r](e.absolute,(i,n)=>{e.pending=!1,this[na]-=1,i?this.emit("error",i):this[BB](e,n)})}[BB](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[$c]()}[qD](e){e.pending=!0,this[na]+=1,xB.readdir(e.absolute,(r,i)=>{if(e.pending=!1,this[na]-=1,r)return this.emit("error",r);this[SB](e,i)})}[SB](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[$c]()}[$c](){if(!this[QB]){this[QB]=!0;for(let e=this[ia].head;e!==null&&this[na]this.warn(r,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[cV](e){this[na]+=1;try{return new this[WD](e.path,this[JD](e)).on("end",()=>this[jD](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[zD](){this[ff]&&this[ff].entry&&this[ff].entry.resume()}[kB](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[vB](o+n)});let r=e.entry,i=this.zip;i?r.on("data",n=>{i.write(n)||r.pause()}):r.on("data",n=>{super.write(n)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),fV=class extends _D{constructor(e){super(e);this[WD]=FFe}pause(){}resume(){}[YD](e){let r=this.follow?"statSync":"lstatSync";this[BB](e,xB[r](e.absolute))}[qD](e,r){this[SB](e,xB.readdirSync(e.absolute))}[kB](e){let r=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[vB](o+n)}),i?r.on("data",n=>{i.write(n)}):r.on("data",n=>{super[uV](n)})}};_D.Sync=fV;oV.exports=_D});var Ef=w(tC=>{"use strict";var OFe=Af(),MFe=require("events").EventEmitter,Ks=require("fs"),DB=process.binding("fs"),GAt=DB.writeBuffers,KFe=DB.FSReqWrap||DB.FSReqCallback,hf=Symbol("_autoClose"),sa=Symbol("_close"),rC=Symbol("_ended"),or=Symbol("_fd"),hV=Symbol("_finished"),eu=Symbol("_flags"),VD=Symbol("_flush"),XD=Symbol("_handleChunk"),ZD=Symbol("_makeBuf"),$D=Symbol("_mode"),RB=Symbol("_needDrain"),pf=Symbol("_onerror"),df=Symbol("_onopen"),eR=Symbol("_onread"),tu=Symbol("_onwrite"),Il=Symbol("_open"),yl=Symbol("_path"),ru=Symbol("_pos"),oa=Symbol("_queue"),Cf=Symbol("_read"),pV=Symbol("_readSize"),wl=Symbol("_reading"),FB=Symbol("_remain"),dV=Symbol("_size"),NB=Symbol("_write"),mf=Symbol("_writing"),LB=Symbol("_defaultFlag"),tR=class extends OFe{constructor(e,r){if(r=r||{},super(r),this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[or]=typeof r.fd=="number"?r.fd:null,this[yl]=e,this[pV]=r.readSize||16*1024*1024,this[wl]=!1,this[dV]=typeof r.size=="number"?r.size:Infinity,this[FB]=this[dV],this[hf]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[or]=="number"?this[Cf]():this[Il]()}get fd(){return this[or]}get path(){return this[yl]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Il](){Ks.open(this[yl],"r",(e,r)=>this[df](e,r))}[df](e,r){e?this[pf](e):(this[or]=r,this.emit("open",r),this[Cf]())}[ZD](){return Buffer.allocUnsafe(Math.min(this[pV],this[FB]))}[Cf](){if(!this[wl]){this[wl]=!0;let e=this[ZD]();if(e.length===0)return process.nextTick(()=>this[eR](null,0,e));Ks.read(this[or],e,0,e.length,null,(r,i,n)=>this[eR](r,i,n))}}[eR](e,r,i){this[wl]=!1,e?this[pf](e):this[XD](r,i)&&this[Cf]()}[sa](){this[hf]&&typeof this[or]=="number"&&(Ks.close(this[or],e=>this.emit("close")),this[or]=null)}[pf](e){this[wl]=!0,this[sa](),this.emit("error",e)}[XD](e,r){let i=!1;return this[FB]-=e,e>0&&(i=super.write(ethis[df](e,r))}[df](e,r){this[LB]&&this[eu]==="r+"&&e&&e.code==="ENOENT"?(this[eu]="w",this[Il]()):e?this[pf](e):(this[or]=r,this.emit("open",r),this[VD]())}end(e,r){e&&this.write(e,r),this[rC]=!0,!this[mf]&&!this[oa].length&&typeof this[or]=="number"&&this[tu](null,0)}write(e,r){return typeof e=="string"&&(e=new Buffer(e,r)),this[rC]?(this.emit("error",new Error("write() after end()")),!1):this[or]===null||this[mf]||this[oa].length?(this[oa].push(e),this[RB]=!0,!1):(this[mf]=!0,this[NB](e),!0)}[NB](e){Ks.write(this[or],e,0,e.length,this[ru],(r,i)=>this[tu](r,i))}[tu](e,r){e?this[pf](e):(this[ru]!==null&&(this[ru]+=r),this[oa].length?this[VD]():(this[mf]=!1,this[rC]&&!this[hV]?(this[hV]=!0,this[sa](),this.emit("finish")):this[RB]&&(this[RB]=!1,this.emit("drain"))))}[VD](){if(this[oa].length===0)this[rC]&&this[tu](null,0);else if(this[oa].length===1)this[NB](this[oa].pop());else{let e=this[oa];this[oa]=[],UFe(this[or],e,this[ru],(r,i)=>this[tu](r,i))}}[sa](){this[hf]&&typeof this[or]=="number"&&(Ks.close(this[or],e=>this.emit("close")),this[or]=null)}},mV=class extends rR{[Il](){let e;try{e=Ks.openSync(this[yl],this[eu],this[$D])}catch(r){if(this[LB]&&this[eu]==="r+"&&r&&r.code==="ENOENT")return this[eu]="w",this[Il]();throw r}this[df](null,e)}[sa](){if(this[hf]&&typeof this[or]=="number"){try{Ks.closeSync(this[or])}catch(e){}this[or]=null,this.emit("close")}}[NB](e){try{this[tu](null,Ks.writeSync(this[or],e,0,e.length,this[ru]))}catch(r){this[tu](r,0)}}},UFe=(t,e,r,i)=>{let n=(o,a)=>i(o,a,e),s=new KFe;s.oncomplete=n,DB.writeBuffers(t,e,r,s)};tC.ReadStream=tR;tC.ReadStreamSync=CV;tC.WriteStream=rR;tC.WriteStreamSync=mV});var sC=w((JAt,EV)=>{"use strict";var HFe=CB(),YAt=require("path"),GFe=uf(),jFe=require("events"),YFe=bp(),qFe=1024*1024,JFe=$d(),IV=dB(),WFe=QD(),iR=Buffer.from([31,139]),Us=Symbol("state"),iu=Symbol("writeEntry"),AA=Symbol("readEntry"),nR=Symbol("nextEntry"),yV=Symbol("processEntry"),Hs=Symbol("extendedHeader"),iC=Symbol("globalExtendedHeader"),Bl=Symbol("meta"),wV=Symbol("emitMeta"),yr=Symbol("buffer"),lA=Symbol("queue"),nu=Symbol("ended"),BV=Symbol("emittedEnd"),su=Symbol("emit"),Ln=Symbol("unzip"),TB=Symbol("consumeChunk"),OB=Symbol("consumeChunkSub"),sR=Symbol("consumeBody"),bV=Symbol("consumeMeta"),QV=Symbol("consumeHeader"),MB=Symbol("consuming"),oR=Symbol("bufferConcat"),aR=Symbol("maybeEnd"),nC=Symbol("writing"),bl=Symbol("aborted"),KB=Symbol("onDone"),ou=Symbol("sawValidEntry"),UB=Symbol("sawNullBlock"),HB=Symbol("sawEOF"),zFe=t=>!0;EV.exports=HFe(class extends jFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[ou]=null,this.on(KB,r=>{(this[Us]==="begin"||this[ou]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(KB,e.ondone):this.on(KB,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||qFe,this.filter=typeof e.filter=="function"?e.filter:zFe,this.writable=!0,this.readable=!1,this[lA]=new YFe,this[yr]=null,this[AA]=null,this[iu]=null,this[Us]="begin",this[Bl]="",this[Hs]=null,this[iC]=null,this[nu]=!1,this[Ln]=null,this[bl]=!1,this[UB]=!1,this[HB]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[QV](e,r){this[ou]===null&&(this[ou]=!1);let i;try{i=new GFe(e,r,this[Hs],this[iC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[UB]?(this[HB]=!0,this[Us]==="begin"&&(this[Us]="header"),this[su]("eof")):(this[UB]=!0,this[su]("nullBlock"));else if(this[UB]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[iu]=new JFe(i,this[Hs],this[iC]);if(!this[ou])if(s.remain){let o=()=>{s.invalid||(this[ou]=!0)};s.on("end",o)}else this[ou]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[su]("ignoredEntry",s),this[Us]="ignore",s.resume()):s.size>0&&(this[Bl]="",s.on("data",o=>this[Bl]+=o),this[Us]="meta"):(this[Hs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[su]("ignoredEntry",s),this[Us]=s.remain?"ignore":"header",s.resume()):(s.remain?this[Us]="body":(this[Us]="header",s.end()),this[AA]?this[lA].push(s):(this[lA].push(s),this[nR]())))}}}[yV](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[AA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[nR]()),r=!1)):(this[AA]=null,r=!1),r}[nR](){do;while(this[yV](this[lA].shift()));if(!this[lA].length){let e=this[AA];!e||e.flowing||e.size===e.remain?this[nC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[sR](e,r){let i=this[iu],n=i.blockRemain,s=n>=e.length&&r===0?e:e.slice(r,r+n);return i.write(s),i.blockRemain||(this[Us]="header",this[iu]=null,i.end()),s.length}[bV](e,r){let i=this[iu],n=this[sR](e,r);return this[iu]||this[wV](i),n}[su](e,r,i){!this[lA].length&&!this[AA]?this.emit(e,r,i):this[lA].push([e,r,i])}[wV](e){switch(this[su]("meta",this[Bl]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Hs]=IV.parse(this[Bl],this[Hs],!1);break;case"GlobalExtendedHeader":this[iC]=IV.parse(this[Bl],this[iC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Hs]=this[Hs]||Object.create(null),this[Hs].path=this[Bl].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Hs]=this[Hs]||Object.create(null),this[Hs].linkpath=this[Bl].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[bl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[bl])return;if(this[Ln]===null&&e){if(this[yr]&&(e=Buffer.concat([this[yr],e]),this[yr]=null),e.lengththis[TB](s)),this[Ln].on("error",s=>this.abort(s)),this[Ln].on("end",s=>{this[nu]=!0,this[TB]()}),this[nC]=!0;let n=this[Ln][i?"end":"write"](e);return this[nC]=!1,n}}this[nC]=!0,this[Ln]?this[Ln].write(e):this[TB](e),this[nC]=!1;let r=this[lA].length?!1:this[AA]?this[AA].flowing:!0;return!r&&!this[lA].length&&this[AA].once("drain",i=>this.emit("drain")),r}[oR](e){e&&!this[bl]&&(this[yr]=this[yr]?Buffer.concat([this[yr],e]):e)}[aR](){if(this[nu]&&!this[BV]&&!this[bl]&&!this[MB]){this[BV]=!0;let e=this[iu];if(e&&e.blockRemain){let r=this[yr]?this[yr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[yr]&&e.write(this[yr]),e.end()}this[su](KB)}}[TB](e){if(this[MB])this[oR](e);else if(!e&&!this[yr])this[aR]();else{if(this[MB]=!0,this[yr]){this[oR](e);let r=this[yr];this[yr]=null,this[OB](r)}else this[OB](e);for(;this[yr]&&this[yr].length>=512&&!this[bl]&&!this[HB];){let r=this[yr];this[yr]=null,this[OB](r)}this[MB]=!1}(!this[yr]||this[nu])&&this[aR]()}[OB](e){let r=0,i=e.length;for(;r+512<=i&&!this[bl]&&!this[HB];)switch(this[Us]){case"begin":case"header":this[QV](e,r),r+=512;break;case"ignore":case"body":r+=this[sR](e,r);break;case"meta":r+=this[bV](e,r);break;default:throw new Error("invalid state: "+this[Us])}r{"use strict";var _Fe=af(),SV=sC(),If=require("fs"),VFe=Ef(),kV=require("path"),WAt=vV.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=_Fe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&ZFe(i,e),i.noResume||XFe(i),i.file&&i.sync?$Fe(i):i.file?eNe(i,r):xV(i)},XFe=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},ZFe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||kV.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(kV.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},$Fe=t=>{let e=xV(t),r=t.file,i=!0,n;try{let s=If.statSync(r),o=t.maxReadSize||16*1024*1024;if(s.size{let r=new SV(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("end",o),If.stat(n,(l,c)=>{if(l)a(l);else{let u=new VFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},xV=t=>new SV(t)});var LV=w((XAt,PV)=>{"use strict";var tNe=af(),jB=PB(),_At=require("fs"),DV=Ef(),RV=GB(),FV=require("path"),VAt=PV.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=tNe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?rNe(i,e):i.file?iNe(i,e,r):i.sync?nNe(i,e):sNe(i,e)},rNe=(t,e)=>{let r=new jB.Sync(t),i=new DV.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(i),NV(r,e)},iNe=(t,e,r)=>{let i=new jB(t),n=new DV.WriteStream(t.file,{mode:t.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return AR(i,e),r?s.then(r,r):s},NV=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?RV({file:FV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},AR=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return RV({file:FV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>AR(t,e));t.add(r)}t.end()},nNe=(t,e)=>{let r=new jB.Sync(t);return NV(r,e),r},sNe=(t,e)=>{let r=new jB(t);return AR(r,e),r}});var lR=w((elt,TV)=>{"use strict";var oNe=af(),OV=PB(),ZAt=sC(),Gs=require("fs"),MV=Ef(),KV=GB(),UV=require("path"),HV=uf(),$At=TV.exports=(t,e,r)=>{let i=oNe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?aNe(i,e):ANe(i,e,r)},aNe=(t,e)=>{let r=new OV.Sync(t),i=!0,n,s;try{try{n=Gs.openSync(t.file,"r+")}catch(l){if(l.code==="ENOENT")n=Gs.openSync(t.file,"w+");else throw l}let o=Gs.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,t.mtimeCache&&t.mtimeCache.set(l.path,l.mtime)}i=!1,lNe(t,r,s,n,e)}finally{if(i)try{Gs.closeSync(n)}catch(o){}}},lNe=(t,e,r,i,n)=>{let s=new MV.WriteStreamSync(t.file,{fd:i,start:r});e.pipe(s),cNe(e,n)},ANe=(t,e,r)=>{e=Array.from(e);let i=new OV(t),n=(o,a,l)=>{let c=(p,m)=>{p?Gs.close(o,y=>l(p)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,m)=>{if(p)return c(p);if(g+=m,g<512&&m)return Gs.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new HV(f);if(!y.cksumValid)return c(null,u);let b=512*Math.ceil(y.size/512);if(u+b+512>a||(u+=b+512,u>=a))return c(null,u);t.mtimeCache&&t.mtimeCache.set(y.path,y.mtime),g=0,Gs.read(o,f,0,512,u,h)};Gs.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",Gs.open(t.file,l,c);if(u)return a(u);Gs.fstat(g,(f,h)=>{if(f)return a(f);n(g,h.size,(p,m)=>{if(p)return a(p);let y=new MV.WriteStream(t.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),GV(i,e)})})};Gs.open(t.file,l,c)});return r?s.then(r,r):s},cNe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?KV({file:UV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},GV=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return KV({file:UV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>GV(t,e));t.add(r)}t.end()}});var YV=w((rlt,jV)=>{"use strict";var uNe=af(),gNe=lR(),tlt=jV.exports=(t,e,r)=>{let i=uNe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),fNe(i),gNe(i,e,r)},fNe=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,i)=>e(r,i)&&!(t.mtimeCache.get(r)>i.mtime):(r,i)=>!(t.mtimeCache.get(r)>i.mtime)}});var WV=w((ilt,qV)=>{var{promisify:JV}=require("util"),Ql=require("fs"),hNe=t=>{if(!t)t={mode:511,fs:Ql};else if(typeof t=="object")t=N({mode:511,fs:Ql},t);else if(typeof t=="number")t={mode:t,fs:Ql};else if(typeof t=="string")t={mode:parseInt(t,8),fs:Ql};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||Ql.mkdir,t.mkdirAsync=JV(t.mkdir),t.stat=t.stat||t.fs.stat||Ql.stat,t.statAsync=JV(t.stat),t.statSync=t.statSync||t.fs.statSync||Ql.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||Ql.mkdirSync,t};qV.exports=hNe});var _V=w((nlt,zV)=>{var pNe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:dNe,parse:CNe}=require("path"),mNe=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=dNe(t),pNe==="win32"){let e=/[*|"<>?:]/,{root:r}=CNe(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};zV.exports=mNe});var e9=w((slt,VV)=>{var{dirname:XV}=require("path"),ZV=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(i=>i.isDirectory()?r:void 0,i=>i.code==="ENOENT"?ZV(t,XV(e),e):void 0),$V=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(i){return i.code==="ENOENT"?$V(t,XV(e),e):void 0}};VV.exports={findMade:ZV,findMadeSync:$V}});var gR=w((olt,t9)=>{var{dirname:r9}=require("path"),cR=(t,e,r)=>{e.recursive=!1;let i=r9(t);return i===t?e.mkdirAsync(t,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(t,e).then(()=>r||t,n=>{if(n.code==="ENOENT")return cR(i,e).then(s=>cR(t,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(t).then(s=>{if(s.isDirectory())return r;throw n},()=>{throw n})})},uR=(t,e,r)=>{let i=r9(t);if(e.recursive=!1,i===t)try{return e.mkdirSync(t,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(t,e),r||t}catch(n){if(n.code==="ENOENT")return uR(t,e,uR(i,e,r));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(t).isDirectory())throw n}catch(s){throw n}}};t9.exports={mkdirpManual:cR,mkdirpManualSync:uR}});var s9=w((alt,i9)=>{var{dirname:n9}=require("path"),{findMade:ENe,findMadeSync:INe}=e9(),{mkdirpManual:yNe,mkdirpManualSync:wNe}=gR(),BNe=(t,e)=>(e.recursive=!0,n9(t)===t?e.mkdirAsync(t,e):ENe(e,t).then(i=>e.mkdirAsync(t,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return yNe(t,e);throw n}))),bNe=(t,e)=>{if(e.recursive=!0,n9(t)===t)return e.mkdirSync(t,e);let i=INe(e,t);try{return e.mkdirSync(t,e),i}catch(n){if(n.code==="ENOENT")return wNe(t,e);throw n}};i9.exports={mkdirpNative:BNe,mkdirpNativeSync:bNe}});var l9=w((Alt,o9)=>{var a9=require("fs"),QNe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,fR=QNe.replace(/^v/,"").split("."),A9=+fR[0]>10||+fR[0]==10&&+fR[1]>=12,vNe=A9?t=>t.mkdir===a9.mkdir:()=>!1,SNe=A9?t=>t.mkdirSync===a9.mkdirSync:()=>!1;o9.exports={useNative:vNe,useNativeSync:SNe}});var p9=w((llt,c9)=>{var yf=WV(),wf=_V(),{mkdirpNative:u9,mkdirpNativeSync:g9}=s9(),{mkdirpManual:f9,mkdirpManualSync:h9}=gR(),{useNative:kNe,useNativeSync:xNe}=l9(),Bf=(t,e)=>(t=wf(t),e=yf(e),kNe(e)?u9(t,e):f9(t,e)),PNe=(t,e)=>(t=wf(t),e=yf(e),xNe(e)?g9(t,e):h9(t,e));Bf.sync=PNe;Bf.native=(t,e)=>u9(wf(t),yf(e));Bf.manual=(t,e)=>f9(wf(t),yf(e));Bf.nativeSync=(t,e)=>g9(wf(t),yf(e));Bf.manualSync=(t,e)=>h9(wf(t),yf(e));c9.exports=Bf});var w9=w((clt,d9)=>{"use strict";var js=require("fs"),au=require("path"),DNe=js.lchown?"lchown":"chown",RNe=js.lchownSync?"lchownSync":"chownSync",C9=js.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),m9=(t,e,r)=>{try{return js[RNe](t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},FNe=(t,e,r)=>{try{return js.chownSync(t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},NNe=C9?(t,e,r,i)=>n=>{!n||n.code!=="EISDIR"?i(n):js.chown(t,e,r,i)}:(t,e,r,i)=>i,hR=C9?(t,e,r)=>{try{return m9(t,e,r)}catch(i){if(i.code!=="EISDIR")throw i;FNe(t,e,r)}}:(t,e,r)=>m9(t,e,r),LNe=process.version,E9=(t,e,r)=>js.readdir(t,e,r),TNe=(t,e)=>js.readdirSync(t,e);/^v4\./.test(LNe)&&(E9=(t,e,r)=>js.readdir(t,r));var YB=(t,e,r,i)=>{js[DNe](t,e,r,NNe(t,e,r,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},I9=(t,e,r,i,n)=>{if(typeof e=="string")return js.lstat(au.resolve(t,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,I9(t,o,r,i,n)});if(e.isDirectory())pR(au.resolve(t,e.name),r,i,s=>{if(s)return n(s);let o=au.resolve(t,e.name);YB(o,r,i,n)});else{let s=au.resolve(t,e.name);YB(s,r,i,n)}},pR=(t,e,r,i)=>{E9(t,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return YB(t,e,r,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o==0)return YB(t,e,r,i)}};s.forEach(c=>I9(t,c,e,r,l))})},ONe=(t,e,r,i)=>{if(typeof e=="string")try{let n=js.lstatSync(au.resolve(t,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&y9(au.resolve(t,e.name),r,i),hR(au.resolve(t,e.name),r,i)},y9=(t,e,r)=>{let i;try{i=TNe(t,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return hR(t,e,r);throw n}return i&&i.length&&i.forEach(n=>ONe(t,n,e,r)),hR(t,e,r)};d9.exports=pR;pR.sync=y9});var v9=w((flt,dR)=>{"use strict";var B9=p9(),Ys=require("fs"),qB=require("path"),b9=w9(),CR=class extends Error{constructor(e,r){super("Cannot extract through symbolic link");this.path=r,this.symlink=e}get name(){return"SylinkError"}},oC=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'");this.path=e,this.code=r}get name(){return"CwdError"}},ult=dR.exports=(t,e,r)=>{let i=e.umask,n=e.mode|448,s=(n&i)!=0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=e.cwd,h=(y,b)=>{y?r(y):(g.set(t,!0),b&&l?b9(b,o,a,S=>h(S)):s?Ys.chmod(t,n,r):r())};if(g&&g.get(t)===!0)return h();if(t===f)return Ys.stat(t,(y,b)=>{(y||!b.isDirectory())&&(y=new oC(t,y&&y.code||"ENOTDIR")),h(y)});if(c)return B9(t,{mode:n}).then(y=>h(null,y),h);let m=qB.relative(f,t).split(/\/|\\/);JB(f,m,n,g,u,f,null,h)},JB=(t,e,r,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=t+"/"+l;if(i.get(c))return JB(c,e,r,i,n,s,o,a);Ys.mkdir(c,r,Q9(c,e,r,i,n,s,o,a))},Q9=(t,e,r,i,n,s,o,a)=>l=>{if(l){if(l.path&&qB.dirname(l.path)===s&&(l.code==="ENOTDIR"||l.code==="ENOENT"))return a(new oC(s,l.code));Ys.lstat(t,(c,u)=>{if(c)a(c);else if(u.isDirectory())JB(t,e,r,i,n,s,o,a);else if(n)Ys.unlink(t,g=>{if(g)return a(g);Ys.mkdir(t,r,Q9(t,e,r,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new CR(t,t+"/"+e.join("/")));a(l)}})}else o=o||t,JB(t,e,r,i,n,s,o,a)},glt=dR.exports.sync=(t,e)=>{let r=e.umask,i=e.mode|448,n=(i&r)!=0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=e.cwd,f=y=>{u.set(t,!0),y&&a&&b9.sync(y,s,o),n&&Ys.chmodSync(t,i)};if(u&&u.get(t)===!0)return f();if(t===g){let y=!1,b="ENOTDIR";try{y=Ys.statSync(t).isDirectory()}catch(S){b=S.code}finally{if(!y)throw new oC(t,b)}f();return}if(l)return f(B9.sync(t,i));let p=qB.relative(g,t).split(/\/|\\/),m=null;for(let y=p.shift(),b=g;y&&(b+="/"+y);y=p.shift())if(!u.get(b))try{Ys.mkdirSync(b,i),m=m||b,u.set(b,!0)}catch(S){if(S.path&&qB.dirname(S.path)===g&&(S.code==="ENOTDIR"||S.code==="ENOENT"))return new oC(g,S.code);let k=Ys.lstatSync(b);if(k.isDirectory()){u.set(b,!0);continue}else if(c){Ys.unlinkSync(b),Ys.mkdirSync(b,i),m=m||b,u.set(b,!0);continue}else if(k.isSymbolicLink())return new CR(b,b+"/"+p.join("/"))}return f(m)}});var x9=w((hlt,S9)=>{var k9=require("assert");S9.exports=()=>{let t=new Map,e=new Map,{join:r}=require("path"),i=u=>r(u).split(/[\\\/]/).slice(0,-1).reduce((g,f)=>g.length?g.concat(r(g[g.length-1],f)):[f],[]),n=new Set,s=u=>{let g=e.get(u);if(!g)throw new Error("function does not have any path reservations");return{paths:g.paths.map(f=>t.get(f)),dirs:[...g.dirs].map(f=>t.get(f))}},o=u=>{let{paths:g,dirs:f}=s(u);return g.every(h=>h[0]===u)&&f.every(h=>h[0]instanceof Set&&h[0].has(u))},a=u=>n.has(u)||!o(u)?!1:(n.add(u),u(()=>l(u)),!0),l=u=>{if(!n.has(u))return!1;let{paths:g,dirs:f}=e.get(u),h=new Set;return g.forEach(p=>{let m=t.get(p);k9.equal(m[0],u),m.length===1?t.delete(p):(m.shift(),typeof m[0]=="function"?h.add(m[0]):m[0].forEach(y=>h.add(y)))}),f.forEach(p=>{let m=t.get(p);k9(m[0]instanceof Set),m[0].size===1&&m.length===1?t.delete(p):m[0].size===1?(m.shift(),h.add(m[0])):m[0].delete(u)}),n.delete(u),h.forEach(p=>a(p)),!0};return{check:o,reserve:(u,g)=>{let f=new Set(u.map(h=>i(h)).reduce((h,p)=>h.concat(p)));return e.set(g,{dirs:f,paths:u}),u.forEach(h=>{let p=t.get(h);p?p.push(g):t.set(h,[g])}),f.forEach(h=>{let p=t.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(g):p.push(new Set([g])):t.set(h,[new Set([g])])}),a(g)}}}});var R9=w((plt,P9)=>{var MNe=process.env.__FAKE_PLATFORM__||process.platform,KNe=MNe==="win32",UNe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:HNe,O_TRUNC:GNe,O_WRONLY:jNe,UV_FS_O_FILEMAP:D9=0}=UNe.constants,YNe=KNe&&!!D9,qNe=512*1024,JNe=D9|GNe|HNe|jNe;P9.exports=YNe?t=>t"w"});var vR=w((Elt,F9)=>{"use strict";var WNe=require("assert"),dlt=require("events").EventEmitter,zNe=sC(),$t=require("fs"),_Ne=Ef(),cA=require("path"),mR=v9(),Clt=mR.sync,N9=FD(),VNe=x9(),L9=Symbol("onEntry"),ER=Symbol("checkFs"),T9=Symbol("checkFs2"),IR=Symbol("isReusable"),uA=Symbol("makeFs"),yR=Symbol("file"),wR=Symbol("directory"),WB=Symbol("link"),O9=Symbol("symlink"),M9=Symbol("hardlink"),K9=Symbol("unsupported"),mlt=Symbol("unknown"),U9=Symbol("checkPath"),bf=Symbol("mkdir"),dn=Symbol("onError"),zB=Symbol("pending"),H9=Symbol("pend"),Qf=Symbol("unpend"),BR=Symbol("ended"),bR=Symbol("maybeClose"),QR=Symbol("skip"),aC=Symbol("doChown"),AC=Symbol("uid"),lC=Symbol("gid"),G9=require("crypto"),j9=R9(),_B=()=>{throw new Error("sync function called cb somehow?!?")},XNe=(t,e)=>{if(process.platform!=="win32")return $t.unlink(t,e);let r=t+".DELETE."+G9.randomBytes(16).toString("hex");$t.rename(t,r,i=>{if(i)return e(i);$t.unlink(r,e)})},ZNe=t=>{if(process.platform!=="win32")return $t.unlinkSync(t);let e=t+".DELETE."+G9.randomBytes(16).toString("hex");$t.renameSync(t,e),$t.unlinkSync(e)},Y9=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,VB=class extends zNe{constructor(e){if(e||(e={}),e.ondone=r=>{this[BR]=!0,this[bR]()},super(e),this.reservations=VNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[zB]=0,this[BR]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform==="win32",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=cA.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[L9](r))}warn(e,r,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,r,i)}[bR](){this[BR]&&this[zB]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[U9](e){if(this.strip){let r=e.path.split(/\/|\\/);if(r.length=this.strip&&(e.linkpath=i.slice(this.strip).join("/"))}}if(!this.preservePaths){let r=e.path;if(r.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;if(cA.win32.isAbsolute(r)){let i=cA.win32.parse(r);e.path=r.substr(i.root.length);let n=i.root;this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:r})}}if(this.win32){let r=cA.win32.parse(e.path);e.path=r.root===""?N9.encode(e.path):r.root+N9.encode(e.path.substr(r.root.length))}return cA.isAbsolute(e.path)?e.absolute=e.path:e.absolute=cA.resolve(this.cwd,e.path),!0}[L9](e){if(!this[U9](e))return e.resume();switch(WNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[ER](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[K9](e)}}[dn](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[Qf](),r.resume())}[bf](e,r,i){mR(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r},i)}[aC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[AC](e){return Y9(this.uid,e.uid,this.processUid)}[lC](e){return Y9(this.gid,e.gid,this.processGid)}[yR](e,r){let i=e.mode&4095||this.fmode,n=new _Ne.WriteStream(e.absolute,{flags:j9(e.size),mode:i,autoClose:!1});n.on("error",l=>this[dn](l,e));let s=1,o=l=>{if(l)return this[dn](l,e);--s==0&&$t.close(n.fd,c=>{r(),c?this[dn](c,e):this[Qf]()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;$t.futimes(u,g,f,h=>h?$t.utimes(c,g,f,p=>o(p&&h)):o())}if(this[aC](e)){s++;let g=this[AC](e),f=this[lC](e);$t.fchown(u,g,f,h=>h?$t.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.pipe(n)}[wR](e,r){let i=e.mode&4095||this.dmode;this[bf](e.absolute,i,n=>{if(n)return r(),this[dn](n,e);let s=1,o=a=>{--s==0&&(r(),this[Qf](),e.resume())};e.mtime&&!this.noMtime&&(s++,$t.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[aC](e)&&(s++,$t.chown(e.absolute,this[AC](e),this[lC](e),o)),o()})}[K9](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[O9](e,r){this[WB](e,e.linkpath,"symlink",r)}[M9](e,r){this[WB](e,cA.resolve(this.cwd,e.linkpath),"link",r)}[H9](){this[zB]++}[Qf](){this[zB]--,this[bR]()}[QR](e){this[Qf](),e.resume()}[IR](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&process.platform!=="win32"}[ER](e){this[H9]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,i=>this[T9](e,i))}[T9](e,r){this[bf](cA.dirname(e.absolute),this.dmode,i=>{if(i)return r(),this[dn](i,e);$t.lstat(e.absolute,(n,s)=>{s&&(this.keep||this.newer&&s.mtime>e.mtime)?(this[QR](e),r()):n||this[IR](e,s)?this[uA](null,e,r):s.isDirectory()?e.type==="Directory"?!e.mode||(s.mode&4095)===e.mode?this[uA](null,e,r):$t.chmod(e.absolute,e.mode,o=>this[uA](o,e,r)):$t.rmdir(e.absolute,o=>this[uA](o,e,r)):XNe(e.absolute,o=>this[uA](o,e,r))})})}[uA](e,r,i){if(e)return this[dn](e,r);switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[yR](r,i);case"Link":return this[M9](r,i);case"SymbolicLink":return this[O9](r,i);case"Directory":case"GNUDumpDir":return this[wR](r,i)}}[WB](e,r,i,n){$t[i](r,e.absolute,s=>{if(s)return this[dn](s,e);n(),this[Qf](),e.resume()})}},q9=class extends VB{constructor(e){super(e)}[ER](e){let r=this[bf](cA.dirname(e.absolute),this.dmode,_B);if(r)return this[dn](r,e);try{let i=$t.lstatSync(e.absolute);if(this.keep||this.newer&&i.mtime>e.mtime)return this[QR](e);if(this[IR](e,i))return this[uA](null,e,_B);try{return i.isDirectory()?e.type==="Directory"?e.mode&&(i.mode&4095)!==e.mode&&$t.chmodSync(e.absolute,e.mode):$t.rmdirSync(e.absolute):ZNe(e.absolute),this[uA](null,e,_B)}catch(n){return this[dn](n,e)}}catch(i){return this[uA](null,e,_B)}}[yR](e,r){let i=e.mode&4095||this.fmode,n=l=>{let c;try{$t.closeSync(o)}catch(u){c=u}(l||c)&&this[dn](l||c,e)},s,o;try{o=$t.openSync(e.absolute,j9(e.size),i)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.on("data",l=>{try{$t.writeSync(o,l,0,l.length)}catch(c){n(c)}}),a.on("end",l=>{let c=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,g=e.mtime;try{$t.futimesSync(o,u,g)}catch(f){try{$t.utimesSync(e.absolute,u,g)}catch(h){c=f}}}if(this[aC](e)){let u=this[AC](e),g=this[lC](e);try{$t.fchownSync(o,u,g)}catch(f){try{$t.chownSync(e.absolute,u,g)}catch(h){c=c||f}}}n(c)})}[wR](e,r){let i=e.mode&4095||this.dmode,n=this[bf](e.absolute,i);if(n)return this[dn](n,e);if(e.mtime&&!this.noMtime)try{$t.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(s){}if(this[aC](e))try{$t.chownSync(e.absolute,this[AC](e),this[lC](e))}catch(s){}e.resume()}[bf](e,r){try{return mR.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(i){return i}}[WB](e,r,i,n){try{$t[i+"Sync"](r,e.absolute),e.resume()}catch(s){return this[dn](s,e)}}};VB.Sync=q9;F9.exports=VB});var V9=w((ylt,J9)=>{"use strict";var $Ne=af(),XB=vR(),W9=require("fs"),z9=Ef(),_9=require("path"),Ilt=J9.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&eLe(i,e),i.file&&i.sync?tLe(i):i.file?rLe(i,r):i.sync?iLe(i):nLe(i)},eLe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||_9.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(_9.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},tLe=t=>{let e=new XB.Sync(t),r=t.file,i=!0,n,s=W9.statSync(r),o=t.maxReadSize||16*1024*1024;new z9.ReadStreamSync(r,{readSize:o,size:s.size}).pipe(e)},rLe=(t,e)=>{let r=new XB(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("close",o),W9.stat(n,(l,c)=>{if(l)a(l);else{let u=new z9.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},iLe=t=>new XB.Sync(t),nLe=t=>new XB(t)});var X9=w(hi=>{"use strict";hi.c=hi.create=LV();hi.r=hi.replace=lR();hi.t=hi.list=GB();hi.u=hi.update=YV();hi.x=hi.extract=V9();hi.Pack=PB();hi.Unpack=vR();hi.Parse=sC();hi.ReadEntry=$d();hi.WriteEntry=UD();hi.Header=uf();hi.Pax=dB();hi.types=Zd()});var r7=w((blt,t7)=>{var kR;t7.exports.getContent=()=>(typeof kR=="undefined"&&(kR=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),kR)});var A7=w((xR,a7)=>{(function(t,e){typeof xR=="object"?a7.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(xR,function(){function t(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function r(n,s,o,a,l,c,u){var g="",f=0,h,p,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(b,S){S>0&&(g+=(b[1]?" ":"\u2502")+" "),!p&&b[0]===s&&(p=!0)}),g+=t(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var y=e(s,c);y.forEach(function(b){h=++f===y.length,r(b,s[b],h,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;r(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return r(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var fA=w(RR=>{"use strict";Object.defineProperty(RR,"__esModule",{value:!0});RR.default=h7;function h7(){}h7.prototype={diff:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var a=r.length,l=e.length,c=1,u=a+l,g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],r,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(r),count:r.length}]);function h(){for(var m=-1*c;m<=c;m+=2){var y=void 0,b=g[m-1],S=g[m+1],k=(S?S.newPos:0)-m;b&&(g[m-1]=void 0);var T=b&&b.newPos+1=a&&k+1>=l)return o(gLe(s,y.components,r,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();h()||m()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,r,i){var n=e[e.length-1];n&&n.added===r&&n.removed===i?e[e.length-1]={count:n.count+1,added:r,removed:i}:e.push({count:1,added:r,removed:i})},extractCommon:function(e,r,i,n){for(var s=r.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?m:h}),c.value=t.join(u)}else c.value=t.join(r.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&t.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function fLe(t){return{newPos:t.newPos,components:t.components.slice(0)}}});var d7=w(cC=>{"use strict";Object.defineProperty(cC,"__esModule",{value:!0});cC.diffChars=hLe;cC.characterDiff=void 0;var dLe=pLe(fA());function pLe(t){return t&&t.__esModule?t:{default:t}}var p7=new dLe.default;cC.characterDiff=p7;function hLe(t,e,r){return p7.diff(t,e,r)}});var NR=w(FR=>{"use strict";Object.defineProperty(FR,"__esModule",{value:!0});FR.generateOptions=CLe;function CLe(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}});var E7=w(vf=>{"use strict";Object.defineProperty(vf,"__esModule",{value:!0});vf.diffWords=mLe;vf.diffWordsWithSpace=ELe;vf.wordDiff=void 0;var yLe=ILe(fA()),wLe=NR();function ILe(t){return t&&t.__esModule?t:{default:t}}var C7=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,m7=/\S/,uC=new yLe.default;vf.wordDiff=uC;uC.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!m7.test(t)&&!m7.test(e)};uC.tokenize=function(t){for(var e=t.split(/(\s+|[()[\]{}'"]|\b)/),r=0;r{"use strict";Object.defineProperty(Sf,"__esModule",{value:!0});Sf.diffLines=BLe;Sf.diffTrimmedLines=bLe;Sf.lineDiff=void 0;var vLe=QLe(fA()),SLe=NR();function QLe(t){return t&&t.__esModule?t:{default:t}}var ZB=new vLe.default;Sf.lineDiff=ZB;ZB.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var i=0;i{"use strict";Object.defineProperty(gC,"__esModule",{value:!0});gC.diffSentences=kLe;gC.sentenceDiff=void 0;var PLe=xLe(fA());function xLe(t){return t&&t.__esModule?t:{default:t}}var LR=new PLe.default;gC.sentenceDiff=LR;LR.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};function kLe(t,e,r){return LR.diff(t,e,r)}});var y7=w(fC=>{"use strict";Object.defineProperty(fC,"__esModule",{value:!0});fC.diffCss=DLe;fC.cssDiff=void 0;var FLe=RLe(fA());function RLe(t){return t&&t.__esModule?t:{default:t}}var TR=new FLe.default;fC.cssDiff=TR;TR.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};function DLe(t,e,r){return TR.diff(t,e,r)}});var B7=w(kf=>{"use strict";Object.defineProperty(kf,"__esModule",{value:!0});kf.diffJson=NLe;kf.canonicalize=e0;kf.jsonDiff=void 0;var w7=LLe(fA()),TLe=$B();function LLe(t){return t&&t.__esModule?t:{default:t}}function t0(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t0=function(r){return typeof r}:t0=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},t0(t)}var OLe=Object.prototype.toString,Au=new w7.default;kf.jsonDiff=Au;Au.useLongestToken=!0;Au.tokenize=TLe.lineDiff.tokenize;Au.castInput=function(t){var e=this.options,r=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o=="undefined"?r:o}:i;return typeof t=="string"?t:JSON.stringify(e0(t,null,null,n),n," ")};Au.equals=function(t,e){return w7.default.prototype.equals.call(Au,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NLe(t,e,r){return Au.diff(t,e,r)}function e0(t,e,r,i,n){e=e||[],r=r||[],i&&(t=i(n,t));var s;for(s=0;s{"use strict";Object.defineProperty(hC,"__esModule",{value:!0});hC.diffArrays=MLe;hC.arrayDiff=void 0;var ULe=KLe(fA());function KLe(t){return t&&t.__esModule?t:{default:t}}var pC=new ULe.default;hC.arrayDiff=pC;pC.tokenize=function(t){return t.slice()};pC.join=pC.removeEmpty=function(t){return t};function MLe(t,e,r){return pC.diff(t,e,r)}});var r0=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.parsePatch=HLe;function HLe(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.split(/\r\n|[\n\v\f\r\x85]/),i=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],n=[],s=0;function o(){var c={};for(n.push(c);s{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.default=GLe;function GLe(t,e,r){var i=!0,n=!1,s=!1,o=1;return function a(){if(i&&!s){if(n?o++:i=!1,t+o<=r)return o;s=!0}if(!n)return s||(i=!0),e<=t-o?-o++:(n=!0,a())}}});var k7=w(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});i0.applyPatch=v7;i0.applyPatches=jLe;var S7=r0(),qLe=YLe(Q7());function YLe(t){return t&&t.__esModule?t:{default:t}}function v7(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string"&&(e=(0,S7.parsePatch)(e)),Array.isArray(e)){if(e.length>1)throw new Error("applyPatch only works with a single input.");e=e[0]}var i=t.split(/\r\n|[\n\v\f\r\x85]/),n=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],s=e.hunks,o=r.compareLine||function(O,L,pe,Ce){return L===Ce},a=0,l=r.fuzzFactor||0,c=0,u=0,g,f;function h(O,L){for(var pe=0;pe0?Ce[0]:" ",te=Ce.length>0?Ce.substr(1):Ce;if(Oe===" "||Oe==="-"){if(!o(L+1,i[L],Oe,te)&&(a++,a>l))return!1;L++}}return!0}for(var p=0;p0?re[0]:" ",A=re.length>0?re.substr(1):re,oe=j.linedelimiters[J];if(ee===" ")Z++;else if(ee==="-")i.splice(Z,1),n.splice(Z,1);else if(ee==="+")i.splice(Z,0,A),n.splice(Z,0,oe),Z++;else if(ee==="\\"){var le=j.lines[J-1]?j.lines[J-1][0]:null;le==="+"?g=!0:le==="-"&&(f=!0)}}}if(g)for(;!i[i.length-1];)i.pop(),n.pop();else f&&(i.push(""),n.push(` +`));for(var X=0;X{"use strict";Object.defineProperty(dC,"__esModule",{value:!0});dC.structuredPatch=x7;dC.createTwoFilesPatch=P7;dC.createPatch=JLe;var WLe=$B();function KR(t){return VLe(t)||_Le(t)||zLe()}function zLe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _Le(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function VLe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e0?l(j.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(Y=f).push.apply(Y,KR(T.map(function(X){return(k.added?"+":"-")+X}))),k.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&S=a.length-2&&T.length<=o.context){var A=/\n$/.test(r),oe=/\n$/.test(i),le=T.length==0&&f.length>ee.oldLines;!A&&le&&f.splice(ee.oldLines,0,"\\ No newline at end of file"),(!A&&!le||!oe)&&f.push("\\ No newline at end of file")}c.push(ee),u=0,g=0,f=[]}h+=T.length,p+=T.length}},y=0;y{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});n0.arrayEqual=XLe;n0.arrayStartsWith=D7;function XLe(t,e){return t.length!==e.length?!1:D7(t,e)}function D7(t,e){if(e.length>t.length)return!1;for(var r=0;r{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});s0.calcLineCount=F7;s0.merge=ZLe;var $Le=UR(),eTe=r0(),HR=R7();function xf(t){return iTe(t)||rTe(t)||tTe()}function tTe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function rTe(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function iTe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e{"use strict";Object.defineProperty(YR,"__esModule",{value:!0});YR.convertChangesToDMP=aTe;function aTe(t){for(var e=[],r,i,n=0;n{"use strict";Object.defineProperty(qR,"__esModule",{value:!0});qR.convertChangesToXML=ATe;function ATe(t){for(var e=[],r=0;r"):i.removed&&e.push(""),e.push(lTe(i.value)),i.added?e.push(""):i.removed&&e.push("")}return e.join("")}function lTe(t){var e=t;return e=e.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/"/g,"""),e}});var V7=w(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Object.defineProperty(Ur,"Diff",{enumerable:!0,get:function(){return cTe.default}});Object.defineProperty(Ur,"diffChars",{enumerable:!0,get:function(){return uTe.diffChars}});Object.defineProperty(Ur,"diffWords",{enumerable:!0,get:function(){return J7.diffWords}});Object.defineProperty(Ur,"diffWordsWithSpace",{enumerable:!0,get:function(){return J7.diffWordsWithSpace}});Object.defineProperty(Ur,"diffLines",{enumerable:!0,get:function(){return W7.diffLines}});Object.defineProperty(Ur,"diffTrimmedLines",{enumerable:!0,get:function(){return W7.diffTrimmedLines}});Object.defineProperty(Ur,"diffSentences",{enumerable:!0,get:function(){return gTe.diffSentences}});Object.defineProperty(Ur,"diffCss",{enumerable:!0,get:function(){return fTe.diffCss}});Object.defineProperty(Ur,"diffJson",{enumerable:!0,get:function(){return z7.diffJson}});Object.defineProperty(Ur,"canonicalize",{enumerable:!0,get:function(){return z7.canonicalize}});Object.defineProperty(Ur,"diffArrays",{enumerable:!0,get:function(){return hTe.diffArrays}});Object.defineProperty(Ur,"applyPatch",{enumerable:!0,get:function(){return _7.applyPatch}});Object.defineProperty(Ur,"applyPatches",{enumerable:!0,get:function(){return _7.applyPatches}});Object.defineProperty(Ur,"parsePatch",{enumerable:!0,get:function(){return pTe.parsePatch}});Object.defineProperty(Ur,"merge",{enumerable:!0,get:function(){return dTe.merge}});Object.defineProperty(Ur,"structuredPatch",{enumerable:!0,get:function(){return JR.structuredPatch}});Object.defineProperty(Ur,"createTwoFilesPatch",{enumerable:!0,get:function(){return JR.createTwoFilesPatch}});Object.defineProperty(Ur,"createPatch",{enumerable:!0,get:function(){return JR.createPatch}});Object.defineProperty(Ur,"convertChangesToDMP",{enumerable:!0,get:function(){return CTe.convertChangesToDMP}});Object.defineProperty(Ur,"convertChangesToXML",{enumerable:!0,get:function(){return mTe.convertChangesToXML}});var cTe=ETe(fA()),uTe=d7(),J7=E7(),W7=$B(),gTe=I7(),fTe=y7(),z7=B7(),hTe=b7(),_7=k7(),pTe=r0(),dTe=j7(),JR=UR(),CTe=Y7(),mTe=q7();function ETe(t){return t&&t.__esModule?t:{default:t}}});var a0=w((dct,X7)=>{var ITe=Ms(),yTe=yd(),wTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,BTe=/^\w*$/;function bTe(t,e){if(ITe(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||yTe(t)?!0:BTe.test(t)||!wTe.test(t)||e!=null&&t in Object(e)}X7.exports=bTe});var A0=w((Cct,Z7)=>{var QTe=Gc(),vTe=Rn(),STe="[object AsyncFunction]",kTe="[object Function]",xTe="[object GeneratorFunction]",PTe="[object Proxy]";function DTe(t){if(!vTe(t))return!1;var e=QTe(t);return e==kTe||e==xTe||e==STe||e==PTe}Z7.exports=DTe});var eX=w((mct,$7)=>{var RTe=Fs(),FTe=RTe["__core-js_shared__"];$7.exports=FTe});var iX=w((Ect,tX)=>{var WR=eX(),rX=function(){var t=/[^.]+$/.exec(WR&&WR.keys&&WR.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function NTe(t){return!!rX&&rX in t}tX.exports=NTe});var zR=w((Ict,nX)=>{var LTe=Function.prototype,TTe=LTe.toString;function OTe(t){if(t!=null){try{return TTe.call(t)}catch(e){}try{return t+""}catch(e){}}return""}nX.exports=OTe});var oX=w((yct,sX)=>{var MTe=A0(),KTe=iX(),UTe=Rn(),HTe=zR(),GTe=/[\\^$.*+?()[\]{}|]/g,jTe=/^\[object .+?Constructor\]$/,YTe=Function.prototype,qTe=Object.prototype,JTe=YTe.toString,WTe=qTe.hasOwnProperty,zTe=RegExp("^"+JTe.call(WTe).replace(GTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _Te(t){if(!UTe(t)||KTe(t))return!1;var e=MTe(t)?zTe:jTe;return e.test(HTe(t))}sX.exports=_Te});var AX=w((wct,aX)=>{function VTe(t,e){return t==null?void 0:t[e]}aX.exports=VTe});var Sl=w((Bct,lX)=>{var XTe=oX(),ZTe=AX();function $Te(t,e){var r=ZTe(t,e);return XTe(r)?r:void 0}lX.exports=$Te});var CC=w((bct,cX)=>{var eOe=Sl(),tOe=eOe(Object,"create");cX.exports=tOe});var fX=w((Qct,uX)=>{var gX=CC();function rOe(){this.__data__=gX?gX(null):{},this.size=0}uX.exports=rOe});var pX=w((vct,hX)=>{function iOe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}hX.exports=iOe});var CX=w((Sct,dX)=>{var nOe=CC(),sOe="__lodash_hash_undefined__",oOe=Object.prototype,aOe=oOe.hasOwnProperty;function AOe(t){var e=this.__data__;if(nOe){var r=e[t];return r===sOe?void 0:r}return aOe.call(e,t)?e[t]:void 0}dX.exports=AOe});var EX=w((kct,mX)=>{var lOe=CC(),cOe=Object.prototype,uOe=cOe.hasOwnProperty;function gOe(t){var e=this.__data__;return lOe?e[t]!==void 0:uOe.call(e,t)}mX.exports=gOe});var yX=w((xct,IX)=>{var fOe=CC(),hOe="__lodash_hash_undefined__";function pOe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=fOe&&e===void 0?hOe:e,this}IX.exports=pOe});var BX=w((Pct,wX)=>{var dOe=fX(),COe=pX(),mOe=CX(),EOe=EX(),IOe=yX();function Pf(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{function yOe(){this.__data__=[],this.size=0}bX.exports=yOe});var Df=w((Rct,vX)=>{function wOe(t,e){return t===e||t!==t&&e!==e}vX.exports=wOe});var mC=w((Fct,SX)=>{var BOe=Df();function bOe(t,e){for(var r=t.length;r--;)if(BOe(t[r][0],e))return r;return-1}SX.exports=bOe});var xX=w((Nct,kX)=>{var QOe=mC(),vOe=Array.prototype,SOe=vOe.splice;function kOe(t){var e=this.__data__,r=QOe(e,t);if(r<0)return!1;var i=e.length-1;return r==i?e.pop():SOe.call(e,r,1),--this.size,!0}kX.exports=kOe});var DX=w((Lct,PX)=>{var xOe=mC();function POe(t){var e=this.__data__,r=xOe(e,t);return r<0?void 0:e[r][1]}PX.exports=POe});var FX=w((Tct,RX)=>{var DOe=mC();function ROe(t){return DOe(this.__data__,t)>-1}RX.exports=ROe});var LX=w((Oct,NX)=>{var FOe=mC();function NOe(t,e){var r=this.__data__,i=FOe(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}NX.exports=NOe});var EC=w((Mct,TX)=>{var LOe=QX(),TOe=xX(),OOe=DX(),MOe=FX(),KOe=LX();function Rf(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var UOe=Sl(),HOe=Fs(),GOe=UOe(HOe,"Map");OX.exports=GOe});var UX=w((Uct,MX)=>{var KX=BX(),jOe=EC(),YOe=l0();function qOe(){this.size=0,this.__data__={hash:new KX,map:new(YOe||jOe),string:new KX}}MX.exports=qOe});var GX=w((Hct,HX)=>{function JOe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}HX.exports=JOe});var IC=w((Gct,jX)=>{var WOe=GX();function zOe(t,e){var r=t.__data__;return WOe(e)?r[typeof e=="string"?"string":"hash"]:r.map}jX.exports=zOe});var qX=w((jct,YX)=>{var _Oe=IC();function VOe(t){var e=_Oe(this,t).delete(t);return this.size-=e?1:0,e}YX.exports=VOe});var WX=w((Yct,JX)=>{var XOe=IC();function ZOe(t){return XOe(this,t).get(t)}JX.exports=ZOe});var _X=w((qct,zX)=>{var $Oe=IC();function eMe(t){return $Oe(this,t).has(t)}zX.exports=eMe});var XX=w((Jct,VX)=>{var tMe=IC();function rMe(t,e){var r=tMe(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}VX.exports=rMe});var c0=w((Wct,ZX)=>{var iMe=UX(),nMe=qX(),sMe=WX(),oMe=_X(),aMe=XX();function Ff(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var eZ=c0(),AMe="Expected a function";function _R(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(AMe);var r=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=r.cache;if(s.has(n))return s.get(n);var o=t.apply(this,i);return r.cache=s.set(n,o)||s,o};return r.cache=new(_R.Cache||eZ),r}_R.Cache=eZ;$X.exports=_R});var iZ=w((_ct,rZ)=>{var lMe=tZ(),cMe=500;function uMe(t){var e=lMe(t,function(i){return r.size===cMe&&r.clear(),i}),r=e.cache;return e}rZ.exports=uMe});var sZ=w((Vct,nZ)=>{var gMe=iZ(),fMe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,hMe=/\\(\\)?/g,pMe=gMe(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(fMe,function(r,i,n,s){e.push(n?s.replace(hMe,"$1"):i||r)}),e});nZ.exports=pMe});var Nf=w((Xct,oZ)=>{var dMe=Ms(),CMe=a0(),mMe=sZ(),EMe=of();function IMe(t,e){return dMe(t)?t:CMe(t,e)?[t]:mMe(EMe(t))}oZ.exports=IMe});var cu=w((Zct,aZ)=>{var yMe=yd(),wMe=1/0;function BMe(t){if(typeof t=="string"||yMe(t))return t;var e=t+"";return e=="0"&&1/t==-wMe?"-0":e}aZ.exports=BMe});var yC=w(($ct,AZ)=>{var bMe=Nf(),QMe=cu();function vMe(t,e){e=bMe(e,t);for(var r=0,i=e.length;t!=null&&r{var SMe=Sl(),kMe=function(){try{var t=SMe(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();lZ.exports=kMe});var Lf=w((tut,cZ)=>{var uZ=VR();function xMe(t,e,r){e=="__proto__"&&uZ?uZ(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}cZ.exports=xMe});var u0=w((rut,gZ)=>{var PMe=Lf(),DMe=Df(),RMe=Object.prototype,FMe=RMe.hasOwnProperty;function NMe(t,e,r){var i=t[e];(!(FMe.call(t,e)&&DMe(i,r))||r===void 0&&!(e in t))&&PMe(t,e,r)}gZ.exports=NMe});var wC=w((iut,fZ)=>{var LMe=9007199254740991,TMe=/^(?:0|[1-9]\d*)$/;function OMe(t,e){var r=typeof t;return e=e==null?LMe:e,!!e&&(r=="number"||r!="symbol"&&TMe.test(t))&&t>-1&&t%1==0&&t{var MMe=u0(),KMe=Nf(),UMe=wC(),pZ=Rn(),HMe=cu();function GMe(t,e,r,i){if(!pZ(t))return t;e=KMe(e,t);for(var n=-1,s=e.length,o=s-1,a=t;a!=null&&++n{var jMe=yC(),YMe=XR(),qMe=Nf();function JMe(t,e,r){for(var i=-1,n=e.length,s={};++i{function WMe(t,e){return t!=null&&e in Object(t)}mZ.exports=WMe});var yZ=w((aut,IZ)=>{var zMe=Gc(),_Me=Zo(),VMe="[object Arguments]";function XMe(t){return _Me(t)&&zMe(t)==VMe}IZ.exports=XMe});var BC=w((Aut,wZ)=>{var BZ=yZ(),ZMe=Zo(),bZ=Object.prototype,$Me=bZ.hasOwnProperty,eKe=bZ.propertyIsEnumerable,tKe=BZ(function(){return arguments}())?BZ:function(t){return ZMe(t)&&$Me.call(t,"callee")&&!eKe.call(t,"callee")};wZ.exports=tKe});var g0=w((lut,QZ)=>{var rKe=9007199254740991;function iKe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=rKe}QZ.exports=iKe});var ZR=w((cut,vZ)=>{var nKe=Nf(),sKe=BC(),oKe=Ms(),aKe=wC(),AKe=g0(),lKe=cu();function cKe(t,e,r){e=nKe(e,t);for(var i=-1,n=e.length,s=!1;++i{var uKe=EZ(),gKe=ZR();function fKe(t,e){return t!=null&&gKe(t,e,uKe)}SZ.exports=fKe});var xZ=w((gut,kZ)=>{var hKe=CZ(),pKe=$R();function dKe(t,e){return hKe(t,e,function(r,i){return pKe(t,i)})}kZ.exports=dKe});var f0=w((fut,PZ)=>{function CKe(t,e){for(var r=-1,i=e.length,n=t.length;++r{var RZ=Hc(),mKe=BC(),EKe=Ms(),FZ=RZ?RZ.isConcatSpreadable:void 0;function IKe(t){return EKe(t)||mKe(t)||!!(FZ&&t&&t[FZ])}DZ.exports=IKe});var OZ=w((put,LZ)=>{var yKe=f0(),wKe=NZ();function TZ(t,e,r,i,n){var s=-1,o=t.length;for(r||(r=wKe),n||(n=[]);++s0&&r(a)?e>1?TZ(a,e-1,r,i,n):yKe(n,a):i||(n[n.length]=a)}return n}LZ.exports=TZ});var KZ=w((dut,MZ)=>{var BKe=OZ();function bKe(t){var e=t==null?0:t.length;return e?BKe(t,1):[]}MZ.exports=bKe});var HZ=w((Cut,UZ)=>{function QKe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}UZ.exports=QKe});var eF=w((mut,GZ)=>{var vKe=HZ(),jZ=Math.max;function SKe(t,e,r){return e=jZ(e===void 0?t.length-1:e,0),function(){for(var i=arguments,n=-1,s=jZ(i.length-e,0),o=Array(s);++n{function kKe(t){return function(){return t}}YZ.exports=kKe});var h0=w((Iut,JZ)=>{function xKe(t){return t}JZ.exports=xKe});var _Z=w((yut,WZ)=>{var PKe=qZ(),zZ=VR(),DKe=h0(),RKe=zZ?function(t,e){return zZ(t,"toString",{configurable:!0,enumerable:!1,value:PKe(e),writable:!0})}:DKe;WZ.exports=RKe});var XZ=w((wut,VZ)=>{var FKe=800,NKe=16,LKe=Date.now;function TKe(t){var e=0,r=0;return function(){var i=LKe(),n=NKe-(i-r);if(r=i,n>0){if(++e>=FKe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}VZ.exports=TKe});var tF=w((But,ZZ)=>{var OKe=_Z(),MKe=XZ(),KKe=MKe(OKe);ZZ.exports=KKe});var e$=w((but,$Z)=>{var UKe=KZ(),HKe=eF(),GKe=tF();function jKe(t){return GKe(HKe(t,void 0,UKe),t+"")}$Z.exports=jKe});var r$=w((Qut,t$)=>{var YKe=xZ(),qKe=e$(),JKe=qKe(function(t,e){return t==null?{}:YKe(t,e)});t$.exports=JKe});var p$=w((yft,g$)=>{"use strict";var uF;try{uF=Map}catch(t){}var gF;try{gF=Set}catch(t){}function f$(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(h$);if(uF&&t instanceof uF)return new Map(Array.from(t.entries()));if(gF&&t instanceof gF)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var i=Object.create(t);r.push(i);for(var n in t){var s=e.findIndex(function(o){return o===t[n]});i[n]=s>-1?r[s]:f$(t[n],e,r)}return i}return t}function h$(t){return f$(t,[],[])}g$.exports=h$});var SC=w(fF=>{"use strict";Object.defineProperty(fF,"__esModule",{value:!0});fF.default=t1e;var r1e=Object.prototype.toString,i1e=Error.prototype.toString,n1e=RegExp.prototype.toString,s1e=typeof Symbol!="undefined"?Symbol.prototype.toString:()=>"",o1e=/^Symbol\((.*)\)(.*)$/;function a1e(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function d$(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return a1e(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return s1e.call(t).replace(o1e,"Symbol($1)");let i=r1e.call(t).slice(8,-1);return i==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):i==="Error"||t instanceof Error?"["+i1e.call(t)+"]":i==="RegExp"?n1e.call(t):null}function t1e(t,e){let r=d$(t,e);return r!==null?r:JSON.stringify(t,function(i,n){let s=d$(this[i],e);return s!==null?s:n},2)}});var hA=w(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.default=Bi.array=Bi.object=Bi.boolean=Bi.date=Bi.number=Bi.string=Bi.mixed=void 0;var C$=A1e(SC());function A1e(t){return t&&t.__esModule?t:{default:t}}var m$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:i})=>{let n=i!=null&&i!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,C$.default)(r,!0)}\``+(n?` (cast from the value \`${(0,C$.default)(i,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Bi.mixed=m$;var E$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Bi.string=E$;var I$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Bi.number=I$;var y$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Bi.date=y$;var w$={isValue:"${path} field must be ${value}"};Bi.boolean=w$;var B$={noUnknown:"${path} field has unspecified keys: ${unknown}"};Bi.object=B$;var b$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Bi.array=b$;var l1e=Object.assign(Object.create(null),{mixed:m$,string:E$,number:I$,date:y$,object:B$,array:b$,boolean:w$});Bi.default=l1e});var v$=w((bft,Q$)=>{var c1e=Object.prototype,u1e=c1e.hasOwnProperty;function g1e(t,e){return t!=null&&u1e.call(t,e)}Q$.exports=g1e});var kC=w((Qft,S$)=>{var f1e=v$(),h1e=ZR();function p1e(t,e){return t!=null&&h1e(t,e,f1e)}S$.exports=p1e});var Of=w(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});m0.default=void 0;var d1e=t=>t&&t.__isYupSchema__;m0.default=d1e});var P$=w(E0=>{"use strict";Object.defineProperty(E0,"__esModule",{value:!0});E0.default=void 0;var C1e=k$(kC()),m1e=k$(Of());function k$(t){return t&&t.__esModule?t:{default:t}}var x$=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,C1e.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=r,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,r){let i=this.refs.map(s=>s.getValue(r==null?void 0:r.value,r==null?void 0:r.parent,r==null?void 0:r.context)),n=this.fn.apply(e,i.concat(e,r));if(n===void 0||n===e)return e;if(!(0,m1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(r)}},E1e=x$;E0.default=E1e});var pF=w(hF=>{"use strict";Object.defineProperty(hF,"__esModule",{value:!0});hF.default=I1e;function I1e(t){return t==null?[]:[].concat(t)}});var uu=w(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});I0.default=void 0;var y1e=D$(SC()),w1e=D$(pF());function D$(t){return t&&t.__esModule?t:{default:t}}function dF(){return dF=Object.assign||function(t){for(var e=1;e(0,y1e.default)(r[s])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,i,n){super();this.name="ValidationError",this.value=r,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,w1e.default)(e).forEach(s=>{xC.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,xC)}};I0.default=xC});var y0=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.default=b1e;var mF=Q1e(uu());function Q1e(t){return t&&t.__esModule?t:{default:t}}var v1e=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function b1e(t,e){let{endEarly:r,tests:i,args:n,value:s,errors:o,sort:a,path:l}=t,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new mF.default(o,s,l)):c(null,s);for(let f=0;f{function S1e(t){return function(e,r,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[t?a:++n];if(r(s[l],l,s)===!1)break}return e}}R$.exports=S1e});var EF=w((Rft,N$)=>{var k1e=F$(),x1e=k1e();N$.exports=x1e});var T$=w((Fft,L$)=>{function P1e(t,e){for(var r=-1,i=Array(t);++r{function D1e(){return!1}O$.exports=D1e});var DC=w((PC,Mf)=>{var R1e=Fs(),F1e=M$(),K$=typeof PC=="object"&&PC&&!PC.nodeType&&PC,U$=K$&&typeof Mf=="object"&&Mf&&!Mf.nodeType&&Mf,N1e=U$&&U$.exports===K$,H$=N1e?R1e.Buffer:void 0,L1e=H$?H$.isBuffer:void 0,T1e=L1e||F1e;Mf.exports=T1e});var j$=w((Lft,G$)=>{var O1e=Gc(),M1e=g0(),K1e=Zo(),U1e="[object Arguments]",H1e="[object Array]",G1e="[object Boolean]",j1e="[object Date]",Y1e="[object Error]",q1e="[object Function]",J1e="[object Map]",W1e="[object Number]",z1e="[object Object]",_1e="[object RegExp]",V1e="[object Set]",X1e="[object String]",Z1e="[object WeakMap]",$1e="[object ArrayBuffer]",eUe="[object DataView]",tUe="[object Float32Array]",rUe="[object Float64Array]",iUe="[object Int8Array]",nUe="[object Int16Array]",sUe="[object Int32Array]",oUe="[object Uint8Array]",aUe="[object Uint8ClampedArray]",AUe="[object Uint16Array]",lUe="[object Uint32Array]",wr={};wr[tUe]=wr[rUe]=wr[iUe]=wr[nUe]=wr[sUe]=wr[oUe]=wr[aUe]=wr[AUe]=wr[lUe]=!0;wr[U1e]=wr[H1e]=wr[$1e]=wr[G1e]=wr[eUe]=wr[j1e]=wr[Y1e]=wr[q1e]=wr[J1e]=wr[W1e]=wr[z1e]=wr[_1e]=wr[V1e]=wr[X1e]=wr[Z1e]=!1;function cUe(t){return K1e(t)&&M1e(t.length)&&!!wr[O1e(t)]}G$.exports=cUe});var w0=w((Tft,Y$)=>{function uUe(t){return function(e){return t(e)}}Y$.exports=uUe});var B0=w((RC,Kf)=>{var gUe=hx(),q$=typeof RC=="object"&&RC&&!RC.nodeType&&RC,FC=q$&&typeof Kf=="object"&&Kf&&!Kf.nodeType&&Kf,fUe=FC&&FC.exports===q$,IF=fUe&&gUe.process,hUe=function(){try{var t=FC&&FC.require&&FC.require("util").types;return t||IF&&IF.binding&&IF.binding("util")}catch(e){}}();Kf.exports=hUe});var b0=w((Oft,J$)=>{var pUe=j$(),dUe=w0(),W$=B0(),z$=W$&&W$.isTypedArray,CUe=z$?dUe(z$):pUe;J$.exports=CUe});var yF=w((Mft,_$)=>{var mUe=T$(),EUe=BC(),IUe=Ms(),yUe=DC(),wUe=wC(),BUe=b0(),bUe=Object.prototype,QUe=bUe.hasOwnProperty;function vUe(t,e){var r=IUe(t),i=!r&&EUe(t),n=!r&&!i&&yUe(t),s=!r&&!i&&!n&&BUe(t),o=r||i||n||s,a=o?mUe(t.length,String):[],l=a.length;for(var c in t)(e||QUe.call(t,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||wUe(c,l)))&&a.push(c);return a}_$.exports=vUe});var Q0=w((Kft,V$)=>{var SUe=Object.prototype;function kUe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||SUe;return t===r}V$.exports=kUe});var wF=w((Uft,X$)=>{function xUe(t,e){return function(r){return t(e(r))}}X$.exports=xUe});var $$=w((Hft,Z$)=>{var PUe=wF(),DUe=PUe(Object.keys,Object);Z$.exports=DUe});var tee=w((Gft,eee)=>{var RUe=Q0(),FUe=$$(),NUe=Object.prototype,LUe=NUe.hasOwnProperty;function TUe(t){if(!RUe(t))return FUe(t);var e=[];for(var r in Object(t))LUe.call(t,r)&&r!="constructor"&&e.push(r);return e}eee.exports=TUe});var NC=w((jft,ree)=>{var OUe=A0(),MUe=g0();function KUe(t){return t!=null&&MUe(t.length)&&!OUe(t)}ree.exports=KUe});var Uf=w((Yft,iee)=>{var UUe=yF(),HUe=tee(),GUe=NC();function jUe(t){return GUe(t)?UUe(t):HUe(t)}iee.exports=jUe});var BF=w((qft,nee)=>{var YUe=EF(),qUe=Uf();function JUe(t,e){return t&&YUe(t,e,qUe)}nee.exports=JUe});var oee=w((Jft,see)=>{var WUe=EC();function zUe(){this.__data__=new WUe,this.size=0}see.exports=zUe});var Aee=w((Wft,aee)=>{function _Ue(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}aee.exports=_Ue});var cee=w((zft,lee)=>{function VUe(t){return this.__data__.get(t)}lee.exports=VUe});var gee=w((_ft,uee)=>{function XUe(t){return this.__data__.has(t)}uee.exports=XUe});var hee=w((Vft,fee)=>{var ZUe=EC(),$Ue=l0(),e2e=c0(),t2e=200;function r2e(t,e){var r=this.__data__;if(r instanceof ZUe){var i=r.__data__;if(!$Ue||i.length{var i2e=EC(),n2e=oee(),s2e=Aee(),o2e=cee(),a2e=gee(),A2e=hee();function Hf(t){var e=this.__data__=new i2e(t);this.size=e.size}Hf.prototype.clear=n2e;Hf.prototype.delete=s2e;Hf.prototype.get=o2e;Hf.prototype.has=a2e;Hf.prototype.set=A2e;pee.exports=Hf});var Cee=w((Zft,dee)=>{var l2e="__lodash_hash_undefined__";function c2e(t){return this.__data__.set(t,l2e),this}dee.exports=c2e});var Eee=w(($ft,mee)=>{function u2e(t){return this.__data__.has(t)}mee.exports=u2e});var yee=w((eht,Iee)=>{var g2e=c0(),f2e=Cee(),h2e=Eee();function v0(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new g2e;++e{function p2e(t,e){for(var r=-1,i=t==null?0:t.length;++r{function d2e(t,e){return t.has(e)}bee.exports=d2e});var bF=w((iht,vee)=>{var C2e=yee(),m2e=Bee(),E2e=Qee(),I2e=1,y2e=2;function w2e(t,e,r,i,n,s){var o=r&I2e,a=t.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(t),u=s.get(e);if(c&&u)return c==e&&u==t;var g=-1,f=!0,h=r&y2e?new C2e:void 0;for(s.set(t,e),s.set(e,t);++g{var B2e=Fs(),b2e=B2e.Uint8Array;See.exports=b2e});var xee=w((sht,kee)=>{function Q2e(t){var e=-1,r=Array(t.size);return t.forEach(function(i,n){r[++e]=[n,i]}),r}kee.exports=Q2e});var Dee=w((oht,Pee)=>{function v2e(t){var e=-1,r=Array(t.size);return t.forEach(function(i){r[++e]=i}),r}Pee.exports=v2e});var Tee=w((aht,Ree)=>{var Fee=Hc(),Nee=QF(),S2e=Df(),k2e=bF(),x2e=xee(),P2e=Dee(),D2e=1,R2e=2,F2e="[object Boolean]",N2e="[object Date]",L2e="[object Error]",T2e="[object Map]",O2e="[object Number]",M2e="[object RegExp]",K2e="[object Set]",U2e="[object String]",H2e="[object Symbol]",G2e="[object ArrayBuffer]",j2e="[object DataView]",Lee=Fee?Fee.prototype:void 0,vF=Lee?Lee.valueOf:void 0;function Y2e(t,e,r,i,n,s,o){switch(r){case j2e:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case G2e:return!(t.byteLength!=e.byteLength||!s(new Nee(t),new Nee(e)));case F2e:case N2e:case O2e:return S2e(+t,+e);case L2e:return t.name==e.name&&t.message==e.message;case M2e:case U2e:return t==e+"";case T2e:var a=x2e;case K2e:var l=i&D2e;if(a||(a=P2e),t.size!=e.size&&!l)return!1;var c=o.get(t);if(c)return c==e;i|=R2e,o.set(t,e);var u=k2e(a(t),a(e),i,n,s,o);return o.delete(t),u;case H2e:if(vF)return vF.call(t)==vF.call(e)}return!1}Ree.exports=Y2e});var SF=w((Aht,Oee)=>{var q2e=f0(),J2e=Ms();function W2e(t,e,r){var i=e(t);return J2e(t)?i:q2e(i,r(t))}Oee.exports=W2e});var Kee=w((lht,Mee)=>{function z2e(t,e){for(var r=-1,i=t==null?0:t.length,n=0,s=[];++r{function _2e(){return[]}Uee.exports=_2e});var S0=w((uht,Hee)=>{var V2e=Kee(),X2e=kF(),Z2e=Object.prototype,$2e=Z2e.propertyIsEnumerable,Gee=Object.getOwnPropertySymbols,eHe=Gee?function(t){return t==null?[]:(t=Object(t),V2e(Gee(t),function(e){return $2e.call(t,e)}))}:X2e;Hee.exports=eHe});var xF=w((ght,jee)=>{var tHe=SF(),rHe=S0(),iHe=Uf();function nHe(t){return tHe(t,iHe,rHe)}jee.exports=nHe});var Jee=w((fht,Yee)=>{var qee=xF(),sHe=1,oHe=Object.prototype,aHe=oHe.hasOwnProperty;function AHe(t,e,r,i,n,s){var o=r&sHe,a=qee(t),l=a.length,c=qee(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:aHe.call(e,f)))return!1}var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var m=!0;s.set(t,e),s.set(e,t);for(var y=o;++g{var lHe=Sl(),cHe=Fs(),uHe=lHe(cHe,"DataView");Wee.exports=uHe});var Vee=w((pht,_ee)=>{var gHe=Sl(),fHe=Fs(),hHe=gHe(fHe,"Promise");_ee.exports=hHe});var Zee=w((dht,Xee)=>{var pHe=Sl(),dHe=Fs(),CHe=pHe(dHe,"Set");Xee.exports=CHe});var ete=w((Cht,$ee)=>{var mHe=Sl(),EHe=Fs(),IHe=mHe(EHe,"WeakMap");$ee.exports=IHe});var TC=w((mht,tte)=>{var PF=zee(),DF=l0(),RF=Vee(),FF=Zee(),NF=ete(),rte=Gc(),Gf=zR(),ite="[object Map]",yHe="[object Object]",nte="[object Promise]",ste="[object Set]",ote="[object WeakMap]",ate="[object DataView]",wHe=Gf(PF),BHe=Gf(DF),bHe=Gf(RF),QHe=Gf(FF),vHe=Gf(NF),gu=rte;(PF&&gu(new PF(new ArrayBuffer(1)))!=ate||DF&&gu(new DF)!=ite||RF&&gu(RF.resolve())!=nte||FF&&gu(new FF)!=ste||NF&&gu(new NF)!=ote)&&(gu=function(t){var e=rte(t),r=e==yHe?t.constructor:void 0,i=r?Gf(r):"";if(i)switch(i){case wHe:return ate;case BHe:return ite;case bHe:return nte;case QHe:return ste;case vHe:return ote}return e});tte.exports=gu});var pte=w((Eht,Ate)=>{var LF=LC(),SHe=bF(),kHe=Tee(),xHe=Jee(),lte=TC(),cte=Ms(),ute=DC(),PHe=b0(),DHe=1,gte="[object Arguments]",fte="[object Array]",k0="[object Object]",RHe=Object.prototype,hte=RHe.hasOwnProperty;function FHe(t,e,r,i,n,s){var o=cte(t),a=cte(e),l=o?fte:lte(t),c=a?fte:lte(e);l=l==gte?k0:l,c=c==gte?k0:c;var u=l==k0,g=c==k0,f=l==c;if(f&&ute(t)){if(!ute(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new LF),o||PHe(t)?SHe(t,e,r,i,n,s):kHe(t,e,l,r,i,n,s);if(!(r&DHe)){var h=u&&hte.call(t,"__wrapped__"),p=g&&hte.call(e,"__wrapped__");if(h||p){var m=h?t.value():t,y=p?e.value():e;return s||(s=new LF),n(m,y,r,i,s)}}return f?(s||(s=new LF),xHe(t,e,r,i,n,s)):!1}Ate.exports=FHe});var TF=w((Iht,dte)=>{var NHe=pte(),Cte=Zo();function mte(t,e,r,i,n){return t===e?!0:t==null||e==null||!Cte(t)&&!Cte(e)?t!==t&&e!==e:NHe(t,e,r,i,mte,n)}dte.exports=mte});var Ite=w((yht,Ete)=>{var LHe=LC(),THe=TF(),OHe=1,MHe=2;function KHe(t,e,r,i){var n=r.length,s=n,o=!i;if(t==null)return!s;for(t=Object(t);n--;){var a=r[n];if(o&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++n{var UHe=Rn();function HHe(t){return t===t&&!UHe(t)}yte.exports=HHe});var Bte=w((Bht,wte)=>{var GHe=OF(),jHe=Uf();function YHe(t){for(var e=jHe(t),r=e.length;r--;){var i=e[r],n=t[i];e[r]=[i,n,GHe(n)]}return e}wte.exports=YHe});var MF=w((bht,bte)=>{function qHe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}bte.exports=qHe});var vte=w((Qht,Qte)=>{var JHe=Ite(),WHe=Bte(),zHe=MF();function _He(t){var e=WHe(t);return e.length==1&&e[0][2]?zHe(e[0][0],e[0][1]):function(r){return r===t||JHe(r,t,e)}}Qte.exports=_He});var x0=w((vht,Ste)=>{var VHe=yC();function XHe(t,e,r){var i=t==null?void 0:VHe(t,e);return i===void 0?r:i}Ste.exports=XHe});var xte=w((Sht,kte)=>{var ZHe=TF(),$He=x0(),eGe=$R(),tGe=a0(),rGe=OF(),iGe=MF(),nGe=cu(),sGe=1,oGe=2;function aGe(t,e){return tGe(t)&&rGe(e)?iGe(nGe(t),e):function(r){var i=$He(r,t);return i===void 0&&i===e?eGe(r,t):ZHe(e,i,sGe|oGe)}}kte.exports=aGe});var Dte=w((kht,Pte)=>{function AGe(t){return function(e){return e==null?void 0:e[t]}}Pte.exports=AGe});var Fte=w((xht,Rte)=>{var lGe=yC();function cGe(t){return function(e){return lGe(e,t)}}Rte.exports=cGe});var Lte=w((Pht,Nte)=>{var uGe=Dte(),gGe=Fte(),fGe=a0(),hGe=cu();function pGe(t){return fGe(t)?uGe(hGe(t)):gGe(t)}Nte.exports=pGe});var KF=w((Dht,Tte)=>{var dGe=vte(),CGe=xte(),mGe=h0(),EGe=Ms(),IGe=Lte();function yGe(t){return typeof t=="function"?t:t==null?mGe:typeof t=="object"?EGe(t)?CGe(t[0],t[1]):dGe(t):IGe(t)}Tte.exports=yGe});var UF=w((Rht,Ote)=>{var wGe=Lf(),BGe=BF(),bGe=KF();function QGe(t,e){var r={};return e=bGe(e,3),BGe(t,function(i,n,s){wGe(r,n,e(i,n,s))}),r}Ote.exports=QGe});var OC=w((Fht,Mte)=>{"use strict";function fu(t){this._maxSize=t,this.clear()}fu.prototype.clear=function(){this._size=0,this._values=Object.create(null)};fu.prototype.get=function(t){return this._values[t]};fu.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var vGe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Kte=/^\d+$/,SGe=/^\d/,kGe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,xGe=/^\s*(['"]?)(.*?)(\1)\s*$/,HF=512,Ute=new fu(HF),Hte=new fu(HF),Gte=new fu(HF);Mte.exports={Cache:fu,split:jF,normalizePath:GF,setter:function(t){var e=GF(t);return Hte.get(t)||Hte.set(t,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(MC,"__esModule",{value:!0});MC.create=NGe;MC.default=void 0;var LGe=OC(),P0={context:"$",value:"."};function NGe(t,e){return new D0(t,e)}var D0=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===P0.context,this.isValue=this.key[0]===P0.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?P0.context:this.isValue?P0.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LGe.getter)(this.path,!0),this.map=r.map}getValue(e,r,i){let n=this.isContext?i:this.isValue?e:r;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,r){return this.getValue(e,r==null?void 0:r.parent,r==null?void 0:r.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};MC.default=D0;D0.prototype.__isYupRef=!0});var jte=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.default=TGe;var OGe=JF(UF()),R0=JF(uu()),MGe=JF(hu());function JF(t){return t&&t.__esModule?t:{default:t}}function F0(){return F0=Object.assign||function(t){for(var e=1;e=0)&&(r[n]=t[n]);return r}function TGe(t){function e(r,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=r,u=KGe(r,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=t,{parent:m,context:y}=a;function b(j){return MGe.default.isRef(j)?j.getValue(n,m,y):j}function S(j={}){let Z=(0,OGe.default)(F0({value:n,originalValue:l,label:o,path:j.path||s},h,j.params),b),J=new R0.default(R0.default.formatError(j.message||p,Z),n,Z.path,j.type||g);return J.params=Z,J}let k=F0({path:s,parent:m,type:g,createError:S,resolve:b,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(k,n,k)).then(j=>{R0.default.isError(j)?i(j):j?i(null,j):i(S())})}catch(j){i(j)}return}let T;try{var Y;if(T=f.call(k,n,k),typeof((Y=T)==null?void 0:Y.then)=="function")throw new Error(`Validation test of type: "${k.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(j){i(j);return}R0.default.isError(T)?i(T):T?i(null,T):i(S())}return e.OPTIONS=t,e}});var WF=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.getIn=Yte;KC.default=void 0;var UGe=OC(),HGe=t=>t.substr(0,t.length-1).substr(1);function Yte(t,e,r,i=r){let n,s,o;return e?((0,UGe.forEach)(e,(a,l,c)=>{let u=l?HGe(a):a;if(t=t.resolve({context:i,parent:n,value:r}),t.innerType){let g=c?parseInt(u,10):0;if(r&&g>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=r,r=r&&r[g],t=t.innerType}if(!c){if(!t.fields||!t.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);n=r,r=r&&r[u],t=t.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:t,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:t}}var GGe=(t,e,r,i)=>Yte(t,e,r,i).schema,jGe=GGe;KC.default=jGe});var Jte=w(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});N0.default=void 0;var qte=YGe(hu());function YGe(t){return t&&t.__esModule?t:{default:t}}var L0=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){qte.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){qte.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(r(i.value)===e)return!0;return!1}clone(){let e=new L0;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),r.list.forEach(n=>i.delete(n)),r.refs.forEach(n=>i.delete(n)),i}};N0.default=L0});var dA=w(T0=>{"use strict";Object.defineProperty(T0,"__esModule",{value:!0});T0.default=void 0;var Wte=pA(p$()),jf=hA(),qGe=pA(P$()),zte=pA(y0()),O0=pA(jte()),_te=pA(SC()),JGe=pA(hu()),WGe=WF(),zGe=pA(pF()),Vte=pA(uu()),Xte=pA(Jte());function pA(t){return t&&t.__esModule?t:{default:t}}function qs(){return qs=Object.assign||function(t){for(var e=1;e{this.typeError(jf.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=qs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=qs({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Wte.default)(qs({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=r,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,i=e.clone(),n=qs({},r.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=r._typeError),i._whitelistError||(i._whitelistError=r._whitelistError),i._blacklistError||(i._blacklistError=r._blacklistError),i._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),i.tests=r.tests,i.exclusiveTests=r.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let i=r.conditions;r=r.clone(),r.conditions=[],r=i.reduce((n,s)=>s.resolve(n,e),r),r=r.resolve(e)}return r}cast(e,r={}){let i=this.resolve(qs({value:e},r)),n=i._cast(e,r);if(e!==void 0&&r.assert!==!1&&i.isType(n)!==!0){let s=(0,_te.default)(e),o=(0,_te.default)(n);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". + +attempted value: ${s} +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,r){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,r={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,u=e;l||(u=this._cast(u,qs({assert:!1},r)));let g={value:u,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,zte.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,zte.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,r,i){let n=this.resolve(qs({},r,{value:e}));return typeof i=="function"?n._validate(e,r,i):new Promise((s,o)=>n._validate(e,r,(a,l)=>{a?o(a):s(l)}))}validateSync(e,r){let i=this.resolve(qs({},r,{value:e})),n;return i._validate(e,qs({},r,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,r){return this.validate(e,r).then(()=>!0,i=>{if(Vte.default.isError(i))return!1;throw i})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(i){if(Vte.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Wte.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=jf.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=jf.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=jf.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,O0.default)(r),s=r.exclusive||r.name&&i.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(i.exclusiveTests[r.name]=!!r.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let i=this.clone(),n=(0,zGe.default)(e).map(s=>new JGe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new qGe.default(n,r)),i}typeError(e){var r=this.clone();return r._typeError=(0,O0.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=jf.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,O0.default)({message:r,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,r=jf.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,O0.default)({message:r,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:i}=e.spec;return{meta:i,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};T0.default=Aa;Aa.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Aa.prototype[`${t}At`]=function(e,r,i={}){let{parent:n,parentPath:s,schema:o}=(0,WGe.getIn)(this,e,r,i.context);return o[t](n&&n[s],qs({},i,{parent:n,path:e}))};for(let t of["equals","is"])Aa.prototype[t]=Aa.prototype.oneOf;for(let t of["not","nope"])Aa.prototype[t]=Aa.prototype.notOneOf;Aa.prototype.optional=Aa.prototype.notRequired});var $te=w(UC=>{"use strict";Object.defineProperty(UC,"__esModule",{value:!0});UC.create=Zte;UC.default=void 0;var VGe=_Ge(dA());function _Ge(t){return t&&t.__esModule?t:{default:t}}var zF=VGe.default,XGe=zF;UC.default=XGe;function Zte(){return new zF}Zte.prototype=zF.prototype});var Yf=w(M0=>{"use strict";Object.defineProperty(M0,"__esModule",{value:!0});M0.default=void 0;var ZGe=t=>t==null;M0.default=ZGe});var nre=w(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.create=ere;HC.default=void 0;var $Ge=tre(dA()),rre=hA(),ire=tre(Yf());function tre(t){return t&&t.__esModule?t:{default:t}}function ere(){return new K0}var K0=class extends $Ge.default{constructor(){super({type:"boolean"});this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=rre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,ire.default)(r)||r===!0}})}isFalse(e=rre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,ire.default)(r)||r===!1}})}};HC.default=K0;ere.prototype=K0.prototype});var are=w(GC=>{"use strict";Object.defineProperty(GC,"__esModule",{value:!0});GC.create=sre;GC.default=void 0;var la=hA(),CA=ore(Yf()),eje=ore(dA());function ore(t){return t&&t.__esModule?t:{default:t}}var tje=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,rje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,ije=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,nje=t=>(0,CA.default)(t)||t===t.trim(),sje={}.toString();function sre(){return new U0}var U0=class extends eje.default{constructor(){super({type:"string"});this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===sje?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=la.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,CA.default)(i)||i.length===this.resolve(e)}})}min(e,r=la.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,CA.default)(i)||i.length>=this.resolve(e)}})}max(e,r=la.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(i){return(0,CA.default)(i)||i.length<=this.resolve(e)}})}matches(e,r){let i=!1,n,s;return r&&(typeof r=="object"?{excludeEmptyString:i=!1,message:n,name:s}=r:n=r),this.test({name:s||"matches",message:n||la.string.matches,params:{regex:e},test:o=>(0,CA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=la.string.email){return this.matches(tje,{name:"email",message:e,excludeEmptyString:!0})}url(e=la.string.url){return this.matches(rje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=la.string.uuid){return this.matches(ije,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=la.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:nje})}lowercase(e=la.string.lowercase){return this.transform(r=>(0,CA.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,CA.default)(r)||r===r.toLowerCase()})}uppercase(e=la.string.uppercase){return this.transform(r=>(0,CA.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,CA.default)(r)||r===r.toUpperCase()})}};GC.default=U0;sre.prototype=U0.prototype});var cre=w(jC=>{"use strict";Object.defineProperty(jC,"__esModule",{value:!0});jC.create=Are;jC.default=void 0;var pu=hA(),du=lre(Yf()),oje=lre(dA());function lre(t){return t&&t.__esModule?t:{default:t}}var aje=t=>t!=+t;function Are(){return new H0}var H0=class extends oje.default{constructor(){super({type:"number"});this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!aje(e)}min(e,r=pu.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,du.default)(i)||i>=this.resolve(e)}})}max(e,r=pu.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,du.default)(i)||i<=this.resolve(e)}})}lessThan(e,r=pu.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(i){return(0,du.default)(i)||ithis.resolve(e)}})}positive(e=pu.number.positive){return this.moreThan(0,e)}negative(e=pu.number.negative){return this.lessThan(0,e)}integer(e=pu.number.integer){return this.test({name:"integer",message:e,test:r=>(0,du.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,du.default)(e)?e:e|0)}round(e){var r,i=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,du.default)(n)?n:Math[e](n))}};jC.default=H0;Are.prototype=H0.prototype});var ure=w(_F=>{"use strict";Object.defineProperty(_F,"__esModule",{value:!0});_F.default=Aje;var lje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Aje(t){var e=[1,4,5,6,7,10,11],r=0,i,n;if(n=lje.exec(t)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(r=n[10]*60+n[11],n[9]==="+"&&(r=0-r)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+r,n[6],n[7]))}else i=Date.parse?Date.parse(t):NaN;return i}});var hre=w(YC=>{"use strict";Object.defineProperty(YC,"__esModule",{value:!0});YC.create=VF;YC.default=void 0;var cje=G0(ure()),gre=hA(),fre=G0(Yf()),uje=G0(hu()),gje=G0(dA());function G0(t){return t&&t.__esModule?t:{default:t}}var XF=new Date(""),fje=t=>Object.prototype.toString.call(t)==="[object Date]";function VF(){return new qC}var qC=class extends gje.default{constructor(){super({type:"date"});this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,cje.default)(e),isNaN(e)?XF:new Date(e))})})}_typeCheck(e){return fje(e)&&!isNaN(e.getTime())}prepareParam(e,r){let i;if(uje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,r=gre.date.min){let i=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,fre.default)(n)||n>=this.resolve(i)}})}max(e,r=gre.date.max){var i=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,fre.default)(n)||n<=this.resolve(i)}})}};YC.default=qC;qC.INVALID_DATE=XF;VF.prototype=qC.prototype;VF.INVALID_DATE=XF});var dre=w((Jht,pre)=>{function hje(t,e,r,i){var n=-1,s=t==null?0:t.length;for(i&&s&&(r=t[++n]);++n{function pje(t){return function(e){return t==null?void 0:t[e]}}Cre.exports=pje});var Ire=w((zht,Ere)=>{var dje=mre(),Cje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},mje=dje(Cje);Ere.exports=mje});var wre=w((_ht,yre)=>{var Eje=Ire(),Ije=of(),yje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wje="\\u0300-\\u036f",Bje="\\ufe20-\\ufe2f",bje="\\u20d0-\\u20ff",Qje=wje+Bje+bje,vje="["+Qje+"]",Sje=RegExp(vje,"g");function kje(t){return t=Ije(t),t&&t.replace(yje,Eje).replace(Sje,"")}yre.exports=kje});var bre=w((Vht,Bre)=>{var xje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Pje(t){return t.match(xje)||[]}Bre.exports=Pje});var vre=w((Xht,Qre)=>{var Dje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Rje(t){return Dje.test(t)}Qre.exports=Rje});var qre=w((Zht,Sre)=>{var kre="\\ud800-\\udfff",Fje="\\u0300-\\u036f",Nje="\\ufe20-\\ufe2f",Lje="\\u20d0-\\u20ff",Tje=Fje+Nje+Lje,xre="\\u2700-\\u27bf",Pre="a-z\\xdf-\\xf6\\xf8-\\xff",Oje="\\xac\\xb1\\xd7\\xf7",Mje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Kje="\\u2000-\\u206f",Uje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Dre="A-Z\\xc0-\\xd6\\xd8-\\xde",Hje="\\ufe0e\\ufe0f",Rre=Oje+Mje+Kje+Uje,Fre="['\u2019]",Nre="["+Rre+"]",Gje="["+Tje+"]",Lre="\\d+",jje="["+xre+"]",Tre="["+Pre+"]",Ore="[^"+kre+Rre+Lre+xre+Pre+Dre+"]",Yje="\\ud83c[\\udffb-\\udfff]",qje="(?:"+Gje+"|"+Yje+")",Jje="[^"+kre+"]",Mre="(?:\\ud83c[\\udde6-\\uddff]){2}",Kre="[\\ud800-\\udbff][\\udc00-\\udfff]",qf="["+Dre+"]",Wje="\\u200d",Ure="(?:"+Tre+"|"+Ore+")",zje="(?:"+qf+"|"+Ore+")",Hre="(?:"+Fre+"(?:d|ll|m|re|s|t|ve))?",Gre="(?:"+Fre+"(?:D|LL|M|RE|S|T|VE))?",jre=qje+"?",Yre="["+Hje+"]?",_je="(?:"+Wje+"(?:"+[Jje,Mre,Kre].join("|")+")"+Yre+jre+")*",Vje="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Xje="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Zje=Yre+jre+_je,$je="(?:"+[jje,Mre,Kre].join("|")+")"+Zje,eYe=RegExp([qf+"?"+Tre+"+"+Hre+"(?="+[Nre,qf,"$"].join("|")+")",zje+"+"+Gre+"(?="+[Nre,qf+Ure,"$"].join("|")+")",qf+"?"+Ure+"+"+Hre,qf+"+"+Gre,Xje,Vje,Lre,$je].join("|"),"g");function tYe(t){return t.match(eYe)||[]}Sre.exports=tYe});var Wre=w(($ht,Jre)=>{var rYe=bre(),iYe=vre(),nYe=of(),sYe=qre();function oYe(t,e,r){return t=nYe(t),e=r?void 0:e,e===void 0?iYe(t)?sYe(t):rYe(t):t.match(e)||[]}Jre.exports=oYe});var ZF=w((ept,zre)=>{var aYe=dre(),AYe=wre(),lYe=Wre(),cYe="['\u2019]",uYe=RegExp(cYe,"g");function gYe(t){return function(e){return aYe(lYe(AYe(e).replace(uYe,"")),t,"")}}zre.exports=gYe});var Vre=w((tpt,_re)=>{var fYe=ZF(),hYe=fYe(function(t,e,r){return t+(r?"_":"")+e.toLowerCase()});_re.exports=hYe});var Zre=w((rpt,Xre)=>{var pYe=rB(),dYe=ZF(),CYe=dYe(function(t,e,r){return e=e.toLowerCase(),t+(r?pYe(e):e)});Xre.exports=CYe});var eie=w((ipt,$re)=>{var mYe=Lf(),EYe=BF(),IYe=KF();function yYe(t,e){var r={};return e=IYe(e,3),EYe(t,function(i,n,s){mYe(r,e(i,n,s),i)}),r}$re.exports=yYe});var rie=w((npt,$F)=>{$F.exports=function(t){return tie(wYe(t),t)};$F.exports.array=tie;function tie(t,e){var r=t.length,i=new Array(r),n={},s=r,o=BYe(e),a=bYe(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(t[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch(m){f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--r]=c}}}function wYe(t){for(var e=new Set,r=0,i=t.length;r{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.default=QYe;var vYe=j0(kC()),SYe=j0(rie()),kYe=OC(),xYe=j0(hu()),PYe=j0(Of());function j0(t){return t&&t.__esModule?t:{default:t}}function QYe(t,e=[]){let r=[],i=[];function n(s,o){var a=(0,kYe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,vYe.default)(t,s)){let o=t[s];~i.indexOf(s)||i.push(s),xYe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,PYe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return SYe.default.array(i,r).reverse()}});var sie=w(tN=>{"use strict";Object.defineProperty(tN,"__esModule",{value:!0});tN.default=DYe;function nie(t,e){let r=Infinity;return t.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return r=n,!0}),r}function DYe(t){return(e,r)=>nie(t,e)-nie(t,r)}});var gie=w(JC=>{"use strict";Object.defineProperty(JC,"__esModule",{value:!0});JC.create=oie;JC.default=void 0;var aie=ca(kC()),Aie=ca(Vre()),RYe=ca(Zre()),FYe=ca(eie()),NYe=ca(UF()),LYe=OC(),lie=hA(),TYe=ca(iie()),cie=ca(sie()),OYe=ca(y0()),MYe=ca(uu()),rN=ca(dA());function ca(t){return t&&t.__esModule?t:{default:t}}function Jf(){return Jf=Object.assign||function(t){for(var e=1;eObject.prototype.toString.call(t)==="[object Object]";function KYe(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(i=>r.indexOf(i)===-1)}var UYe=(0,cie.default)([]),Y0=class extends rN.default{constructor(e){super({type:"object"});this.fields=Object.create(null),this._sortErrors=UYe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch(n){i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return uie(e)||typeof e=="function"}_cast(e,r={}){var i;let n=super._cast(e,r);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=r.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Jf({},r,{parent:l,__validating:r.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,aie.default)(n,g);if(f){let p,m=n[g];c.path=(r.path?`${r.path}.`:"")+g,f=f.resolve({value:m,context:r.context,parent:l});let y="spec"in f?f.spec:void 0,b=y==null?void 0:y.strict;if(y==null?void 0:y.strip){u=u||g in n;continue}p=!r.__validating||!b?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,r={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(u,g)=>{if(u){if(!MYe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!uie(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,m)=>{let y=h.indexOf(".")===-1?(r.path?`${r.path}.`:"")+h:`${r.path||""}["${h}"]`,b=this.fields[h];if(b&&"validate"in b){b.validate(g[h],Jf({},r,{path:y,from:o,strict:!0,parent:g,originalValue:a[h]}),m);return}m(null)});(0,OYe.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:r.path},i)})}clone(e){let r=super.clone(e);return r.fields=Jf({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),i=r.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof rN.default&&s instanceof rN.default&&(i[n]=s.concat(o))}return r.withMutation(()=>r.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let i=this.fields[r];e[r]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,cie.default)(Object.keys(n)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,TYe.default)(n,i._excludedEdges),i}pick(e){let r={};for(let i of e)this.fields[i]&&(r[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(r)))}omit(e){let r=this.clone(),i=r.fields;r.fields={};for(let n of e)delete i[n];return r.withMutation(()=>r.shape(i))}from(e,r,i){let n=(0,LYe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,aie.default)(s,e)&&(o=Jf({},s),i||delete o[e],o[r]=n(s)),o})}noUnknown(e=!0,r=lie.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:r,test(n){if(n==null)return!0;let s=KYe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,r=lie.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,FYe.default)(r,(i,n)=>e(n)))}camelCase(){return this.transformKeys(RYe.default)}snakeCase(){return this.transformKeys(Aie.default)}constantCase(){return this.transformKeys(e=>(0,Aie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,NYe.default)(this.fields,r=>r.describe()),e}};JC.default=Y0;function oie(t){return new Y0(t)}oie.prototype=Y0.prototype});var hie=w(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.create=fie;WC.default=void 0;var iN=Wf(Yf()),HYe=Wf(Of()),GYe=Wf(SC()),nN=hA(),jYe=Wf(y0()),YYe=Wf(uu()),qYe=Wf(dA());function Wf(t){return t&&t.__esModule?t:{default:t}}function q0(){return q0=Object.assign||function(t){for(var e=1;e{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch(i){r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let i=super._cast(e,r);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,q0({},r,{path:`${r.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,r={},i){var n,s;let o=[],a=r.sync,l=r.path,c=this.innerType,u=(n=r.abortEarly)!=null?n:this.spec.abortEarly,g=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(h,p)=>{if(h){if(!YYe.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let m=new Array(p.length);for(let y=0;yc.validate(b,k,Y)}(0,jYe.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:m},i)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,HYe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,GYe.default)(e));return r.innerType=e,r}length(e,r=nN.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,iN.default)(i)||i.length===this.resolve(e)}})}min(e,r){return r=r||nN.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,iN.default)(i)||i.length>=this.resolve(e)}})}max(e,r){return r=r||nN.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,iN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(r):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};WC.default=J0;fie.prototype=J0.prototype});var pie=w(zC=>{"use strict";Object.defineProperty(zC,"__esModule",{value:!0});zC.create=JYe;zC.default=void 0;var zYe=WYe(Of());function WYe(t){return t&&t.__esModule?t:{default:t}}function JYe(t){return new sN(t)}var sN=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,i={})=>{let n=this.builder(r,i);if(!(0,zYe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,i){return this._resolve(e,r).validate(e,r,i)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,i){return this._resolve(r,i).validateAt(e,r,i)}validateSyncAt(e,r,i){return this._resolve(r,i).validateSyncAt(e,r,i)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},_Ye=sN;zC.default=_Ye});var die=w(oN=>{"use strict";Object.defineProperty(oN,"__esModule",{value:!0});oN.default=VYe;var ZYe=XYe(hA());function XYe(t){return t&&t.__esModule?t:{default:t}}function VYe(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{ZYe.default[e][r]=t[e][r]})})}});var AN=w(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.addMethod=$Ye;Object.defineProperty(Br,"MixedSchema",{enumerable:!0,get:function(){return Cie.default}});Object.defineProperty(Br,"mixed",{enumerable:!0,get:function(){return Cie.create}});Object.defineProperty(Br,"BooleanSchema",{enumerable:!0,get:function(){return aN.default}});Object.defineProperty(Br,"bool",{enumerable:!0,get:function(){return aN.create}});Object.defineProperty(Br,"boolean",{enumerable:!0,get:function(){return aN.create}});Object.defineProperty(Br,"StringSchema",{enumerable:!0,get:function(){return mie.default}});Object.defineProperty(Br,"string",{enumerable:!0,get:function(){return mie.create}});Object.defineProperty(Br,"NumberSchema",{enumerable:!0,get:function(){return Eie.default}});Object.defineProperty(Br,"number",{enumerable:!0,get:function(){return Eie.create}});Object.defineProperty(Br,"DateSchema",{enumerable:!0,get:function(){return Iie.default}});Object.defineProperty(Br,"date",{enumerable:!0,get:function(){return Iie.create}});Object.defineProperty(Br,"ObjectSchema",{enumerable:!0,get:function(){return yie.default}});Object.defineProperty(Br,"object",{enumerable:!0,get:function(){return yie.create}});Object.defineProperty(Br,"ArraySchema",{enumerable:!0,get:function(){return wie.default}});Object.defineProperty(Br,"array",{enumerable:!0,get:function(){return wie.create}});Object.defineProperty(Br,"ref",{enumerable:!0,get:function(){return eqe.create}});Object.defineProperty(Br,"lazy",{enumerable:!0,get:function(){return tqe.create}});Object.defineProperty(Br,"ValidationError",{enumerable:!0,get:function(){return rqe.default}});Object.defineProperty(Br,"reach",{enumerable:!0,get:function(){return iqe.default}});Object.defineProperty(Br,"isSchema",{enumerable:!0,get:function(){return Bie.default}});Object.defineProperty(Br,"setLocale",{enumerable:!0,get:function(){return nqe.default}});Object.defineProperty(Br,"BaseSchema",{enumerable:!0,get:function(){return sqe.default}});var Cie=Cu($te()),aN=Cu(nre()),mie=Cu(are()),Eie=Cu(cre()),Iie=Cu(hre()),yie=Cu(gie()),wie=Cu(hie()),eqe=hu(),tqe=pie(),rqe=_C(uu()),iqe=_C(WF()),Bie=_C(Of()),nqe=_C(die()),sqe=_C(dA());function _C(t){return t&&t.__esModule?t:{default:t}}function bie(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return bie=function(){return t},t}function Cu(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=bie();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}function $Ye(t,e,r){if(!t||!(0,Bie.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}});var xie=w((bpt,XC)=>{"use strict";var Aqe=process.env.TERM_PROGRAM==="Hyper",lqe=process.platform==="win32",vie=process.platform==="linux",lN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Sie=Object.assign({},lN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),kie=Object.assign({},lN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:vie?"\u25B8":"\u276F",pointerSmall:vie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});XC.exports=lqe&&!Aqe?Sie:kie;Reflect.defineProperty(XC.exports,"common",{enumerable:!1,value:lN});Reflect.defineProperty(XC.exports,"windows",{enumerable:!1,value:Sie});Reflect.defineProperty(XC.exports,"other",{enumerable:!1,value:kie})});var mo=w((Qpt,cN)=>{"use strict";var cqe=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),uqe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Pie=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`[${s.codes[0]}m`,a=s.close=`[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},r=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(t.enabled===!1)return s;if(t.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=r(t.styles[o[c]],a,l);return a},n=(s,o,a)=>{t.styles[s]=e({name:s,codes:o}),(t.keys[a]||(t.keys[a]=[])).push(s),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(c){t.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,t),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=uqe,t.hasColor=t.hasAnsi=s=>(t.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&t.ansiRegex.test(s)),t.alias=(s,o)=>{let a=typeof o=="string"?t[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),t.styles[s]=a,a.stack=[s]),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(l){t.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,t),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},t.theme=s=>{if(!cqe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))t.alias(o,s[o]);return t},t.alias("unstyle",s=>typeof s=="string"&&s!==""?(t.ansiRegex.lastIndex=0,s.replace(t.ansiRegex,"")):""),t.alias("noop",s=>s),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=xie(),t.define=n,t};cN.exports=Pie();cN.exports.create=Pie});var Xi=w(Lt=>{"use strict";var gqe=Object.prototype.toString,Js=mo(),Die=!1,uN=[],Rie={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Lt.longest=(t,e)=>t.reduce((r,i)=>Math.max(r,e?i[e].length:i.length),0);Lt.hasColor=t=>!!t&&Js.hasColor(t);var z0=Lt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Lt.nativeType=t=>gqe.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");Lt.isAsyncFn=t=>Lt.nativeType(t)==="asyncfunction";Lt.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";Lt.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;Lt.scrollDown=(t=[])=>[...t.slice(1),t[0]];Lt.scrollUp=(t=[])=>[t.pop(),...t];Lt.reorder=(t=[])=>{let e=t.slice();return e.sort((r,i)=>r.index>i.index?1:r.index{let i=t.length,n=r===i?0:r<0?i-1:r,s=t[e];t[e]=t[n],t[n]=s};Lt.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};Lt.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};Lt.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:i=` +`+r,width:n=80}=e;n-=((i+r).match(/[^\S\n]/g)||[]).length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=t.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),r+c.join(i)};Lt.unmute=t=>{let e=t.stack.find(i=>Js.keys.color.includes(i));return e?Js[e]:t.stack.find(i=>i.slice(2)==="bg")?Js[e.slice(2)]:i=>i};Lt.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";Lt.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Js.keys.color.includes(i));if(e){let i=Js["bg"+Lt.pascal(e)];return i?i.black:t}let r=t.stack.find(i=>i.slice(0,2)==="bg");return r?Js[r.slice(2).toLowerCase()]||t:Js.none};Lt.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Js.keys.color.includes(i)),r=t.stack.find(i=>i.slice(0,2)==="bg");if(e&&!r)return Js[Rie[e]||e];if(r){let i=r.slice(2).toLowerCase(),n=Rie[i];return n&&Js["bg"+Lt.pascal(n)]||t}return Js.none};Lt.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=r<10?"0"+r:r;return n+":"+s+" "+i};Lt.set=(t={},e="",r)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:r;return!Lt.isObject(a)&&s{let i=t[e]==null?e.split(".").reduce((n,s)=>n&&n[s],t):t[e];return i==null?r:i};Lt.mixin=(t,e)=>{if(!z0(t))return e;if(!z0(e))return t;for(let r of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,r);if(i.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&z0(i.value)){let n=Object.getOwnPropertyDescriptor(t,r);z0(n.value)?t[r]=Lt.merge({},t[r],e[r]):Reflect.defineProperty(t,r,i)}else Reflect.defineProperty(t,r,i);else Reflect.defineProperty(t,r,i)}return t};Lt.merge=(...t)=>{let e={};for(let r of t)Lt.mixin(e,r);return e};Lt.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let i of Object.keys(r)){let n=r[i];typeof n=="function"?Lt.define(t,i,n.bind(e)):Lt.define(t,i,n)}};Lt.onExit=t=>{let e=(r,i)=>{Die||(Die=!0,uN.forEach(n=>n()),r===!0&&process.exit(128+i))};uN.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),uN.push(t)};Lt.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};Lt.defineExport=(t,e,r)=>{let i;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():r()}})}});var Fie=w(_f=>{"use strict";_f.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};_f.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};_f.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};_f.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};_f.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var Tie=w((kpt,Nie)=>{"use strict";var Lie=require("readline"),fqe=Fie(),hqe=/^(?:\x1b)([a-zA-Z0-9])$/,pqe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,dqe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Cqe(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function mqe(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var _0=(t="",e={})=>{let r,i=N({name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t},e);if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t=""+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=i.sequence||""),i.sequence=i.sequence||t||i.name,t==="\r")i.raw=void 0,i.name="return";else if(t===` +`)i.name="enter";else if(t===" ")i.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x7F"||t==="\b")i.name="backspace",i.meta=t.charAt(0)==="";else if(t===""||t==="")i.name="escape",i.meta=t.length===2;else if(t===" "||t===" ")i.name="space",i.meta=t.length===2;else if(t<="")i.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")i.name="number";else if(t.length===1&&t>="a"&&t<="z")i.name=t;else if(t.length===1&&t>="A"&&t<="Z")i.name=t.toLowerCase(),i.shift=!0;else if(r=hqe.exec(t))i.meta=!0,i.shift=/^[A-Z]$/.test(r[1]);else if(r=pqe.exec(t)){let n=[...t];n[0]===""&&n[1]===""&&(i.option=!0);let s=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),o=(r[3]||r[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=dqe[s],i.shift=Cqe(s)||i.shift,i.ctrl=mqe(s)||i.ctrl}return i};_0.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let i=Lie.createInterface({terminal:!0,input:r});Lie.emitKeypressEvents(r,i);let n=(a,l)=>e(a,_0(a,l),i),s=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",n),i.resume(),()=>{r.isTTY&&r.setRawMode(s),r.removeListener("keypress",n),i.pause(),i.close()}};_0.action=(t,e,r)=>{let i=N(N({},fqe),r);return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Nie.exports=_0});var Mie=w((xpt,Oie)=>{"use strict";Oie.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let i=e[r];typeof i=="number"&&(i={interval:i}),Eqe(t,r,i)}};function Eqe(t,e,r={}){let i=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=r.interval||120;i.frames=r.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,t.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),t.once("close",()=>i.stop()),i.stop}});var Hie=w((Ppt,Kie)=>{"use strict";var{define:Iqe,width:yqe}=Xi(),Uie=class{constructor(e){let r=e.options;Iqe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=yqe(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e=N({},this);return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};Kie.exports=Uie});var jie=w((Dpt,Gie)=>{"use strict";var gN=Xi(),Fi=mo(),fN={default:Fi.noop,noop:Fi.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||gN.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||gN.complement(this.primary)},primary:Fi.cyan,success:Fi.green,danger:Fi.magenta,strong:Fi.bold,warning:Fi.yellow,muted:Fi.dim,disabled:Fi.gray,dark:Fi.dim.gray,underline:Fi.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};fN.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(Fi.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(Fi.visible=t.styles.visible);let e=gN.merge({},fN,t.styles);delete e.merge;for(let r of Object.keys(Fi))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Fi[r]});for(let r of Object.keys(Fi.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Fi[r]});return e};Gie.exports=fN});var qie=w((Rpt,Yie)=>{"use strict";var hN=process.platform==="win32",mA=mo(),wqe=Xi(),pN=ie(N({},mA.symbols),{upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:mA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:mA.symbols.question,submitted:mA.symbols.check,cancelled:mA.symbols.cross},separator:{pending:mA.symbols.pointerSmall,submitted:mA.symbols.middot,cancelled:mA.symbols.middot},radio:{off:hN?"( )":"\u25EF",on:hN?"(*)":"\u25C9",disabled:hN?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]});pN.merge=t=>{let e=wqe.merge({},mA.symbols,pN,t.symbols);return delete e.merge,e};Yie.exports=pN});var Wie=w((Fpt,Jie)=>{"use strict";var Bqe=jie(),bqe=qie(),Qqe=Xi();Jie.exports=t=>{t.options=Qqe.merge({},t.options.theme,t.options),t.symbols=bqe.merge(t.options),t.styles=Bqe.merge(t.options)}});var Zie=w((zie,_ie)=>{"use strict";var Vie=process.env.TERM_PROGRAM==="Apple_Terminal",vqe=mo(),dN=Xi(),Eo=_ie.exports=zie,Nr="[",Xie="\x07",CN=!1,kl=Eo.code={bell:Xie,beep:Xie,beginning:`${Nr}G`,down:`${Nr}J`,esc:Nr,getPosition:`${Nr}6n`,hide:`${Nr}?25l`,line:`${Nr}2K`,lineEnd:`${Nr}K`,lineStart:`${Nr}1K`,restorePosition:Nr+(Vie?"8":"u"),savePosition:Nr+(Vie?"7":"s"),screen:`${Nr}2J`,show:`${Nr}?25h`,up:`${Nr}1J`},mu=Eo.cursor={get hidden(){return CN},hide(){return CN=!0,kl.hide},show(){return CN=!1,kl.show},forward:(t=1)=>`${Nr}${t}C`,backward:(t=1)=>`${Nr}${t}D`,nextLine:(t=1)=>`${Nr}E`.repeat(t),prevLine:(t=1)=>`${Nr}F`.repeat(t),up:(t=1)=>t?`${Nr}${t}A`:"",down:(t=1)=>t?`${Nr}${t}B`:"",right:(t=1)=>t?`${Nr}${t}C`:"",left:(t=1)=>t?`${Nr}${t}D`:"",to(t,e){return e?`${Nr}${e+1};${t+1}H`:`${Nr}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?mu.left(-t):t>0?mu.right(t):"",r+=e<0?mu.up(-e):e>0?mu.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:i,input:n,prompt:s,size:o,value:a}=t;if(i=dN.isPrimitive(i)?String(i):"",n=dN.isPrimitive(n)?String(n):"",a=dN.isPrimitive(a)?String(a):"",o){let l=Eo.cursor.up(o)+Eo.cursor.to(s.length),c=n.length-r;return c>0&&(l+=Eo.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+r;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),Eo.cursor.move(l)}}},mN=Eo.erase={screen:kl.screen,up:kl.up,down:kl.down,line:kl.line,lineEnd:kl.lineEnd,lineStart:kl.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return mN.line+mu.to(0);let r=s=>[...vqe.unstyle(s)].length,i=t.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(r(s)-1,0)/e);return(mN.line+mu.prevLine()).repeat(n-1)+mN.line+mu.to(0)}});var Vf=w((Npt,$ie)=>{"use strict";var Sqe=require("events"),ene=mo(),EN=Tie(),kqe=Mie(),xqe=Hie(),Pqe=Wie(),Tn=Xi(),Eu=Zie(),V0=class extends Sqe{constructor(e={}){super();this.name=e.name,this.type=e.type,this.options=e,Pqe(this),kqe(this),this.state=new xqe(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Rqe(this.options.margin),this.setMaxListeners(0),Dqe(this)}async keypress(e,r={}){this.keypressed=!0;let i=EN.action(e,EN(e,r),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Eu.code.beep)}cursorHide(){this.stdout.write(Eu.cursor.hide()),Tn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Eu.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Eu.cursor.down(e)+Eu.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:r,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Eu.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:r,prompt:i}=this.state;i=ene.unstyle(i);let n=ene.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`),c=l[0],u=l[l.length-1],f=(i+(r?" "+r:"")).length,h=fe.call(this,this.value),this.result=()=>i.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let n=r.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=r&&r[e]!=null?r[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,r,i);return!g&&r&&r[e]?this.resolve(c,s,r,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,i=this.state;return i.timer=r,Tn.isObject(e)&&(e=e[i.status]||e.pending),Tn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Tn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,i=this.state;i.timer=r;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Tn.isObject(s)&&(s=s[i.status]||s.pending),Tn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,r){let i=await this.element("pointer",e,r);if(typeof i=="string"&&Tn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===r,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Tn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,r){let i=await this.element("indicator",e,r);if(typeof i=="string"&&Tn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Tn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Tn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Tn.resolve(this,e,...r)}get base(){return V0.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Tn.height(this.stdout,25)}get width(){return this.options.columns||Tn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,i=[r,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function Dqe(t){let e=n=>t[n]===void 0||typeof t[n]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(t.options)){if(r.includes(n)||/^on[A-Z]/.test(n))continue;let s=t.options[n];typeof s=="function"&&e(n)?i.includes(n)||(t[n]=s.bind(t)):typeof t[n]!="function"&&(t[n]=s)}}function Rqe(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=n=>n%2==0?` +`:" ",i=[];for(let n=0;n<4;n++){let s=r(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}$ie.exports=V0});var ine=w((Lpt,tne)=>{"use strict";var Fqe=Xi(),rne={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return rne.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};tne.exports=(t,e={})=>{let r=Fqe.merge({},rne,e.roles);return r[t]||r.default}});var ZC=w((Tpt,nne)=>{"use strict";var Nqe=mo(),Lqe=Vf(),Tqe=ine(),X0=Xi(),{reorder:IN,scrollUp:Oqe,scrollDown:Mqe,isObject:sne,swap:Kqe}=X0,one=class extends Lqe{constructor(e){super(e);this.cursorHide(),this.maxSelected=e.maxSelected||Infinity,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");sne(r)&&(r=Object.keys(r)),Array.isArray(r)?(i!=null&&(this.index=this.findIndex(i)),r.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(r=i),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,r,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=Tqe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,X0.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Nqe.unstyle(e.message).length));let o=N({},e);return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,i){let n=await this.toChoice(e,r,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,r,i){let n=N({name:"New choice name?",editable:!0,newChoice:!0},e),s=await this.addChoice(n,r,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(n=>this.toggle(n,r));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return ane(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=IN(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=r(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=IN(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=IN(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>r&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===r-1?this.alert():e>r&&i===r-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=Oqe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=Mqe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Kqe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&r.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,r),i),{})}filter(e,r){let i=(a,l)=>[a.name,l].includes(e),n=typeof e=="function"?e:i,o=(this.options.multiple?this.state._choices:this.choices).filter(n);return r?o.map(a=>a[r]):o}find(e,r){if(sne(e))return r?e[r]:e;let i=(o,a)=>[o.name,a].includes(e),n=typeof e=="function"?e:i,s=this.choices.find(n);if(s)return r?s[r]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:r,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&r!==!1&&i!==!0&&(s=X0.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(i=>i.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let i=this.find(r);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return ane(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:i}=this,n=e.limit||this._limit||r.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function ane(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(X0.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let i=r.choices.filter(n=>!t.isDisabled(n));r.enabled=i.every(n=>n.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}nne.exports=one});var xl=w((Opt,Ane)=>{"use strict";var Uqe=ZC(),yN=Xi(),lne=class extends Uqe{constructor(e){super(e);this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let i=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!yN.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await this.indicator(e,r)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,r);o&&!yN.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,r),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(yN.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let i=this.margin[0]+r.join(` +`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` +`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(r),this.write([n,i,u,g].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Ane.exports=lne});var gne=w((Mpt,cne)=>{"use strict";var Hqe=xl(),Gqe=(t,e)=>{let r=t.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(r),o=e(i.slice(s,s+r.length));return s>=0?i.slice(0,s)+o+i.slice(s+r.length):i}},une=class extends Hqe{constructor(e){super(e);this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:i}=this.state;return this.input=i.slice(0,r)+e+i.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let i=e.toLowerCase();return r.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Gqe(this.input,e),i=this.choices;this.choices=i.map(n=>ie(N({},n),{message:r(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};cne.exports=une});var BN=w((Kpt,fne)=>{"use strict";var wN=Xi();fne.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||t.styles.placeholder,l=wN.inverse(t.styles.primary),c=m=>l(t.styles.black(m)),u=r,g=" ",f=c(g);if(t.blink&&t.blink.off===!0&&(c=m=>m,f=""),s&&n===0&&i===""&&r==="")return c(g);if(s&&n===0&&(r===i||r===""))return c(i[0])+a(i.slice(1));i=wN.isPrimitive(i)?`${i}`:"",r=wN.isPrimitive(r)?`${r}`:"";let h=i&&i.startsWith(r)&&i!==r,p=h?c(i[r.length]):f;if(n!==r.length&&s===!0&&(u=r.slice(0,n)+c(r[n])+r.slice(n+1),p=""),s===!1&&(p=""),h){let m=t.styles.unstyle(u+p);return u+p+a(i.slice(m.length))}return u+p}});var Z0=w((Upt,hne)=>{"use strict";var jqe=mo(),Yqe=xl(),qqe=BN(),pne=class extends Yqe{constructor(e){super(ie(N({},e),{multiple:!0}));this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:i,input:n}=r;return r.value=r.input=n.slice(0,i)+e+n.slice(i),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:i}=e;return e.value=e.input=i.slice(0,r-1)+i.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:i}=e;if(i[r]===void 0)return this.alert();let n=`${i}`.slice(0,r)+`${i}`.slice(r+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:i}=e;return r&&r.startsWith(i)&&i!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let i=await this.resolve(e.separator,this.state,e,r)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,m=this.index===r,y=e.validate||(()=>!0),b=await this.choiceSeparator(e,r),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let k=this.values[a]=c||o,T=c?"success":"dark";await y.call(e,k,this.state)!==!0&&(T="danger");let j=n[T](await this.indicator(e,r))+(e.pad||""),Z=this.indent(e),J=()=>[Z,j,S+b,c,p].filter(Boolean).join(" ");if(i.submitted)return S=jqe.unstyle(S),c=g(c),p="",J();if(e.format)c=await e.format.call(this,c,e,r);else{let re=this.styles.muted;c=qqe(this,{input:c,initial:o,pos:s,showCursor:m,color:re})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,k,e,r)),m&&(S=f(S)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),J()}async submit(){return this.value=this.values,super.base.submit.call(this)}};hne.exports=pne});var bN=w((Hpt,dne)=>{"use strict";var Jqe=Z0(),Wqe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Cne=(t=Wqe)=>{class e extends Jqe{constructor(i){super(i)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Cne(i)}}return e};dne.exports=Cne()});var Ine=w((Gpt,mne)=>{"use strict";var zqe=bN();function _qe(t,e){return t.username===this.options.username&&t.password===this.options.password}var Ene=(t=_qe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class r extends zqe.create(t){constructor(n){super(ie(N({},n),{choices:e}))}static create(n){return Ene(n)}}return r};mne.exports=Ene()});var $0=w((jpt,yne)=>{"use strict";var Vqe=Vf(),{isPrimitive:Xqe,hasColor:Zqe}=Xi(),wne=class extends Vqe{constructor(e){super(e);this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:i}=this;return i.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return Xqe(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return Zqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(r),this.write([l,a,f].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};yne.exports=wne});var Qne=w((Ypt,Bne)=>{"use strict";var $qe=$0(),bne=class extends $qe{constructor(e){super(e);this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Bne.exports=bne});var kne=w((qpt,vne)=>{"use strict";var eJe=xl(),tJe=Z0(),Xf=tJe.prototype,Sne=class extends eJe{constructor(e){super(ie(N({},e),{multiple:!0}));this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Xf.dispatch.call(this,e,r)}append(e,r){return Xf.append.call(this,e,r)}delete(e,r){return Xf.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Xf.next.call(this):super.next()}prev(){return this.focused.editable?Xf.prev.call(this):super.prev()}async indicator(e,r){let i=e.indicator||"",n=e.editable?i:super.indicator(e,r);return await this.resolve(n,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?Xf.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let i=r.parent?this.value[r.parent.name]:this.value;if(r.editable?i=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(i=r.enabled===!0),e=await r.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};vne.exports=Sne});var Iu=w((Jpt,xne)=>{"use strict";var rJe=Vf(),iJe=BN(),{isPrimitive:nJe}=Xi(),Pne=class extends rJe{constructor(e){super(e);this.initial=nJe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let i=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!i||i.name!=="return")?this.append(` +`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:i}=this.state;this.input=`${i}`.slice(0,r)+e+`${i}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),i=this.input.slice(e),n=r.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):iJe(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),i=await this.separator(),n=await this.message(),s=[r,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` +`)),this.restore()}};xne.exports=Pne});var Rne=w((Wpt,Dne)=>{"use strict";var sJe=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),eb=t=>sJe(t).filter(Boolean);Dne.exports=(t,e={},r="")=>{let{past:i=[],present:n=""}=e,s,o;switch(t){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:eb([r,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:eb([...s,r]),present:o};case"save":return{past:eb([...i,r]),present:""};case"remove":return o=eb(i.filter(a=>a!==r)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${t}"`)}}});var QN=w((zpt,Fne)=>{"use strict";var oJe=Iu(),Nne=Rne(),Lne=class extends oJe{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let i=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Nne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Nne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Fne.exports=Lne});var Mne=w((_pt,Tne)=>{"use strict";var aJe=Iu(),One=class extends aJe{format(){return""}};Tne.exports=One});var Hne=w((Vpt,Kne)=>{"use strict";var AJe=Iu(),Une=class extends AJe{constructor(e={}){super(e);this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Kne.exports=Une});var Yne=w((Xpt,Gne)=>{"use strict";var lJe=xl(),jne=class extends lJe{constructor(e){super(ie(N({},e),{multiple:!0}))}};Gne.exports=jne});var vN=w((Zpt,qne)=>{"use strict";var cJe=Iu(),Jne=class extends cJe{constructor(e={}){super(N({style:"number"},e));this.min=this.isValue(e.min)?this.toNumber(e.min):-Infinity,this.max=this.isValue(e.max)?this.toNumber(e.max):Infinity,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,i=this.toNumber(this.input);return i>this.max+r?this.alert():(this.input=`${i+r}`,this.render())}down(e){let r=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};qne.exports=Jne});var zne=w(($pt,Wne)=>{Wne.exports=vN()});var Xne=w((edt,_ne)=>{"use strict";var uJe=Iu(),Vne=class extends uJe{constructor(e){super(e);this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};_ne.exports=Vne});var tse=w((tdt,Zne)=>{"use strict";var gJe=mo(),fJe=ZC(),$ne=Xi(),ese=class extends fJe{constructor(e={}){super(e);this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` + `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){if(this.scaleKey===!1||this.state.submitted)return"";let e=this.scale.map(i=>` ${i.name} - ${i.message}`);return["",...e].map(i=>this.styles.muted(i)).join(` +`)}renderScaleHeading(e){let r=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-r.join("").length,n=Math.round(i/(r.length-1)),o=r.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,r,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,i);let n=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let i=e.scale.map(s=>this.scaleIndicator(e,s,r)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await e.hint;s&&!$ne.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,r),u=await this.renderScale(e,r),g=this.margin[1]+this.margin[3];this.scaleLength=gJe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=$ne.wordWrap(c,{width:this.widths[0],newline:a}).split(` +`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(` +`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),r=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...r.map(n=>n.join(" "))].join(` +`)}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(r),this.write([a,o,c,g,f].filter(Boolean).join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Zne.exports=ese});var sse=w((rdt,rse)=>{"use strict";var ise=mo(),hJe=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",nse=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=hJe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},pJe=async(t={},e={},r=i=>i)=>{let i=new Set,n=t.fields||[],s=t.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uT.name===b.key);b.field=n.find(T=>T.name===b.key),k||(k=new nse(b),a.push(k)),k.lines.push(b.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};rse.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),i=N(N({},e.values),e.initial),{tabstops:n,items:s,keys:o}=await pJe(e,i),a=SN("result",t,e),l=SN("format",t,e),c=SN("validate",t,e,!0),u=t.isValue.bind(t);return async(g={},f=!1)=>{let h=0;g.required=r,g.items=s,g.keys=o,g.output="";let p=async(S,k,T,Y)=>{let j=await c(S,k,T,Y);return j===!1?"Invalid field "+T.name:j};for(let S of n){let k=S.value,T=S.key;if(S.type!=="template"){k&&(g.output+=k);continue}if(S.type==="template"){let Y=s.find(ee=>ee.name===T);e.required===!0&&g.required.add(Y.name);let j=[Y.input,g.values[Y.value],Y.value,k].find(u),J=(Y.field||{}).message||S.inner;if(f){let ee=await p(g.values[T],g,Y,h);if(ee&&typeof ee=="string"||ee===!1){g.invalid.set(T,ee);continue}g.invalid.delete(T);let A=await a(g.values[T],g,Y,h);g.output+=ise.unstyle(A);continue}Y.placeholder=!1;let re=k;k=await l(k,g,Y,h),j!==k?(g.values[T]=j,k=t.styles.typing(j),g.missing.delete(J)):(g.values[T]=void 0,j=`<${J}>`,k=t.styles.primary(j),Y.placeholder=!0,g.required.has(T)&&g.missing.add(J)),g.missing.has(J)&&g.validating&&(k=t.styles.warning(j)),g.invalid.has(T)&&g.validating&&(k=t.styles.danger(j)),h===g.index&&(re!==k?k=t.styles.underline(k):k=t.styles.heading(ise.unstyle(k))),h++}k&&(g.output+=k)}let m=g.output.split(` +`).map(S=>" "+S),y=s.length,b=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(k=>{m[k][0]===" "&&(m[k]=g.styles.danger(g.symbols.bullet)+m[k].slice(1))}),t.isValue(g.values[S.name])&&b++;return g.completed=(b/y*100).toFixed(0),g.output=m.join(` +`),g.output}};function SN(t,e,r,i){return(n,s,o,a)=>typeof o.field[t]=="function"?o.field[t].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Ase=w((idt,ose)=>{"use strict";var dJe=mo(),CJe=sse(),mJe=Vf(),ase=class extends mJe{constructor(e){super(e);this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await CJe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:i,size:n}=this.state,s=[this.options.newline,` +`].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=r[e]||"",m=await this.format(p),y=await this.footer();m&&(c+=" "+m),f&&!m&&this.state.completed===0&&(c+=" "+f),this.clear(n);let b=[u,c,h,y,g.trim()];this.write(b.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:r,keys:i,index:n}=this.state,s=r.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} +`;return this.state.error=a,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let o=dJe.unstyle(i).split(` +`).map(a=>a.slice(1)).join(` +`);return this.value={values:n,result:o},super.submit()}};ose.exports=ase});var use=w((ndt,lse)=>{"use strict";var EJe="(Use + to sort)",IJe=xl(),cse=class extends IJe{constructor(e){super(ie(N({},e),{reorder:!1,sort:!0,multiple:!0}));this.state.hint=[this.options.hint,EJe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let i=await super.renderChoice(e,r),n=this.symbols.identicalTo+" ",s=this.index===r&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${r+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};lse.exports=cse});var hse=w((sdt,gse)=>{"use strict";var yJe=ZC(),fse=class extends yJe{constructor(e={}){super(e);if(this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(i=>this.styles.muted(i)),this.state.header=r.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let i of r)i.scale=wJe(5,this.options),i.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],i=r.selected;return e.scale.forEach(n=>n.selected=!1),r.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=k=>(k?this.styles.success("\u25C9"):"\u25EF")+o,u=r+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,r),h=this.indent(e),p=h+e.scale.map((k,T)=>c(T===e.scaleIdx)).join(a),m=k=>k===e.scaleIdx?g(k):k,y=h+e.scale.map((k,T)=>m(T)).join(l),b=()=>[u,f].filter(Boolean).join(" "),S=()=>[b(),p,y," "].filter(Boolean).join(` +`);return i&&(p=this.styles.cyan(p),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` +`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([o,a,u,g].filter(Boolean).join(` +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function wJe(t,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>N({},i));let r=[];for(let i=1;i{pse.exports=QN()});var Ese=w((adt,Cse)=>{"use strict";var BJe=$0(),mse=class extends BJe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([r,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Cse.exports=mse});var wse=w((Adt,Ise)=>{"use strict";var bJe=xl(),yse=class extends bJe{constructor(e){super(e);if(typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let i=await super.toChoices(e,r);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Ise.exports=yse});var bse=w(kN=>{"use strict";var Bse=Xi(),Ci=(t,e)=>{Bse.defineExport(kN,t,e),Bse.defineExport(kN,t.toLowerCase(),e)};Ci("AutoComplete",()=>gne());Ci("BasicAuth",()=>Ine());Ci("Confirm",()=>Qne());Ci("Editable",()=>kne());Ci("Form",()=>Z0());Ci("Input",()=>QN());Ci("Invisible",()=>Mne());Ci("List",()=>Hne());Ci("MultiSelect",()=>Yne());Ci("Numeral",()=>zne());Ci("Password",()=>Xne());Ci("Scale",()=>tse());Ci("Select",()=>xl());Ci("Snippet",()=>Ase());Ci("Sort",()=>use());Ci("Survey",()=>hse());Ci("Text",()=>dse());Ci("Toggle",()=>Ese());Ci("Quiz",()=>wse())});var vse=w((cdt,Qse)=>{Qse.exports={ArrayPrompt:ZC(),AuthPrompt:bN(),BooleanPrompt:$0(),NumberPrompt:vN(),StringPrompt:Iu()}});var em=w((udt,Sse)=>{"use strict";var kse=require("assert"),xN=require("events"),Pl=Xi(),ua=class extends xN{constructor(e,r){super();this.options=Pl.merge({},e),this.answers=N({},r)}register(e,r){if(Pl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}kse.equal(typeof r,"function","expected a function");let i=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[i]=r:this.prompts[i]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(Pl.merge({},this.options,r))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=Pl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Pl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];kse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](r),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),r.autofill&&l!=null?(a.value=a.input=l,r.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Vf()}static get prompts(){return bse()}static get types(){return vse()}static get prompt(){let e=(r,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(r)};return Pl.mixinEmitter(e,new xN),e}};Pl.mixinEmitter(ua,new xN);var PN=ua.prompts;for(let t of Object.keys(PN)){let e=t.toLowerCase(),r=i=>new PN[t](i).run();ua.prompt[e]=r,ua[e]=r,ua[t]||Reflect.defineProperty(ua,t,{get:()=>PN[t]})}var $C=t=>{Pl.defineExport(ua,t,()=>ua.types[t])};$C("ArrayPrompt");$C("AuthPrompt");$C("BooleanPrompt");$C("NumberPrompt");$C("StringPrompt");Sse.exports=ua});var Hse=w((eCt,Use)=>{function xJe(t,e){for(var r=-1,i=t==null?0:t.length;++r{var PJe=u0(),DJe=Lf();function RJe(t,e,r,i){var n=!r;r||(r={});for(var s=-1,o=e.length;++s{var FJe=$f(),NJe=Uf();function LJe(t,e){return t&&FJe(e,NJe(e),t)}jse.exports=LJe});var Jse=w((iCt,qse)=>{function TJe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}qse.exports=TJe});var zse=w((nCt,Wse)=>{var OJe=Rn(),MJe=Q0(),KJe=Jse(),UJe=Object.prototype,HJe=UJe.hasOwnProperty;function GJe(t){if(!OJe(t))return KJe(t);var e=MJe(t),r=[];for(var i in t)i=="constructor"&&(e||!HJe.call(t,i))||r.push(i);return r}Wse.exports=GJe});var eh=w((sCt,_se)=>{var jJe=yF(),YJe=zse(),qJe=NC();function JJe(t){return qJe(t)?jJe(t,!0):YJe(t)}_se.exports=JJe});var Xse=w((oCt,Vse)=>{var WJe=$f(),zJe=eh();function _Je(t,e){return t&&WJe(e,zJe(e),t)}Vse.exports=_Je});var TN=w((am,th)=>{var VJe=Fs(),Zse=typeof am=="object"&&am&&!am.nodeType&&am,$se=Zse&&typeof th=="object"&&th&&!th.nodeType&&th,XJe=$se&&$se.exports===Zse,eoe=XJe?VJe.Buffer:void 0,toe=eoe?eoe.allocUnsafe:void 0;function ZJe(t,e){if(e)return t.slice();var r=t.length,i=toe?toe(r):new t.constructor(r);return t.copy(i),i}th.exports=ZJe});var ON=w((aCt,roe)=>{function $Je(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r{var e3e=$f(),t3e=S0();function r3e(t,e){return e3e(t,t3e(t),e)}ioe.exports=r3e});var tb=w((lCt,soe)=>{var i3e=wF(),n3e=i3e(Object.getPrototypeOf,Object);soe.exports=n3e});var MN=w((cCt,ooe)=>{var s3e=f0(),o3e=tb(),a3e=S0(),A3e=kF(),l3e=Object.getOwnPropertySymbols,c3e=l3e?function(t){for(var e=[];t;)s3e(e,a3e(t)),t=o3e(t);return e}:A3e;ooe.exports=c3e});var Aoe=w((uCt,aoe)=>{var u3e=$f(),g3e=MN();function f3e(t,e){return u3e(t,g3e(t),e)}aoe.exports=f3e});var coe=w((gCt,loe)=>{var h3e=SF(),p3e=MN(),d3e=eh();function C3e(t){return h3e(t,d3e,p3e)}loe.exports=C3e});var goe=w((fCt,uoe)=>{var m3e=Object.prototype,E3e=m3e.hasOwnProperty;function I3e(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&E3e.call(t,"index")&&(r.index=t.index,r.input=t.input),r}uoe.exports=I3e});var rb=w((hCt,foe)=>{var hoe=QF();function y3e(t){var e=new t.constructor(t.byteLength);return new hoe(e).set(new hoe(t)),e}foe.exports=y3e});var doe=w((pCt,poe)=>{var w3e=rb();function B3e(t,e){var r=e?w3e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}poe.exports=B3e});var moe=w((dCt,Coe)=>{var b3e=/\w*$/;function Q3e(t){var e=new t.constructor(t.source,b3e.exec(t));return e.lastIndex=t.lastIndex,e}Coe.exports=Q3e});var Boe=w((CCt,Eoe)=>{var Ioe=Hc(),yoe=Ioe?Ioe.prototype:void 0,woe=yoe?yoe.valueOf:void 0;function v3e(t){return woe?Object(woe.call(t)):{}}Eoe.exports=v3e});var KN=w((mCt,boe)=>{var S3e=rb();function k3e(t,e){var r=e?S3e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}boe.exports=k3e});var voe=w((ECt,Qoe)=>{var x3e=rb(),P3e=doe(),D3e=moe(),R3e=Boe(),F3e=KN(),N3e="[object Boolean]",L3e="[object Date]",T3e="[object Map]",O3e="[object Number]",M3e="[object RegExp]",K3e="[object Set]",U3e="[object String]",H3e="[object Symbol]",G3e="[object ArrayBuffer]",j3e="[object DataView]",Y3e="[object Float32Array]",q3e="[object Float64Array]",J3e="[object Int8Array]",W3e="[object Int16Array]",z3e="[object Int32Array]",_3e="[object Uint8Array]",V3e="[object Uint8ClampedArray]",X3e="[object Uint16Array]",Z3e="[object Uint32Array]";function $3e(t,e,r){var i=t.constructor;switch(e){case G3e:return x3e(t);case N3e:case L3e:return new i(+t);case j3e:return P3e(t,r);case Y3e:case q3e:case J3e:case W3e:case z3e:case _3e:case V3e:case X3e:case Z3e:return F3e(t,r);case T3e:return new i;case O3e:case U3e:return new i(t);case M3e:return D3e(t);case K3e:return new i;case H3e:return R3e(t)}}Qoe.exports=$3e});var xoe=w((ICt,Soe)=>{var eWe=Rn(),koe=Object.create,tWe=function(){function t(){}return function(e){if(!eWe(e))return{};if(koe)return koe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();Soe.exports=tWe});var UN=w((yCt,Poe)=>{var rWe=xoe(),iWe=tb(),nWe=Q0();function sWe(t){return typeof t.constructor=="function"&&!nWe(t)?rWe(iWe(t)):{}}Poe.exports=sWe});var Roe=w((wCt,Doe)=>{var oWe=TC(),aWe=Zo(),AWe="[object Map]";function lWe(t){return aWe(t)&&oWe(t)==AWe}Doe.exports=lWe});var Toe=w((BCt,Foe)=>{var cWe=Roe(),uWe=w0(),Noe=B0(),Loe=Noe&&Noe.isMap,gWe=Loe?uWe(Loe):cWe;Foe.exports=gWe});var Moe=w((bCt,Ooe)=>{var fWe=TC(),hWe=Zo(),pWe="[object Set]";function dWe(t){return hWe(t)&&fWe(t)==pWe}Ooe.exports=dWe});var Goe=w((QCt,Koe)=>{var CWe=Moe(),mWe=w0(),Uoe=B0(),Hoe=Uoe&&Uoe.isSet,EWe=Hoe?mWe(Hoe):CWe;Koe.exports=EWe});var Woe=w((vCt,joe)=>{var IWe=LC(),yWe=Hse(),wWe=u0(),BWe=Yse(),bWe=Xse(),QWe=TN(),vWe=ON(),SWe=noe(),kWe=Aoe(),xWe=xF(),PWe=coe(),DWe=TC(),RWe=goe(),FWe=voe(),NWe=UN(),LWe=Ms(),TWe=DC(),OWe=Toe(),MWe=Rn(),KWe=Goe(),UWe=Uf(),HWe=eh(),GWe=1,jWe=2,YWe=4,Yoe="[object Arguments]",qWe="[object Array]",JWe="[object Boolean]",WWe="[object Date]",zWe="[object Error]",qoe="[object Function]",_We="[object GeneratorFunction]",VWe="[object Map]",XWe="[object Number]",Joe="[object Object]",ZWe="[object RegExp]",$We="[object Set]",e8e="[object String]",t8e="[object Symbol]",r8e="[object WeakMap]",i8e="[object ArrayBuffer]",n8e="[object DataView]",s8e="[object Float32Array]",o8e="[object Float64Array]",a8e="[object Int8Array]",A8e="[object Int16Array]",l8e="[object Int32Array]",c8e="[object Uint8Array]",u8e="[object Uint8ClampedArray]",g8e="[object Uint16Array]",f8e="[object Uint32Array]",dr={};dr[Yoe]=dr[qWe]=dr[i8e]=dr[n8e]=dr[JWe]=dr[WWe]=dr[s8e]=dr[o8e]=dr[a8e]=dr[A8e]=dr[l8e]=dr[VWe]=dr[XWe]=dr[Joe]=dr[ZWe]=dr[$We]=dr[e8e]=dr[t8e]=dr[c8e]=dr[u8e]=dr[g8e]=dr[f8e]=!0;dr[zWe]=dr[qoe]=dr[r8e]=!1;function ib(t,e,r,i,n,s){var o,a=e&GWe,l=e&jWe,c=e&YWe;if(r&&(o=n?r(t,i,n,s):r(t)),o!==void 0)return o;if(!MWe(t))return t;var u=LWe(t);if(u){if(o=RWe(t),!a)return vWe(t,o)}else{var g=DWe(t),f=g==qoe||g==_We;if(TWe(t))return QWe(t,a);if(g==Joe||g==Yoe||f&&!n){if(o=l||f?{}:NWe(t),!a)return l?kWe(t,bWe(o,t)):SWe(t,BWe(o,t))}else{if(!dr[g])return n?t:{};o=FWe(t,g,a)}}s||(s=new IWe);var h=s.get(t);if(h)return h;s.set(t,o),KWe(t)?t.forEach(function(y){o.add(ib(y,e,r,y,t,s))}):OWe(t)&&t.forEach(function(y,b){o.set(b,ib(y,e,r,b,t,s))});var p=c?l?PWe:xWe:l?HWe:UWe,m=u?void 0:p(t);return yWe(m||t,function(y,b){m&&(b=y,y=t[b]),wWe(o,b,ib(y,e,r,b,t,s))}),o}joe.exports=ib});var HN=w((SCt,zoe)=>{var h8e=Woe(),p8e=1,d8e=4;function C8e(t){return h8e(t,p8e|d8e)}zoe.exports=C8e});var Voe=w((kCt,_oe)=>{var m8e=XR();function E8e(t,e,r){return t==null?t:m8e(t,e,r)}_oe.exports=E8e});var rae=w((NCt,tae)=>{function I8e(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}tae.exports=I8e});var nae=w((LCt,iae)=>{var y8e=yC(),w8e=AD();function B8e(t,e){return e.length<2?t:y8e(t,w8e(e,0,-1))}iae.exports=B8e});var oae=w((TCt,sae)=>{var b8e=Nf(),Q8e=rae(),v8e=nae(),S8e=cu();function k8e(t,e){return e=b8e(e,t),t=v8e(t,e),t==null||delete t[S8e(Q8e(e))]}sae.exports=k8e});var Aae=w((OCt,aae)=>{var x8e=oae();function P8e(t,e){return t==null?!0:x8e(t,e)}aae.exports=P8e});var Cae=w((fmt,dae)=>{dae.exports={name:"@yarnpkg/cli",version:"3.2.1",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"^3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var $N=w((qyt,iAe)=>{"use strict";iAe.exports=function(e,r){r===!0&&(r=0);var i=e.indexOf("://"),n=e.substring(0,i).split("+").filter(Boolean);return typeof r=="number"?n[r]:n}});var eL=w((Jyt,nAe)=>{"use strict";var X8e=$N();function sAe(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=X8e(t);return t=t.substring(t.indexOf("://")+3),sAe(e)?!0:t.indexOf("@"){"use strict";var Z8e=$N(),$8e=eL(),e4e=require("querystring");function t4e(t){t=(t||"").trim();var e={protocols:Z8e(t),protocol:null,port:null,resource:"",user:"",pathname:"",hash:"",search:"",href:t,query:Object.create(null)},r=t.indexOf("://"),i=-1,n=null,s=null;t.startsWith(".")&&(t.startsWith("./")&&(t=t.substring(2)),e.pathname=t,e.protocol="file");var o=t.charAt(1);return e.protocol||(e.protocol=e.protocols[0],e.protocol||($8e(t)?e.protocol="ssh":((o==="/"||o==="~")&&(t=t.substring(2)),e.protocol="file"))),r!==-1&&(t=t.substring(r+3)),s=t.split("/"),e.protocol!=="file"?e.resource=s.shift():e.resource="",n=e.resource.split("@"),n.length===2&&(e.user=n[0],e.resource=n[1]),n=e.resource.split(":"),n.length===2&&(e.resource=n[0],n[1]?(e.port=Number(n[1]),isNaN(e.port)&&(e.port=null,s.unshift(n[1]))):e.port=null),s=s.filter(Boolean),e.protocol==="file"?e.pathname=e.href:e.pathname=e.pathname||(e.protocol!=="file"||e.href[0]==="/"?"/":"")+s.join("/"),n=e.pathname.split("#"),n.length===2&&(e.pathname=n[0],e.hash=n[1]),n=e.pathname.split("?"),n.length===2&&(e.pathname=n[0],e.search=n[1]),e.query=e4e.parse(e.search),e.href=e.href.replace(/\/$/,""),e.pathname=e.pathname.replace(/\/$/,""),e}oAe.exports=t4e});var cAe=w((zyt,AAe)=>{"use strict";var r4e="text/plain",i4e="us-ascii",lAe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),n4e=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:i,data:n,hash:s}=r.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[f,h=""]=g.split("=").map(p=>p.trim());return f==="charset"&&(h=h.toLowerCase(),h===i4e)?"":`${f}${h?`=${h}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length!==0||l&&l!==r4e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`},s4e=(t,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),t=t.trim(),/^data:/i.test(t))return n4e(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname&&(n.pathname=n.pathname.replace(/(?0){let o=n.pathname.split("/"),a=o[o.length-1];lAe(a,e.removeDirectoryIndex)&&(o=o.slice(0,o.length-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])lAe(o,e.removeQueryParameters)&&n.searchParams.delete(o);e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=t;return t=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};AAe.exports=s4e});var gAe=w((_yt,uAe)=>{"use strict";var o4e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a4e=aAe(),A4e=cAe();function l4e(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(typeof t!="string"||!t.trim())throw new Error("Invalid url.");e&&((typeof e=="undefined"?"undefined":o4e(e))!=="object"&&(e={stripHash:!1}),t=A4e(t,e));var r=a4e(t);return r}uAe.exports=l4e});var pAe=w((Vyt,fAe)=>{"use strict";var c4e=gAe(),hAe=eL();function u4e(t){var e=c4e(t);e.token="";var r=e.user.split(":");return r.length===2&&(r[1]==="x-oauth-basic"?e.token=r[0]:r[0]==="x-token-auth"&&(e.token=r[1])),hAe(e.protocols)||hAe(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:e.protocol="file",e.href=e.href.replace(/\/$/,""),e}fAe.exports=u4e});var CAe=w((Xyt,dAe)=>{"use strict";var g4e=pAe();function tL(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=g4e(t),r=e.resource.split("."),i=null;switch(e.toString=function(l){return tL.stringify(this,l)},e.source=r.length>2?r.slice(1-r.length).join("."):e.source=e.resource,e.git_suffix=/\.git$/.test(e.pathname),e.name=decodeURIComponent(e.pathname.replace(/^\//,"").replace(/\.git$/,"")),e.owner=decodeURIComponent(e.user),e.source){case"git.cloudforge.com":e.owner=e.user,e.organization=r[0],e.source="cloudforge.com";break;case"visualstudio.com":if(e.resource==="vs-ssh.visualstudio.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3],e.full_name=i[2]+"/"+i[3]);break}else{i=e.name.split("/"),i.length===2?(e.owner=i[1],e.name=i[1],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}case"dev.azure.com":case"azure.com":if(e.resource==="ssh.dev.azure.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3]);break}else{i=e.name.split("/"),i.length===5?(e.organization=i[0],e.owner=i[1],e.name=i[4],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}default:i=e.name.split("/");var n=i.length-1;if(i.length>=2){var s=i.indexOf("blob",2),o=i.indexOf("tree",2),a=i.indexOf("commit",2);n=s>0?s-1:o>0?o-1:a>0?a-1:n,e.owner=i.slice(0,n).join("/"),e.name=i[n],a&&(e.commit=i[n+2])}e.ref="",e.filepathtype="",e.filepath="",i.length>n+2&&["blob","tree"].indexOf(i[n+1])>=0&&(e.filepathtype=i[n+1],e.ref=i[n+2],i.length>n+3&&(e.filepath=i.slice(n+3).join("/"))),e.organization=e.owner;break}return e.full_name||(e.full_name=e.owner,e.name&&(e.full_name&&(e.full_name+="/"),e.full_name+=e.name)),e}tL.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",i=t.user||"git",n=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+i+"@"+t.resource+r+"/"+t.full_name+n:i+"@"+t.resource+":"+t.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+t.resource+r+"/"+t.full_name+n;case"http":case"https":var s=t.token?f4e(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+s+t.resource+r+"/"+t.full_name+n;default:return t.href}};function f4e(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}dAe.exports=tL});var DL=w((ibt,UAe)=>{var R4e=Lf(),F4e=Df();function N4e(t,e,r){(r!==void 0&&!F4e(t[e],r)||r===void 0&&!(e in t))&&R4e(t,e,r)}UAe.exports=N4e});var GAe=w((nbt,HAe)=>{var L4e=NC(),T4e=Zo();function O4e(t){return T4e(t)&&L4e(t)}HAe.exports=O4e});var qAe=w((sbt,jAe)=>{var M4e=Gc(),K4e=tb(),U4e=Zo(),H4e="[object Object]",G4e=Function.prototype,j4e=Object.prototype,YAe=G4e.toString,Y4e=j4e.hasOwnProperty,q4e=YAe.call(Object);function J4e(t){if(!U4e(t)||M4e(t)!=H4e)return!1;var e=K4e(t);if(e===null)return!0;var r=Y4e.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&YAe.call(r)==q4e}jAe.exports=J4e});var RL=w((obt,JAe)=>{function W4e(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}JAe.exports=W4e});var zAe=w((abt,WAe)=>{var z4e=$f(),_4e=eh();function V4e(t){return z4e(t,_4e(t))}WAe.exports=V4e});var ele=w((Abt,_Ae)=>{var VAe=DL(),X4e=TN(),Z4e=KN(),$4e=ON(),eze=UN(),XAe=BC(),ZAe=Ms(),tze=GAe(),rze=DC(),ize=A0(),nze=Rn(),sze=qAe(),oze=b0(),$Ae=RL(),aze=zAe();function Aze(t,e,r,i,n,s,o){var a=$Ae(t,r),l=$Ae(e,r),c=o.get(l);if(c){VAe(t,r,c);return}var u=s?s(a,l,r+"",t,e,o):void 0,g=u===void 0;if(g){var f=ZAe(l),h=!f&&rze(l),p=!f&&!h&&oze(l);u=l,f||h||p?ZAe(a)?u=a:tze(a)?u=$4e(a):h?(g=!1,u=X4e(l,!0)):p?(g=!1,u=Z4e(l,!0)):u=[]:sze(l)||XAe(l)?(u=a,XAe(a)?u=aze(a):(!nze(a)||ize(a))&&(u=eze(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),VAe(t,r,u)}_Ae.exports=Aze});var ile=w((lbt,tle)=>{var lze=LC(),cze=DL(),uze=EF(),gze=ele(),fze=Rn(),hze=eh(),pze=RL();function rle(t,e,r,i,n){t!==e&&uze(e,function(s,o){if(n||(n=new lze),fze(s))gze(t,e,o,r,rle,i,n);else{var a=i?i(pze(t,o),s,o+"",t,e,n):void 0;a===void 0&&(a=s),cze(t,o,a)}},hze)}tle.exports=rle});var sle=w((cbt,nle)=>{var dze=h0(),Cze=eF(),mze=tF();function Eze(t,e){return mze(Cze(t,e,dze),t+"")}nle.exports=Eze});var ale=w((ubt,ole)=>{var Ize=Df(),yze=NC(),wze=wC(),Bze=Rn();function bze(t,e,r){if(!Bze(r))return!1;var i=typeof e;return(i=="number"?yze(r)&&wze(e,r.length):i=="string"&&e in r)?Ize(r[e],t):!1}ole.exports=bze});var lle=w((gbt,Ale)=>{var Qze=sle(),vze=ale();function Sze(t){return Qze(function(e,r){var i=-1,n=r.length,s=n>1?r[n-1]:void 0,o=n>2?r[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&vze(r[0],r[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var kze=ile(),xze=lle(),Pze=xze(function(t,e,r){kze(t,e,r)});cle.exports=Pze});var Sle=w((mQt,vle)=>{var JL;vle.exports=()=>(typeof JL=="undefined"&&(JL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),JL)});var Mle=w((XQt,Ole)=>{var VL;Ole.exports=()=>(typeof VL=="undefined"&&(VL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),VL)});var Jle=w((iT,nT)=>{(function(t){iT&&typeof iT=="object"&&typeof nT!="undefined"?nT.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window!="undefined"?window.isWindows=t():typeof global!="undefined"?global.isWindows=t():typeof self!="undefined"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Vle=w((iSt,Wle)=>{"use strict";sT.ifExists=m5e;var Ah=require("util"),Ws=require("path"),zle=Jle(),E5e=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,I5e={createPwshFile:!0,createCmdFile:zle(),fs:require("fs")},y5e=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function _le(t){let e=N(N({},I5e),t),r=e.fs;return e.fs_={chmod:r.chmod?Ah.promisify(r.chmod):async()=>{},mkdir:Ah.promisify(r.mkdir),readFile:Ah.promisify(r.readFile),stat:Ah.promisify(r.stat),unlink:Ah.promisify(r.unlink),writeFile:Ah.promisify(r.writeFile)},e}async function sT(t,e,r){let i=_le(r);await i.fs_.stat(t),await w5e(t,e,i)}function m5e(t,e,r){return sT(t,e,r).catch(()=>{})}function B5e(t,e){return e.fs_.unlink(t).catch(()=>{})}async function w5e(t,e,r){let i=await v5e(t,r);return await b5e(e,r),Q5e(t,e,i,r)}function b5e(t,e){return e.fs_.mkdir(Ws.dirname(t),{recursive:!0})}function Q5e(t,e,r,i){let n=_le(i),s=[{generator:x5e,extension:""}];return n.createCmdFile&&s.push({generator:k5e,extension:".cmd"}),n.createPwshFile&&s.push({generator:P5e,extension:".ps1"}),Promise.all(s.map(o=>S5e(t,e+o.extension,r,o.generator,n)))}function D5e(t,e){return B5e(t,e)}function F5e(t,e){return R5e(t,e)}async function v5e(t,e){let n=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(E5e);if(!n){let s=Ws.extname(t).toLowerCase();return{program:y5e.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function S5e(t,e,r,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[r.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:r.program,args:o}),await D5e(e,n),await n.fs_.writeFile(e,i(t,e,n),"utf8"),F5e(e,n)}function k5e(t,e,r){let n=Ws.relative(Ws.dirname(e),t).split("/").join("\\"),s=Ws.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=r.prog,l=r.args||"",c=oT(r.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=r.progArgs?`${r.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`:"";return o?g+=`@IF EXIST ${o} (\r + ${o} ${l} ${n} ${u}%*\r +) ELSE (\r + @SETLOCAL\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${a} ${l} ${n} ${u}%*\r +)\r +`:g+=`@${a} ${l} ${n} ${u}%*\r +`,g}function x5e(t,e,r){let i=Ws.relative(Ws.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ws.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=r.args||"",l=oT(r.nodePath).posix;n?(s=`"$basedir/${r.prog}"`,i=o):(n=o,a="",i="");let c=r.progArgs?`${r.progArgs.join(" ")} `:"",u=`#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`,g=r.nodePath?`export NODE_PATH="${l}" +`:"";return s?u+=`${g}if [ -x ${s} ]; then + exec ${s} ${a} ${i} ${c}"$@" +else + exec ${n} ${a} ${i} ${c}"$@" +fi +`:u+=`${g}${n} ${a} ${i} ${c}"$@" +exit $? +`,u}function P5e(t,e,r){let i=Ws.relative(Ws.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ws.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=r.args||"",c=oT(r.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${r.prog}$exe"`,i=a):(s=a,l="",i="");let f=r.progArgs?`${r.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${r.nodePath?`$env_node_path=$env:NODE_PATH +$env:NODE_PATH="${u}" +`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +}`;return r.nodePath&&(h+=` else { + $env:NODE_PATH="${g}" +}`),o?h+=` +$ret=0 +if (Test-Path ${o}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${o} ${l} ${i} ${f}$args + } else { + & ${o} ${l} ${i} ${f}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${s} ${l} ${i} ${f}$args + } else { + & ${s} ${l} ${i} ${f}$args + } + $ret=$LASTEXITCODE +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $ret +`:h+=` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${s} ${l} ${i} ${f}$args +} else { + & ${s} ${l} ${i} ${f}$args +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $LASTEXITCODE +`,h}function R5e(t,e){return e.fs_.chmod(t,493)}function oT(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(Ws.delimiter):Array.from(t),r={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${s}`:s,r[i]={win32:n,posix:s}}return r}Wle.exports=sT});var yT=w((Kkt,dce)=>{dce.exports=require("stream")});var Ice=w((Ukt,Cce)=>{"use strict";function mce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function $5e(t){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(r){var i={data:r,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=r+i.data;return n}},{key:"concat",value:function(r){if(this.length===0)return yb.alloc(0);for(var i=yb.allocUnsafe(r>>>0),n=this.head,s=0;n;)s_e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(r,i){var n;return ro.length?o.length:r;if(a===o.length?s+=o:s+=o.slice(0,r),r-=a,r===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(r){var i=yb.allocUnsafe(r),n=this.head,s=1;for(n.data.copy(i),r-=n.data.length;n=n.next;){var o=n.data,a=r>o.length?o.length:r;if(o.copy(i,i.length-r,0,a),r-=a,r===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:n_e,value:function(r,i){return wT(this,$5e({},i,{depth:0,customInspect:!1}))}}]),t}()});var bT=w((Hkt,yce)=>{"use strict";function o_e(t,e){var r=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BT,this,t)):process.nextTick(BT,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(s){!e&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(wb,r):(r._writableState.errorEmitted=!0,process.nextTick(wce,r,s)):process.nextTick(wce,r,s):e?(process.nextTick(wb,r),e(s)):process.nextTick(wb,r)}),this)}function wce(t,e){BT(t,e),wb(t)}function wb(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function a_e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BT(t,e){t.emit("error",e)}function A_e(t,e){var r=t._readableState,i=t._writableState;r&&r.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}yce.exports={destroy:o_e,undestroy:a_e,errorOrDestroy:A_e}});var Ll=w((Gkt,Bce)=>{"use strict";var bce={};function zs(t,e,r){r||(r=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends r{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=r.name,n.prototype.code=t,bce[t]=n}function Qce(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(i=>String(i)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function l_e(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function c_e(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function u_e(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}zs("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);zs("ERR_INVALID_ARG_TYPE",function(t,e,r){let i;typeof e=="string"&&l_e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(c_e(t," argument"))n=`The ${t} ${i} ${Qce(e,"type")}`;else{let s=u_e(t,".")?"property":"argument";n=`The "${t}" ${s} ${i} ${Qce(e,"type")}`}return n+=`. Received type ${typeof r}`,n},TypeError);zs("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");zs("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});zs("ERR_STREAM_PREMATURE_CLOSE","Premature close");zs("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});zs("ERR_MULTIPLE_CALLBACK","Callback called multiple times");zs("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");zs("ERR_STREAM_WRITE_AFTER_END","write after end");zs("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);zs("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);zs("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Bce.exports.codes=bce});var QT=w((jkt,vce)=>{"use strict";var g_e=Ll().codes.ERR_INVALID_OPT_VALUE;function f_e(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function h_e(t,e,r,i){var n=f_e(e,i,r);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?r:"highWaterMark";throw new g_e(s,n)}return Math.floor(n)}return t.objectMode?16:16*1024}vce.exports={getHighWaterMark:h_e}});var Sce=w((Ykt,vT)=>{typeof Object.create=="function"?vT.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:vT.exports=function(e,r){if(r){e.super_=r;var i=function(){};i.prototype=r.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Tl=w((qkt,ST)=>{try{if(kT=require("util"),typeof kT.inherits!="function")throw"";ST.exports=kT.inherits}catch(t){ST.exports=Sce()}var kT});var xce=w((Jkt,kce)=>{kce.exports=require("util").deprecate});var DT=w((Wkt,Pce)=>{"use strict";Pce.exports=jr;function Dce(t){var e=this;this.next=null,this.entry=null,this.finish=function(){p_e(e,t)}}var uh;jr.WritableState=Vm;var d_e={deprecate:xce()},Rce=yT(),Bb=require("buffer").Buffer,C_e=global.Uint8Array||function(){};function m_e(t){return Bb.from(t)}function E_e(t){return Bb.isBuffer(t)||t instanceof C_e}var xT=bT(),I_e=QT(),y_e=I_e.getHighWaterMark,Ol=Ll().codes,w_e=Ol.ERR_INVALID_ARG_TYPE,B_e=Ol.ERR_METHOD_NOT_IMPLEMENTED,b_e=Ol.ERR_MULTIPLE_CALLBACK,Q_e=Ol.ERR_STREAM_CANNOT_PIPE,v_e=Ol.ERR_STREAM_DESTROYED,S_e=Ol.ERR_STREAM_NULL_VALUES,k_e=Ol.ERR_STREAM_WRITE_AFTER_END,x_e=Ol.ERR_UNKNOWN_ENCODING,gh=xT.errorOrDestroy;Tl()(jr,Rce);function P_e(){}function Vm(t,e,r){uh=uh||Su(),t=t||{},typeof r!="boolean"&&(r=e instanceof uh),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=y_e(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=t.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){D_e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Dce(this)}Vm.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(Vm.prototype,"buffer",{get:d_e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}})();var bb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(bb=Function.prototype[Symbol.hasInstance],Object.defineProperty(jr,Symbol.hasInstance,{value:function(e){return bb.call(this,e)?!0:this!==jr?!1:e&&e._writableState instanceof Vm}})):bb=function(e){return e instanceof this};function jr(t){uh=uh||Su();var e=this instanceof uh;if(!e&&!bb.call(jr,this))return new jr(t);this._writableState=new Vm(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),Rce.call(this)}jr.prototype.pipe=function(){gh(this,new Q_e)};function R_e(t,e){var r=new k_e;gh(t,r),process.nextTick(e,r)}function F_e(t,e,r,i){var n;return r===null?n=new S_e:typeof r!="string"&&!e.objectMode&&(n=new w_e("chunk",["string","Buffer"],r)),n?(gh(t,n),process.nextTick(i,n),!1):!0}jr.prototype.write=function(t,e,r){var i=this._writableState,n=!1,s=!i.objectMode&&E_e(t);return s&&!Bb.isBuffer(t)&&(t=m_e(t)),typeof e=="function"&&(r=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof r!="function"&&(r=P_e),i.ending?R_e(this,r):(s||F_e(this,i,t,r))&&(i.pendingcb++,n=N_e(this,i,s,t,e,r)),n};jr.prototype.cork=function(){this._writableState.corked++};jr.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Fce(this,t))};jr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new x_e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(jr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function L_e(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=Bb.from(e,r)),e}Object.defineProperty(jr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function N_e(t,e,r,i,n,s){if(!r){var o=L_e(e,i,n);i!==o&&(r=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var G_e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};Tce.exports=da;var Oce=RT(),FT=DT();Tl()(da,Oce);for(NT=G_e(FT.prototype),Qb=0;Qb{var Sb=require("buffer"),bA=Sb.Buffer;function Kce(t,e){for(var r in t)e[r]=t[r]}bA.from&&bA.alloc&&bA.allocUnsafe&&bA.allocUnsafeSlow?Mce.exports=Sb:(Kce(Sb,LT),LT.Buffer=fh);function fh(t,e,r){return bA(t,e,r)}Kce(bA,fh);fh.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return bA(t,e,r)};fh.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var i=bA(t);return e!==void 0?typeof r=="string"?i.fill(e,r):i.fill(e):i.fill(0),i};fh.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return bA(t)};fh.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Sb.SlowBuffer(t)}});var MT=w(Hce=>{"use strict";var TT=Uce().Buffer,Gce=TT.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function q_e(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function J_e(t){var e=q_e(t);if(typeof e!="string"&&(TT.isEncoding===Gce||!Gce(t)))throw new Error("Unknown encoding: "+t);return e||t}Hce.StringDecoder=Zm;function Zm(t){this.encoding=J_e(t);var e;switch(this.encoding){case"utf16le":this.text=z_e,this.end=__e,e=4;break;case"utf8":this.fillLast=W_e,e=4;break;case"base64":this.text=V_e,this.end=X_e,e=3;break;default:this.write=Z_e,this.end=$_e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=TT.allocUnsafe(e)}Zm.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function r6e(t,e,r){var i=e.length-1;if(i=0?(n>0&&(t.lastNeed=n-1),n):--i=0?(n>0&&(t.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:t.lastNeed=n-3),n):0))}function i6e(t,e,r){if((e[0]&192)!=128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!=128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!=128)return t.lastNeed=2,"\uFFFD"}}function W_e(t){var e=this.lastTotal-this.lastNeed,r=i6e(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function t6e(t,e){var r=r6e(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)}function e6e(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function z_e(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function __e(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function V_e(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function X_e(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function Z_e(t){return t.toString(this.encoding)}function $_e(t){return t&&t.length?this.write(t):""}});var kb=w((Vkt,jce)=>{"use strict";var Yce=Ll().codes.ERR_STREAM_PREMATURE_CLOSE;function n6e(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,i=new Array(r),n=0;n{"use strict";var xb;function Ml(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var a6e=kb(),Kl=Symbol("lastResolve"),ku=Symbol("lastReject"),$m=Symbol("error"),Pb=Symbol("ended"),xu=Symbol("lastPromise"),KT=Symbol("handlePromise"),Pu=Symbol("stream");function Ul(t,e){return{value:t,done:e}}function A6e(t){var e=t[Kl];if(e!==null){var r=t[Pu].read();r!==null&&(t[xu]=null,t[Kl]=null,t[ku]=null,e(Ul(r,!1)))}}function l6e(t){process.nextTick(A6e,t)}function c6e(t,e){return function(r,i){t.then(function(){if(e[Pb]){r(Ul(void 0,!0));return}e[KT](r,i)},i)}}var u6e=Object.getPrototypeOf(function(){}),g6e=Object.setPrototypeOf((xb={get stream(){return this[Pu]},next:function(){var e=this,r=this[$m];if(r!==null)return Promise.reject(r);if(this[Pb])return Promise.resolve(Ul(void 0,!0));if(this[Pu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[$m]?a(e[$m]):o(Ul(void 0,!0))})});var i=this[xu],n;if(i)n=new Promise(c6e(i,this));else{var s=this[Pu].read();if(s!==null)return Promise.resolve(Ul(s,!1));n=new Promise(this[KT])}return this[xu]=n,n}},Ml(xb,Symbol.asyncIterator,function(){return this}),Ml(xb,"return",function(){var e=this;return new Promise(function(r,i){e[Pu].destroy(null,function(n){if(n){i(n);return}r(Ul(void 0,!0))})})}),xb),u6e),f6e=function(e){var r,i=Object.create(g6e,(r={},Ml(r,Pu,{value:e,writable:!0}),Ml(r,Kl,{value:null,writable:!0}),Ml(r,ku,{value:null,writable:!0}),Ml(r,$m,{value:null,writable:!0}),Ml(r,Pb,{value:e._readableState.endEmitted,writable:!0}),Ml(r,KT,{value:function(s,o){var a=i[Pu].read();a?(i[xu]=null,i[Kl]=null,i[ku]=null,s(Ul(a,!1))):(i[Kl]=s,i[ku]=o)},writable:!0}),r));return i[xu]=null,a6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[ku];s!==null&&(i[xu]=null,i[Kl]=null,i[ku]=null,s(n)),i[$m]=n;return}var o=i[Kl];o!==null&&(i[xu]=null,i[Kl]=null,i[ku]=null,o(Ul(void 0,!0))),i[Pb]=!0}),e.on("readable",l6e.bind(null,i)),i};Jce.exports=f6e});var Xce=w((Zkt,zce)=>{"use strict";function _ce(t,e,r,i,n,s,o){try{var a=t[s](o),l=a.value}catch(c){r(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function h6e(t){return function(){var e=this,r=arguments;return new Promise(function(i,n){var s=t.apply(e,r);function o(l){_ce(s,i,n,o,a,"next",l)}function a(l){_ce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Vce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function d6e(t){for(var e=1;e{"use strict";Zce.exports=Ut;var hh;Ut.ReadableState=$ce;var $kt=require("events").EventEmitter,eue=function(e,r){return e.listeners(r).length},eE=yT(),Db=require("buffer").Buffer,E6e=global.Uint8Array||function(){};function I6e(t){return Db.from(t)}function y6e(t){return Db.isBuffer(t)||t instanceof E6e}var UT=require("util"),xt;UT&&UT.debuglog?xt=UT.debuglog("stream"):xt=function(){};var w6e=Ice(),HT=bT(),B6e=QT(),b6e=B6e.getHighWaterMark,Rb=Ll().codes,Q6e=Rb.ERR_INVALID_ARG_TYPE,v6e=Rb.ERR_STREAM_PUSH_AFTER_EOF,S6e=Rb.ERR_METHOD_NOT_IMPLEMENTED,k6e=Rb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,ph,GT,jT;Tl()(Ut,eE);var tE=HT.errorOrDestroy,YT=["error","close","destroy","pause","resume"];function x6e(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function $ce(t,e,r){hh=hh||Su(),t=t||{},typeof r!="boolean"&&(r=e instanceof hh),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=b6e(this,t,"readableHighWaterMark",r),this.buffer=new w6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(ph||(ph=MT().StringDecoder),this.decoder=new ph(t.encoding),this.encoding=t.encoding)}function Ut(t){if(hh=hh||Su(),!(this instanceof Ut))return new Ut(t);var e=this instanceof hh;this._readableState=new $ce(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),eE.call(this)}Object.defineProperty(Ut.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ut.prototype.destroy=HT.destroy;Ut.prototype._undestroy=HT.undestroy;Ut.prototype._destroy=function(t,e){e(t)};Ut.prototype.push=function(t,e){var r=this._readableState,i;return r.objectMode?i=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=Db.from(t,e),e=""),i=!0),tue(this,t,e,!1,i)};Ut.prototype.unshift=function(t){return tue(this,t,null,!0,!1)};function tue(t,e,r,i,n){xt("readableAddChunk",e);var s=t._readableState;if(e===null)s.reading=!1,D6e(t,s);else{var o;if(n||(o=P6e(s,e)),o)tE(t,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==Db.prototype&&(e=I6e(e)),i)s.endEmitted?tE(t,new k6e):qT(t,s,e,!0);else if(s.ended)tE(t,new v6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||e.length!==0?qT(t,s,e,!1):JT(t,s)):qT(t,s,e,!1)}else i||(s.reading=!1,JT(t,s))}return!s.ended&&(s.length=rue?t=rue:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function iue(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=R6e(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}Ut.prototype.read=function(t){xt("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return xt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?WT(this):Fb(this),null;if(t=iue(t,e),t===0&&e.ended)return e.length===0&&WT(this),null;var i=e.needReadable;xt("need readable",i),(e.length===0||e.length-t0?n=nue(t,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&WT(this)),n!==null&&this.emit("data",n),n};function D6e(t,e){if(xt("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?Fb(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,sue(t)))}}function Fb(t){var e=t._readableState;xt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(xt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(sue,t))}function sue(t){var e=t._readableState;xt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zT(t)}function JT(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(F6e,t,e))}function F6e(t,e){for(;!e.reading&&!e.ended&&(e.length1&&oue(i.pipes,t)!==-1)&&!c&&(xt("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function f(y){xt("onerror",y),m(),t.removeListener("error",f),eue(t,"error")===0&&tE(t,y)}x6e(t,"error",f);function h(){t.removeListener("finish",p),m()}t.once("close",h);function p(){xt("onfinish"),t.removeListener("close",h),m()}t.once("finish",p);function m(){xt("unpipe"),r.unpipe(t)}return t.emit("pipe",r),i.flowing||(xt("pipe resume"),r.resume()),t};function N6e(t){return function(){var r=t._readableState;xt("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&eue(t,"data")&&(r.flowing=!0,zT(t))}}Ut.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):t==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,xt("on readable",i.length,i.reading),i.length?Fb(this):i.reading||process.nextTick(L6e,this)),r};Ut.prototype.addListener=Ut.prototype.on;Ut.prototype.removeListener=function(t,e){var r=eE.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(aue,this),r};Ut.prototype.removeAllListeners=function(t){var e=eE.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(aue,this),e};function aue(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function L6e(t){xt("readable nexttick read 0"),t.read(0)}Ut.prototype.resume=function(){var t=this._readableState;return t.flowing||(xt("resume"),t.flowing=!t.readableListening,T6e(this,t)),t.paused=!1,this};function T6e(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(O6e,t,e))}function O6e(t,e){xt("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),zT(t),e.flowing&&!e.reading&&t.read(0)}Ut.prototype.pause=function(){return xt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(xt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zT(t){var e=t._readableState;for(xt("flow",e.flowing);e.flowing&&t.read()!==null;);}Ut.prototype.wrap=function(t){var e=this,r=this._readableState,i=!1;t.on("end",function(){if(xt("wrapped end"),r.decoder&&!r.ended){var o=r.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),t.on("data",function(o){if(xt("wrapped data"),r.decoder&&(o=r.decoder.write(o)),!(r.objectMode&&o==null)&&!(!r.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,t.pause())}});for(var n in t)this[n]===void 0&&typeof t[n]=="function"&&(this[n]=function(a){return function(){return t[a].apply(t,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function WT(t){var e=t._readableState;xt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(M6e,e,t))}function M6e(t,e){if(xt("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ut.from=function(t,e){return jT===void 0&&(jT=Xce()),jT(Ut,t,e)});function oue(t,e){for(var r=0,i=t.length;r{"use strict";Aue.exports=QA;var Nb=Ll().codes,K6e=Nb.ERR_METHOD_NOT_IMPLEMENTED,U6e=Nb.ERR_MULTIPLE_CALLBACK,H6e=Nb.ERR_TRANSFORM_ALREADY_TRANSFORMING,G6e=Nb.ERR_TRANSFORM_WITH_LENGTH_0,Lb=Su();Tl()(QA,Lb);function j6e(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new U6e);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";cue.exports=rE;var uue=_T();Tl()(rE,uue);function rE(t){if(!(this instanceof rE))return new rE(t);uue.call(this,t)}rE.prototype._transform=function(t,e,r){r(null,t)}});var Cue=w((ixt,fue)=>{"use strict";var VT;function q6e(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var hue=Ll().codes,J6e=hue.ERR_MISSING_ARGS,W6e=hue.ERR_STREAM_DESTROYED;function pue(t){if(t)throw t}function z6e(t){return t.setHeader&&typeof t.abort=="function"}function _6e(t,e,r,i){i=q6e(i);var n=!1;t.on("close",function(){n=!0}),VT===void 0&&(VT=kb()),VT(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,z6e(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();i(o||new W6e("pipe"))}}}function due(t){t()}function V6e(t,e){return t.pipe(e)}function X6e(t){return!t.length||typeof t[t.length-1]!="function"?pue:t.pop()}function Z6e(){for(var t=arguments.length,e=new Array(t),r=0;r0;return _6e(o,l,c,function(u){n||(n=u),u&&s.forEach(due),!l&&(s.forEach(due),i(n))})});return e.reduce(V6e)}fue.exports=Z6e});var dh=w((_s,iE)=>{var nE=require("stream");process.env.READABLE_STREAM==="disable"&&nE?(iE.exports=nE.Readable,Object.assign(iE.exports,nE),iE.exports.Stream=nE):(_s=iE.exports=RT(),_s.Stream=nE||_s,_s.Readable=_s,_s.Writable=DT(),_s.Duplex=Su(),_s.Transform=_T(),_s.PassThrough=gue(),_s.finished=kb(),_s.pipeline=Cue())});var Iue=w((nxt,mue)=>{"use strict";var{Buffer:Qo}=require("buffer"),Eue=Symbol.for("BufferList");function mr(t){if(!(this instanceof mr))return new mr(t);mr._init.call(this,t)}mr._init=function(e){Object.defineProperty(this,Eue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};mr.prototype._new=function(e){return new mr(e)};mr.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let i=0;ithis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};mr.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};mr.prototype.copy=function(e,r,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Qo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&r||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Qo.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};mr.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let i=this._offset(e),n=this._offset(r),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};mr.prototype.toString=function(e,r,i){return this.slice(r,i).toString(e)};mr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};mr.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=t.length){let l=o.indexOf(t,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-t.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,t))return l;s++}s=0}return-1};mr.prototype._match=function(t,e){if(this.length-t{"use strict";var XT=dh().Duplex,$6e=Tl(),sE=Iue();function Zi(t){if(!(this instanceof Zi))return new Zi(t);if(typeof t=="function"){this._callback=t;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),t=null}sE._init.call(this,t),XT.call(this)}$6e(Zi,XT);Object.assign(Zi.prototype,sE.prototype);Zi.prototype._new=function(e){return new Zi(e)};Zi.prototype._write=function(e,r,i){this._appendBuffer(e),typeof i=="function"&&i()};Zi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Zi.prototype.end=function(e){XT.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Zi.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Zi.prototype._isBufferList=function(e){return e instanceof Zi||e instanceof sE||Zi.isBufferList(e)};Zi.isBufferList=sE.isBufferList;Tb.exports=Zi;Tb.exports.BufferListStream=Zi;Tb.exports.BufferList=sE});var eO=w(Ch=>{var eVe=Buffer.alloc,tVe="0000000000000000000",rVe="7777777777777777777",wue="0".charCodeAt(0),Bue=Buffer.from("ustar\0","binary"),iVe=Buffer.from("00","binary"),nVe=Buffer.from("ustar ","binary"),sVe=Buffer.from(" \0","binary"),oVe=parseInt("7777",8),oE=257,ZT=263,aVe=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},AVe=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},lVe=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},bue=function(t,e,r,i){for(;re?rVe.slice(0,e)+" ":tVe.slice(0,e-t.length)+t+" "};function cVe(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],i=t.length-1;i>0;i--){var n=t[i];e?r.push(n):r.push(255-n)}var s=0,o=r.length;for(i=0;i=Math.pow(10,r)&&r++,e+r+t};Ch.decodeLongPath=function(t,e){return mh(t,0,t.length,e)};Ch.encodePax=function(t){var e="";t.name&&(e+=$T(" path="+t.name+` +`)),t.linkname&&(e+=$T(" linkpath="+t.linkname+` +`));var r=t.pax;if(r)for(var i in r)e+=$T(" "+i+"="+r[i]+` +`);return Buffer.from(e)};Ch.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var n=r.indexOf("/");if(n===-1)return null;i+=i?"/"+r.slice(0,n):r.slice(0,n),r=r.slice(n+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(i)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Hl(t.mode&oVe,6),100),e.write(Hl(t.uid,6),108),e.write(Hl(t.gid,6),116),e.write(Hl(t.size,11),124),e.write(Hl(t.mtime.getTime()/1e3|0,11),136),e[156]=wue+lVe(t.type),t.linkname&&e.write(t.linkname,157),Bue.copy(e,oE),iVe.copy(e,ZT),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Hl(t.devmajor||0,6),329),e.write(Hl(t.devminor||0,6),337),i&&e.write(i,345),e.write(Hl(Que(e),6),148),e)};Ch.decode=function(t,e,r){var i=t[156]===0?0:t[156]-wue,n=mh(t,0,100,e),s=Gl(t,100,8),o=Gl(t,108,8),a=Gl(t,116,8),l=Gl(t,124,12),c=Gl(t,136,12),u=AVe(i),g=t[157]===0?null:mh(t,157,100,e),f=mh(t,265,32),h=mh(t,297,32),p=Gl(t,329,8),m=Gl(t,337,8),y=Que(t);if(y===8*32)return null;if(y!==Gl(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Bue.compare(t,oE,oE+6)===0)t[345]&&(n=mh(t,345,155,e)+"/"+n);else if(!(nVe.compare(t,oE,oE+6)===0&&sVe.compare(t,ZT,ZT+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:m}}});var Rue=w((axt,vue)=>{var Sue=require("util"),uVe=yue(),aE=eO(),kue=dh().Writable,xue=dh().PassThrough,Pue=function(){},Due=function(t){return t&=511,t&&512-t},gVe=function(t,e){var r=new Ob(t,e);return r.end(),r},fVe=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},Ob=function(t,e){this._parent=t,this.offset=e,xue.call(this,{autoDestroy:!1})};Sue.inherits(Ob,xue);Ob.prototype.destroy=function(t){this._parent.destroy(t)};var vA=function(t){if(!(this instanceof vA))return new vA(t);kue.call(this,t),t=t||{},this._offset=0,this._buffer=uVe(),this._missing=0,this._partial=!1,this._onparse=Pue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=Due(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(Due(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=aE.decodePax(r.slice(0,f)),r.consume(f),s()},l=function(){var f=e._header.size;e._pax=aE.decodePax(r.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=aE.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=aE.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=aE.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(p){e.emit("error",p)}if(r.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=fVe(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,gVe(e,f),n);return}e._stream=new Ob(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};Sue.inherits(vA,kue);vA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};vA.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};vA.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=Pue,this._overflow?this._write(this._overflow,void 0,t):t()}};vA.prototype._write=function(t,e,r){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(t.length&&(this._partial=!0),t.lengths&&(o=t.slice(s),t=t.slice(0,s)),i?i.end(t):n.append(t),this._overflow=o,this._onparse()}};vA.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};vue.exports=vA});var Nue=w((Axt,Fue)=>{Fue.exports=require("fs").constants||require("constants")});var Kue=w((lxt,Lue)=>{var Eh=Nue(),Tue=Vx(),Mb=Tl(),hVe=Buffer.alloc,Oue=dh().Readable,Ih=dh().Writable,pVe=require("string_decoder").StringDecoder,Kb=eO(),dVe=parseInt("755",8),CVe=parseInt("644",8),Mue=hVe(1024),tO=function(){},rO=function(t,e){e&=511,e&&t.push(Mue.slice(0,512-e))};function mVe(t){switch(t&Eh.S_IFMT){case Eh.S_IFBLK:return"block-device";case Eh.S_IFCHR:return"character-device";case Eh.S_IFDIR:return"directory";case Eh.S_IFIFO:return"fifo";case Eh.S_IFLNK:return"symlink"}return"file"}var Ub=function(t){Ih.call(this),this.written=0,this._to=t,this._destroyed=!1};Mb(Ub,Ih);Ub.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};Ub.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Hb=function(){Ih.call(this),this.linkname="",this._decoder=new pVe("utf-8"),this._destroyed=!1};Mb(Hb,Ih);Hb.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};Hb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var AE=function(){Ih.call(this),this._destroyed=!1};Mb(AE,Ih);AE.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};AE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Ca=function(t){if(!(this instanceof Ca))return new Ca(t);Oue.call(this,t),this._drain=tO,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Mb(Ca,Oue);Ca.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=tO);var i=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=mVe(t.mode)),t.mode||(t.mode=t.type==="directory"?dVe:CVe),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var n=this.push(e);return rO(i,t.size),n?process.nextTick(r):this._drain=r,new AE}if(t.type==="symlink"&&!t.linkname){var s=new Hb;return Tue(s,function(a){if(a)return i.destroy(),r(a);t.linkname=s.linkname,i._encode(t),r()}),s}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new AE;var o=new Ub(this);return this._stream=o,Tue(o,function(a){if(i._stream=null,a)return i.destroy(),r(a);if(o.written!==t.size)return i.destroy(),r(new Error("size mismatch"));rO(i,t.size),i._finalizing&&i.finalize(),r()}),o}};Ca.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Mue),this.push(null))};Ca.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};Ca.prototype._encode=function(t){if(!t.pax){var e=Kb.encode(t);if(e){this.push(e);return}}this._encodePax(t)};Ca.prototype._encodePax=function(t){var e=Kb.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(Kb.encode(r)),this.push(e),rO(this,e.length),r.size=t.size,r.type=t.type,this.push(Kb.encode(r))};Ca.prototype._read=function(t){var e=this._drain;this._drain=tO,e()};Lue.exports=Ca});var Uue=w(iO=>{iO.extract=Rue();iO.pack=Kue()});var $ue=w((Rxt,_ue)=>{"use strict";var yh=class{constructor(e,r,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=r||{},this.__providers=Xue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return lO(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[i,n]of this.entries())e.call(r,n,i,this)}toJSON(){let e={};return this.forEach((r,i)=>{e[i]=r}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let r=e||this.__opts.other;if(r){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(r):DVe(n);for(let[o,a]of s)r(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new yh(this.__specs,this.__opts,Xue(this.__providers).concat(e)),Vue)}};try{let t=require("util");yh.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch(t){}function RVe(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function lO(t,e,r){let i=t.__specs[e];if(r&&!i&&(!t.__opts.other||!t.__opts.other(e)))RVe(e);else{i||(i={});let n;for(let s of t.__providers){if(n=Zue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Zue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(t):i.default:n}}function Zue(t,e){let r;return e.__isFiggyPudding?r=lO(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var Vue={has(t,e){return e in t.__specs&&lO(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in yh.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};_ue.exports=FVe;function FVe(t,e){function r(...i){return new Proxy(new yh(t,e,i),Vue)}return r}function Xue(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function DVe(t){return Object.keys(t).map(e=>[e,t[e]])}});var rge=w((Fxt,ma)=>{"use strict";var cE=require("crypto"),NVe=$ue(),LVe=require("stream").Transform,ege=["sha256","sha384","sha512"],TVe=/^[a-z0-9+/]+(?:=?=?)$/i,OVe=/^([^-]+)-([^?]+)([?\S*]*)$/,MVe=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,KVe=/^[\x21-\x7E]+$/,Cn=NVe({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>UVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Du=class{get isHash(){return!0}constructor(e,r){r=Cn(r);let i=!!r.strict;this.source=e.trim();let n=this.source.match(i?MVe:OVe);if(!n||i&&!ege.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=Cn(e),e.strict&&!(ege.some(i=>i===this.algorithm)&&this.digest.match(TVe)&&(this.options||[]).every(i=>i.match(KVe))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},wh=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=Cn(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Du.prototype.toString.call(n,e)).filter(n=>n.length).join(r)).filter(i=>i.length).join(r)}concat(e,r){r=Cn(r);let i=typeof e=="string"?e:uE(e,r);return Ea(`${this.toString(r)} ${i}`,r)}hexDigest(){return Ea(this,{single:!0}).hexDigest()}match(e,r){r=Cn(r);let i=Ea(e,r),n=i.pickAlgorithm(r);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=Cn(e);let r=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>r(n,s)||n)}};ma.exports.parse=Ea;function Ea(t,e){if(e=Cn(e),typeof t=="string")return cO(t,e);if(t.algorithm&&t.digest){let r=new wh;return r[t.algorithm]=[t],cO(uE(r,e),e)}else return cO(uE(t,e),e)}function cO(t,e){return e.single?new Du(t,e):t.trim().split(/\s+/).reduce((r,i)=>{let n=new Du(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;r[s]||(r[s]=[]),r[s].push(n)}return r},new wh)}ma.exports.stringify=uE;function uE(t,e){return e=Cn(e),t.algorithm&&t.digest?Du.prototype.toString.call(t,e):typeof t=="string"?uE(Ea(t,e),e):wh.prototype.toString.call(t,e)}ma.exports.fromHex=HVe;function HVe(t,e,r){r=Cn(r);let i=r.options&&r.options.length?`?${r.options.join("?")}`:"";return Ea(`${e}-${Buffer.from(t,"hex").toString("base64")}${i}`,r)}ma.exports.fromData=GVe;function GVe(t,e){e=Cn(e);let r=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((n,s)=>{let o=cE.createHash(s).update(t).digest("base64"),a=new Du(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new wh)}ma.exports.fromStream=jVe;function jVe(t,e){e=Cn(e);let r=e.Promise||Promise,i=uO(e);return new r((n,s)=>{t.pipe(i),t.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ma.exports.checkData=YVe;function YVe(t,e,r){if(r=Cn(r),e=Ea(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(r),n=cE.createHash(i).update(t).digest("base64"),s=Ea({algorithm:i,digest:n}),o=s.match(e,r);if(o||!r.error)return o;if(typeof r.size=="number"&&t.length!==r.size){let a=new Error(`data size mismatch when checking ${e}. + Wanted: ${r.size} + Found: ${t.length}`);throw a.code="EBADSIZE",a.found=t.length,a.expected=r.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${t.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ma.exports.checkStream=qVe;function qVe(t,e,r){r=Cn(r);let i=r.Promise||Promise,n=uO(r.concat({integrity:e}));return new i((s,o)=>{t.pipe(n),t.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ma.exports.integrityStream=uO;function uO(t){t=Cn(t);let e=t.integrity&&Ea(t.integrity,t),r=e&&Object.keys(e).length,i=r&&e.pickAlgorithm(t),n=r&&e[i],s=Array.from(new Set(t.algorithms.concat(i?[i]:[]))),o=s.map(cE.createHash),a=0,l=new LVe({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=t.options&&t.options.length?`?${t.options.join("?")}`:"",u=Ea(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),t),g=r&&u.match(e,t);if(typeof t.size=="number"&&a!==t.size){let f=new Error(`stream size mismatch when checking ${e}. + Wanted: ${t.size} + Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=t.size,f.sri=e,l.emit("error",f)}else if(t.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ma.exports.create=JVe;function JVe(t){t=Cn(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",i=e.map(cE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Du(`${a}-${l}${r}`,t);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new wh)}}}var WVe=new Set(cE.getHashes()),tge=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>WVe.has(t));function UVe(t,e){return tge.indexOf(t.toLowerCase())>=tge.indexOf(e.toLowerCase())?t:e}});var vC={};ft(vC,{BuildType:()=>ls,Cache:()=>Nt,Configuration:()=>we,DEFAULT_LOCK_FILENAME:()=>Qx,DEFAULT_RC_FILENAME:()=>bx,FormatType:()=>Di,InstallMode:()=>di,LightReport:()=>gA,LinkType:()=>Qt,Manifest:()=>At,MessageName:()=>$,MultiFetcher:()=>wd,PackageExtensionStatus:()=>qi,PackageExtensionType:()=>yi,Project:()=>ze,ProjectLookup:()=>al,Report:()=>Ji,ReportError:()=>ct,SettingsType:()=>ye,StreamReport:()=>Je,TAG_REGEXP:()=>qg,TelemetryManager:()=>QC,ThrowReport:()=>pi,VirtualFetcher:()=>bd,Workspace:()=>bC,WorkspaceFetcher:()=>Qd,WorkspaceResolver:()=>oi,YarnVersion:()=>Kr,execUtils:()=>Fr,folderUtils:()=>Cx,formatUtils:()=>Ae,hashUtils:()=>Dn,httpUtils:()=>ir,miscUtils:()=>ve,nodeUtils:()=>Wg,parseMessageName:()=>bI,scriptUtils:()=>Zt,semverUtils:()=>Wt,stringifyMessageName:()=>qA,structUtils:()=>P,tgzUtils:()=>wi,treeUtils:()=>As});var Fr={};ft(Fr,{EndStrategy:()=>ns,ExecError:()=>Rx,PipeError:()=>vw,execvp:()=>mke,pipevp:()=>$o});var $h={};ft($h,{AliasFS:()=>Da,CwdFS:()=>_t,DEFAULT_COMPRESSION_LEVEL:()=>nc,FakeFS:()=>HA,Filename:()=>Pt,JailFS:()=>Ra,LazyFS:()=>Vh,LinkStrategy:()=>Yh,NoFS:()=>_E,NodeFS:()=>ar,PortablePath:()=>Ke,PosixFS:()=>Xh,ProxiedFS:()=>bi,VirtualFS:()=>Wr,ZipFS:()=>Ai,ZipOpenFS:()=>Es,constants:()=>Dr,extendFs:()=>XE,normalizeLineEndings:()=>ec,npath:()=>H,opendir:()=>JE,patchFs:()=>SQ,ppath:()=>x,statUtils:()=>hQ,toFilename:()=>Jr,xfs:()=>K});var Dr={};ft(Dr,{SAFE_TIME:()=>fQ,S_IFDIR:()=>ka,S_IFLNK:()=>Pa,S_IFMT:()=>_n,S_IFREG:()=>xa});var _n=61440,ka=16384,xa=32768,Pa=40960,fQ=456789e3;var hQ={};ft(hQ,{BigIntStatsEntry:()=>Hh,DEFAULT_MODE:()=>Uh,DirEntry:()=>oM,StatEntry:()=>KA,areStatsEqual:()=>dQ,clearStats:()=>KE,convertToBigIntStats:()=>UE,makeDefaultStats:()=>Gh,makeEmptyStats:()=>pfe});var pQ=ge(require("util"));var Uh=xa|420,oM=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&_n)===ka}isFIFO(){return!1}isFile(){return(this.mode&_n)===xa}isSocket(){return!1}isSymbolicLink(){return(this.mode&_n)===Pa}},KA=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Uh;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&_n)===ka}isFIFO(){return!1}isFile(){return(this.mode&_n)===xa}isSocket(){return!1}isSymbolicLink(){return(this.mode&_n)===Pa}},Hh=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Uh);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(_n))===BigInt(ka)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(_n))===BigInt(xa)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(_n))===BigInt(Pa)}};function Gh(){return new KA}function pfe(){return KE(Gh())}function KE(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):pQ.types.isDate(r)&&(t[e]=new Date(0))}return t}function UE(t){let e=new Hh;for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let i=t[r];typeof i=="number"?e[r]=BigInt(i):pQ.types.isDate(i)&&(e[r]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function dQ(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,i=e;return!(r.atimeNs!==i.atimeNs||r.mtimeNs!==i.mtimeNs||r.ctimeNs!==i.ctimeNs||r.birthtimeNs!==i.birthtimeNs)}var GE=ge(require("fs"));var jh=ge(require("path")),aM;(function(i){i[i.File=0]="File",i[i.Portable=1]="Portable",i[i.Native=2]="Native"})(aM||(aM={}));var Ke={root:"/",dot:"."},Pt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},H=Object.create(jh.default),x=Object.create(jh.default.posix);H.cwd=()=>process.cwd();x.cwd=()=>CQ(process.cwd());x.resolve=(...t)=>t.length>0&&x.isAbsolute(t[0])?jh.default.posix.resolve(...t):jh.default.posix.resolve(x.cwd(),...t);var AM=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};H.fromPortablePath=lM;H.toPortablePath=CQ;H.contains=(t,e)=>AM(H,t,e);x.contains=(t,e)=>AM(x,t,e);var dfe=/^([a-zA-Z]:.*)$/,Cfe=/^\/\/(\.\/)?(.*)$/,mfe=/^\/([a-zA-Z]:.*)$/,Efe=/^\/unc\/(\.dot\/)?(.*)$/;function lM(t){if(process.platform!=="win32")return t;let e,r;if(e=t.match(mfe))t=e[1];else if(r=t.match(Efe))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function CQ(t){if(process.platform!=="win32")return t;t=t.replace(/\\/g,"/");let e,r;return(e=t.match(dfe))?t=`/${e[1]}`:(r=t.match(Cfe))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function HE(t,e){return t===H?lM(e):CQ(e)}function Jr(t){if(H.parse(t).dir!==""||x.parse(t).dir!=="")throw new Error(`Invalid filename: "${t}"`);return t}var jE=new Date(fQ*1e3),Yh;(function(r){r.Allow="allow",r.ReadOnly="readOnly"})(Yh||(Yh={}));async function cM(t,e,r,i,n){let s=t.pathUtils.normalize(e),o=r.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:jE,mtime:jE}:await r.lstatPromise(o);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof t.lutimesPromise=="function"?t.lutimesPromise.bind(t):t.utimesPromise.bind(t);await mQ(a,l,g,t,s,r,o,ie(N({},n),{didParentExist:!0}));for(let f of a)await f();await Promise.all(l.map(f=>f()))}async function mQ(t,e,r,i,n,s,o,a){var h,p;let l=a.didParentExist?await Ife(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:jE,mtime:jE}:c,f;switch(!0){case c.isDirectory():f=await yfe(t,e,r,i,n,l,s,o,c,a);break;case c.isFile():f=await wfe(t,e,r,i,n,l,s,o,c,a);break;case c.isSymbolicLink():f=await Bfe(t,e,r,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(f||((h=l==null?void 0:l.mtime)==null?void 0:h.getTime())!==g.getTime()||((p=l==null?void 0:l.atime)==null?void 0:p.getTime())!==u.getTime())&&(e.push(()=>r(n,u,g)),f=!0),(l===null||(l.mode&511)!=(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),f=!0),f}async function Ife(t,e){try{return await t.lstatPromise(e)}catch(r){return null}}async function yfe(t,e,r,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(t.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(h){if(h.code!=="EEXIST")throw h}}),u=!0);let g=await o.readdirPromise(a),f=c.didParentExist&&!s?ie(N({},c),{didParentExist:!1}):c;if(c.stableSort)for(let h of g.sort())await mQ(t,e,r,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),f)&&(u=!0);else(await Promise.all(g.map(async p=>{await mQ(t,e,r,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),f)}))).some(p=>p)&&(u=!0);return u}var EQ=new WeakMap;function IQ(t,e,r,i,n){return async()=>{await t.linkPromise(r,e),n===Yh.ReadOnly&&(i.mode&=~146,await t.chmodPromise(e,i.mode))}}function bfe(t,e,r,i,n){let s=EQ.get(t);return typeof s=="undefined"?async()=>{try{await t.copyFilePromise(r,e,GE.default.constants.COPYFILE_FICLONE_FORCE),EQ.set(t,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")EQ.set(t,!1),await IQ(t,e,r,i,n)();else throw o}}:s?async()=>t.copyFilePromise(r,e,GE.default.constants.COPYFILE_FICLONE_FORCE):IQ(t,e,r,i,n)}async function wfe(t,e,r,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?bfe(i,n,a,l,u):async()=>i.copyFilePromise(a,n,GE.default.constants.COPYFILE_FICLONE):u!==null?IQ(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return t.push(async()=>g()),!0}async function Bfe(t,e,r,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;return t.push(async()=>{await i.symlinkPromise(HE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function ms(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function YE(t){return ms("EBUSY",t)}function qh(t,e){return ms("ENOSYS",`${t}, ${e}`)}function UA(t){return ms("EINVAL",`invalid argument, ${t}`)}function en(t){return ms("EBADF",`bad file descriptor, ${t}`)}function ro(t){return ms("ENOENT",`no such file or directory, ${t}`)}function Do(t){return ms("ENOTDIR",`not a directory, ${t}`)}function Jh(t){return ms("EISDIR",`illegal operation on a directory, ${t}`)}function qE(t){return ms("EEXIST",`file already exists, ${t}`)}function In(t){return ms("EROFS",`read-only filesystem, ${t}`)}function uM(t){return ms("ENOTEMPTY",`directory not empty, ${t}`)}function gM(t){return ms("EOPNOTSUPP",`operation not supported, ${t}`)}function fM(){return ms("ERR_DIR_CLOSED","Directory handle was closed")}var yQ=class extends Error{constructor(e,r){super(e);this.name="Libzip Error",this.code=r}};var hM=class{constructor(e,r,i={}){this.path=e;this.nextDirent=r;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw fM()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e!="undefined"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e!="undefined"?e(null):Promise.resolve()}closeSync(){var e,r;this.throwIfClosed(),(r=(e=this.opts).onClose)==null||r.call(e),this.closed=!0}};function JE(t,e,r,i){let n=()=>{let s=r.shift();return typeof s=="undefined"?null:Object.assign(t.statSync(t.pathUtils.join(e,s)),{name:s})};return new hM(e,n,i)}var pM=ge(require("os"));var HA=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(r)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:r=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(r){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(r)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep);for(let s=2;s<=n.length;++s){let o=n.slice(0,s).join(this.pathUtils.sep);if(!this.existsSync(o)){try{await this.mkdirPromise(o)}catch(a){if(a.code==="EEXIST")continue;throw a}if(r!=null&&await this.chmodPromise(o,r),i!=null)await this.utimesPromise(o,i[0],i[1]);else{let a=await this.statPromise(this.pathUtils.dirname(o));await this.utimesPromise(o,a.atime,a.mtime)}}}}mkdirpSync(e,{chmod:r,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep);for(let s=2;s<=n.length;++s){let o=n.slice(0,s).join(this.pathUtils.sep);if(!this.existsSync(o)){try{this.mkdirSync(o)}catch(a){if(a.code==="EEXIST")continue;throw a}if(r!=null&&this.chmodSync(o,r),i!=null)this.utimesSync(o,i[0],i[1]);else{let a=this.statSync(this.pathUtils.dirname(o));this.utimesSync(o,a.atime,a.mtime)}}}}async copyPromise(e,r,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await cM(this,e,i,r,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,r,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(r),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(r);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(r,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(r);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(r);this.symlinkSync(HE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,r,i={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,i):this.changeFileTextPromise(e,r,i)}async changeFileBufferPromise(e,r,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch(s){}Buffer.compare(n,r)!==0&&await this.writeFilePromise(e,r,{mode:i})}async changeFileTextPromise(e,r,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch(a){}let o=i?ec(s,r):r;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,r,i={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,i):this.changeFileTextSync(e,r,i)}changeFileBufferSync(e,r,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch(s){}Buffer.compare(n,r)!==0&&this.writeFileSync(e,r,{mode:i})}changeFileTextSync(e,r,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch(a){}let o=i?ec(s,r):r;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(i){if(i.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw i}}moveSync(e,r){try{this.renameSync(e,r)}catch(i){if(i.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw i}}async lockPromise(e,r){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch(c){return Date.now()-s<500}try{return process.kill(l,0),!0}catch(c){return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch(c){}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch(l){}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,r){return await this.writeFilePromise(e,`${JSON.stringify(r,null,2)} +`)}writeJsonSync(e,r){return this.writeFileSync(e,`${JSON.stringify(r,null,2)} +`)}async preserveTimePromise(e,r){let i=await this.lstatPromise(e),n=await r();typeof n!="undefined"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,r){let i=this.lstatSync(e),n=r();typeof n!="undefined"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},tc=class extends HA{constructor(){super(x)}};function Qfe(t){let e=t.match(/\r?\n/g);if(e===null)return pM.EOL;let r=e.filter(n=>n===`\r +`).length,i=e.length-r;return r>i?`\r +`:` +`}function ec(t,e){return e.replace(/\r?\n/g,Qfe(t))}var Ju=ge(require("fs")),wQ=ge(require("stream")),EM=ge(require("util")),BQ=ge(require("zlib"));var dM=ge(require("fs"));var ar=class extends tc{constructor(e=dM.default){super();this.realFs=e,typeof this.realFs.lutimes!="undefined"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Ke.root}resolve(e){return x.resolve(e)}async openPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.open(H.fromPortablePath(e),r,i,this.makeCallback(n,s))})}openSync(e,r,i){return this.realFs.openSync(H.fromPortablePath(e),r,i)}async opendirPromise(e,r){return await new Promise((i,n)=>{typeof r!="undefined"?this.realFs.opendir(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.opendir(H.fromPortablePath(e),this.makeCallback(i,n))}).then(i=>Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0}))}opendirSync(e,r){let i=typeof r!="undefined"?this.realFs.opendirSync(H.fromPortablePath(e),r):this.realFs.opendirSync(H.fromPortablePath(e));return Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0})}async readPromise(e,r,i=0,n=0,s=-1){return await new Promise((o,a)=>{this.realFs.read(e,r,i,n,s,(l,c)=>{l?a(l):o(c)})})}readSync(e,r,i,n,s){return this.realFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return await new Promise((o,a)=>typeof r=="string"?this.realFs.write(e,r,i,this.makeCallback(o,a)):this.realFs.write(e,r,i,n,s,this.makeCallback(o,a)))}writeSync(e,r,i,n,s){return typeof r=="string"?this.realFs.writeSync(e,r,i):this.realFs.writeSync(e,r,i,n,s)}async closePromise(e){await new Promise((r,i)=>{this.realFs.close(e,this.makeCallback(r,i))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createReadStream(i,r)}createWriteStream(e,r){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createWriteStream(i,r)}async realpathPromise(e){return await new Promise((r,i)=>{this.realFs.realpath(H.fromPortablePath(e),{},this.makeCallback(r,i))}).then(r=>H.toPortablePath(r))}realpathSync(e){return H.toPortablePath(this.realFs.realpathSync(H.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(H.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(H.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((i,n)=>{this.realFs.access(H.fromPortablePath(e),r,this.makeCallback(i,n))})}existsSync(e){return this.realFs.existsSync(H.fromPortablePath(e))}async statPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.stat(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.stat(H.fromPortablePath(e),this.makeCallback(i,n))})}statSync(e,r){return r?this.realFs.statSync(H.fromPortablePath(e),r):this.realFs.statSync(H.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.fstat(e,r,this.makeCallback(i,n)):this.realFs.fstat(e,this.makeCallback(i,n))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.lstat(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.lstat(H.fromPortablePath(e),this.makeCallback(i,n))})}lstatSync(e,r){return r?this.realFs.lstatSync(H.fromPortablePath(e),r):this.realFs.lstatSync(H.fromPortablePath(e))}async chmodPromise(e,r){return await new Promise((i,n)=>{this.realFs.chmod(H.fromPortablePath(e),r,this.makeCallback(i,n))})}chmodSync(e,r){return this.realFs.chmodSync(H.fromPortablePath(e),r)}async chownPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.chown(H.fromPortablePath(e),r,i,this.makeCallback(n,s))})}chownSync(e,r,i){return this.realFs.chownSync(H.fromPortablePath(e),r,i)}async renamePromise(e,r){return await new Promise((i,n)=>{this.realFs.rename(H.fromPortablePath(e),H.fromPortablePath(r),this.makeCallback(i,n))})}renameSync(e,r){return this.realFs.renameSync(H.fromPortablePath(e),H.fromPortablePath(r))}async copyFilePromise(e,r,i=0){return await new Promise((n,s)=>{this.realFs.copyFile(H.fromPortablePath(e),H.fromPortablePath(r),i,this.makeCallback(n,s))})}copyFileSync(e,r,i=0){return this.realFs.copyFileSync(H.fromPortablePath(e),H.fromPortablePath(r),i)}async appendFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFile(o,r,i,this.makeCallback(n,s)):this.realFs.appendFile(o,r,this.makeCallback(n,s))})}appendFileSync(e,r,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFileSync(n,r,i):this.realFs.appendFileSync(n,r)}async writeFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFile(o,r,i,this.makeCallback(n,s)):this.realFs.writeFile(o,r,this.makeCallback(n,s))})}writeFileSync(e,r,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFileSync(n,r,i):this.realFs.writeFileSync(n,r)}async unlinkPromise(e){return await new Promise((r,i)=>{this.realFs.unlink(H.fromPortablePath(e),this.makeCallback(r,i))})}unlinkSync(e){return this.realFs.unlinkSync(H.fromPortablePath(e))}async utimesPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.utimes(H.fromPortablePath(e),r,i,this.makeCallback(n,s))})}utimesSync(e,r,i){this.realFs.utimesSync(H.fromPortablePath(e),r,i)}async lutimesPromiseImpl(e,r,i){let n=this.realFs.lutimes;if(typeof n=="undefined")throw qh("unavailable Node binding",`lutimes '${e}'`);return await new Promise((s,o)=>{n.call(this.realFs,H.fromPortablePath(e),r,i,this.makeCallback(s,o))})}lutimesSyncImpl(e,r,i){let n=this.realFs.lutimesSync;if(typeof n=="undefined")throw qh("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,H.fromPortablePath(e),r,i)}async mkdirPromise(e,r){return await new Promise((i,n)=>{this.realFs.mkdir(H.fromPortablePath(e),r,this.makeCallback(i,n))})}mkdirSync(e,r){return this.realFs.mkdirSync(H.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.rmdir(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.rmdir(H.fromPortablePath(e),this.makeCallback(i,n))})}rmdirSync(e,r){return this.realFs.rmdirSync(H.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((i,n)=>{this.realFs.link(H.fromPortablePath(e),H.fromPortablePath(r),this.makeCallback(i,n))})}linkSync(e,r){return this.realFs.linkSync(H.fromPortablePath(e),H.fromPortablePath(r))}async symlinkPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.symlink(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(r),i,this.makeCallback(n,s))})}symlinkSync(e,r,i){return this.realFs.symlinkSync(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(r),i)}async readFilePromise(e,r){return await new Promise((i,n)=>{let s=typeof e=="string"?H.fromPortablePath(e):e;this.realFs.readFile(s,r,this.makeCallback(i,n))})}readFileSync(e,r){let i=typeof e=="string"?H.fromPortablePath(e):e;return this.realFs.readFileSync(i,r)}async readdirPromise(e,r){return await new Promise((i,n)=>{(r==null?void 0:r.withFileTypes)?this.realFs.readdir(H.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(i,n)):this.realFs.readdir(H.fromPortablePath(e),this.makeCallback(s=>i(s),n))})}readdirSync(e,r){return(r==null?void 0:r.withFileTypes)?this.realFs.readdirSync(H.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(H.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,i)=>{this.realFs.readlink(H.fromPortablePath(e),this.makeCallback(r,i))}).then(r=>H.toPortablePath(r))}readlinkSync(e){return H.toPortablePath(this.realFs.readlinkSync(H.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((i,n)=>{this.realFs.truncate(H.fromPortablePath(e),r,this.makeCallback(i,n))})}truncateSync(e,r){return this.realFs.truncateSync(H.fromPortablePath(e),r)}watch(e,r,i){return this.realFs.watch(H.fromPortablePath(e),r,i)}watchFile(e,r,i){return this.realFs.watchFile(H.fromPortablePath(e),r,i)}unwatchFile(e,r){return this.realFs.unwatchFile(H.fromPortablePath(e),r)}makeCallback(e,r){return(i,n)=>{i?r(i):e(n)}}};var CM=ge(require("events"));var rc;(function(r){r.Change="change",r.Stop="stop"})(rc||(rc={}));var ic;(function(i){i.Ready="ready",i.Running="running",i.Stopped="stopped"})(ic||(ic={}));function mM(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var Wh=class extends CM.EventEmitter{constructor(e,r,{bigint:i=!1}={}){super();this.status=ic.Ready;this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=e,this.path=r,this.bigint=i,this.lastStats=this.stat()}static create(e,r,i){let n=new Wh(e,r,i);return n.start(),n}start(){mM(this.status,ic.Ready),this.status=ic.Running,this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(rc.Change,this.lastStats,this.lastStats)},3)}stop(){mM(this.status,ic.Running),this.status=ic.Stopped,this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(rc.Stop)}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch(e){let r=this.bigint?new Hh:new KA;return KE(r)}}makeInterval(e){let r=setInterval(()=>{let i=this.stat(),n=this.lastStats;dQ(i,n)||(this.lastStats=i,this.emit(rc.Change,i,n))},e.interval);return e.persistent?r:r.unref()}registerChangeListener(e,r){this.addListener(rc.Change,e),this.changeListeners.set(e,this.makeInterval(r))}unregisterChangeListener(e){this.removeListener(rc.Change,e);let r=this.changeListeners.get(e);typeof r!="undefined"&&clearInterval(r),this.changeListeners.delete(e)}unregisterAllChangeListeners(){for(let e of this.changeListeners.keys())this.unregisterChangeListener(e)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let e of this.changeListeners.values())e.ref();return this}unref(){for(let e of this.changeListeners.values())e.unref();return this}};var WE=new WeakMap;function zE(t,e,r,i){let n,s,o,a;switch(typeof r){case"function":n=!1,s=!0,o=5007,a=r;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=r),a=i;break}let l=WE.get(t);typeof l=="undefined"&&WE.set(t,l=new Map);let c=l.get(e);return typeof c=="undefined"&&(c=Wh.create(t,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function zh(t,e,r){let i=WE.get(t);if(typeof i=="undefined")return;let n=i.get(e);typeof n!="undefined"&&(typeof r=="undefined"?n.unregisterAllChangeListeners():n.unregisterChangeListener(r),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function _h(t){let e=WE.get(t);if(typeof e!="undefined")for(let r of e.keys())zh(t,r)}var nc="mixed";function vfe(t){if(typeof t=="string"&&String(+t)===t)return+t;if(Number.isFinite(t))return t<0?Date.now()/1e3:t;if(EM.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function IM(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Ai=class extends tc{constructor(e,r){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=r.libzip;let i=r;if(this.level=typeof i.level!="undefined"?i.level:nc,e!=null||(e=IM()),typeof e=="string"){let{baseFs:o=new ar}=i;this.baseFs=o,this.path=e}else this.path=null,this.baseFs=null;if(r.stats)this.stats=r.stats;else if(typeof e=="string")try{this.stats=this.baseFs.statSync(e)}catch(o){if(o.code==="ENOENT"&&i.create)this.stats=Gh();else throw o}else this.stats=Gh();let n=this.libzip.malloc(4);try{let o=0;if(typeof e=="string"&&i.create&&(o|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),r.readOnly&&(o|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof e=="string")this.zip=this.libzip.open(H.fromPortablePath(e),o,n);else{let a=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(a,o,n),this.lzSource=a}catch(l){throw this.libzip.source.free(a),l}}if(this.zip===0){let a=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(a,this.libzip.getValue(n,"i32")),this.makeLibzipError(a)}}finally{this.libzip.free(n)}this.listings.set(Ke.root,new Set);let s=this.libzip.getNumEntries(this.zip,0);for(let o=0;oe)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(r,r+e);return Buffer.from(n)}finally{this.libzip.free(r)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw YE("archive closed, close");_h(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let e=this.baseFs.existsSync(this.path)||this.stats.mode===Uh?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,IM(),{mode:e});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof e!="undefined"&&this.baseFs.chmodSync(this.path,e)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(e){return x.resolve(Ke.root,e)}async openPromise(e,r,i){return this.openSync(e,r,i)}openSync(e,r,i){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(e,r){return this.opendirSync(e,r)}opendirSync(e,r={}){let i=this.resolveFilename(`opendir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`opendir '${e}'`);let n=this.listings.get(i);if(!n)throw Do(`opendir '${e}'`);let s=[...n],o=this.openSync(i,"r");return JE(this,i,s,{onClose:()=>{this.closeSync(o)}})}async readPromise(e,r,i,n,s){return this.readSync(e,r,i,n,s)}readSync(e,r,i=0,n=r.byteLength,s=-1){let o=this.fds.get(e);if(typeof o=="undefined")throw en("read");let a=s===-1||s===null?o.cursor:s,l=this.readFileSync(o.p);l.copy(r,i,a,a+n);let c=Math.max(0,Math.min(l.length-a,n));return(s===-1||s===null)&&(o.cursor+=c),c}async writePromise(e,r,i,n,s){return typeof r=="string"?this.writeSync(e,r,s):this.writeSync(e,r,i,n,s)}writeSync(e,r,i,n,s){throw typeof this.fds.get(e)=="undefined"?en("read"):new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(typeof this.fds.get(e)=="undefined")throw en("read");this.fds.delete(e)}createReadStream(e,{encoding:r}={}){if(e===null)throw new Error("Unimplemented");let i=this.openSync(e,"r"),n=Object.assign(new wQ.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(o,a)=>{clearImmediate(s),this.closeSync(i),a(o)}}),{close(){n.destroy()},bytesRead:0,path:e}),s=setImmediate(async()=>{try{let o=await this.readFilePromise(e,r);n.bytesRead=o.length,n.end(o)}catch(o){n.destroy(o)}});return n}createWriteStream(e,{encoding:r}={}){if(this.readOnly)throw In(`open '${e}'`);if(e===null)throw new Error("Unimplemented");let i=[],n=this.openSync(e,"w"),s=Object.assign(new wQ.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(o,a)=>{try{o?a(o):(this.writeFileSync(e,Buffer.concat(i),r),a(null))}catch(l){a(l)}finally{this.closeSync(n)}}}),{bytesWritten:0,path:e,close(){s.destroy()}});return s.on("data",o=>{let a=Buffer.from(o);s.bytesWritten+=a.length,i.push(a)}),s}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){let r=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw ro(`lstat '${e}'`);return r}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw YE(`archive closed, existsSync '${e}'`);if(this.symlinkCount===0){let i=x.resolve(Ke.root,e);return this.entries.has(i)||this.listings.has(i)}let r;try{r=this.resolveFilename(`stat '${e}'`,e)}catch(i){return!1}return this.entries.has(r)||this.listings.has(r)}async accessPromise(e,r){return this.accessSync(e,r)}accessSync(e,r=Ju.constants.F_OK){let i=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`access '${e}'`);if(this.readOnly&&r&Ju.constants.W_OK)throw In(`access '${e}'`)}async statPromise(e,r){return this.statSync(e,r)}statSync(e,r){let i=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`stat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw Do(`stat '${e}'`);return this.statImpl(`stat '${e}'`,i,r)}async fstatPromise(e,r){return this.fstatSync(e,r)}fstatSync(e,r){let i=this.fds.get(e);if(typeof i=="undefined")throw en("fstatSync");let{p:n}=i,s=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(s)&&!this.listings.has(s))throw ro(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(s))throw Do(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,s,r)}async lstatPromise(e,r){return this.lstatSync(e,r)}lstatSync(e,r){let i=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`lstat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw Do(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,i,r)}statImpl(e,r,i={}){let n=this.entries.get(r);if(typeof n!="undefined"){let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.stats.uid,l=this.stats.gid,c=this.libzip.struct.statSize(s)>>>0,u=512,g=Math.ceil(c/u),f=(this.libzip.struct.statMtime(s)>>>0)*1e3,h=f,p=f,m=f,y=new Date(h),b=new Date(p),S=new Date(m),k=new Date(f),T=this.listings.has(r)?ka:this.isSymbolicLink(n)?Pa:xa,Y=T===ka?493:420,j=T|this.getUnixMode(n,Y)&511,Z=this.libzip.struct.statCrc(s),J=Object.assign(new KA,{uid:a,gid:l,size:c,blksize:u,blocks:g,atime:y,birthtime:b,ctime:S,mtime:k,atimeMs:h,birthtimeMs:p,ctimeMs:m,mtimeMs:f,mode:j,crc:Z});return i.bigint===!0?UE(J):J}if(this.listings.has(r)){let s=this.stats.uid,o=this.stats.gid,a=0,l=512,c=0,u=this.stats.mtimeMs,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=new Date(u),m=new Date(g),y=new Date(f),b=new Date(h),S=ka|493,k=0,T=Object.assign(new KA,{uid:s,gid:o,size:a,blksize:l,blocks:c,atime:p,birthtime:m,ctime:y,mtime:b,atimeMs:u,birthtimeMs:g,ctimeMs:f,mtimeMs:h,mode:S,crc:k});return i.bigint===!0?UE(T):T}throw new Error("Unreachable")}getUnixMode(e,r){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?r:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let r=this.listings.get(e);if(r)return r;this.registerListing(x.dirname(e)).add(x.basename(e));let n=new Set;return this.listings.set(e,n),n}registerEntry(e,r){this.registerListing(x.dirname(e)).add(x.basename(e)),this.entries.set(e,r)}unregisterListing(e){this.listings.delete(e);let r=this.listings.get(x.dirname(e));r==null||r.delete(x.basename(e))}unregisterEntry(e){this.unregisterListing(e);let r=this.entries.get(e);this.entries.delete(e),typeof r!="undefined"&&(this.fileSources.delete(r),this.isSymbolicLink(r)&&this.symlinkCount--)}deleteEntry(e,r){if(this.unregisterEntry(e),this.libzip.delete(this.zip,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(e,r,i=!0){if(!this.ready)throw YE(`archive closed, ${e}`);let n=x.resolve(Ke.root,r);if(n==="/")return Ke.root;let s=this.entries.get(n);if(i&&s!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(s)){let o=this.getFileSource(s).toString();return this.resolveFilename(e,x.resolve(x.dirname(n),o),!0)}else return n;for(;;){let o=this.resolveFilename(e,x.dirname(n),!0),a=this.listings.has(o),l=this.entries.has(o);if(!a&&!l)throw ro(e);if(!a)throw Do(e);if(n=x.resolve(o,x.basename(n)),!i||this.symlinkCount===0)break;let c=this.libzip.name.locate(this.zip,n.slice(1));if(c===-1)break;if(this.isSymbolicLink(c)){let u=this.getFileSource(c).toString();n=x.resolve(x.dirname(n),u)}else break}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libzip.malloc(e.byteLength);if(!r)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,r,e.byteLength).set(e),{buffer:r,byteLength:e.byteLength}}allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:i,byteLength:n}=this.allocateBuffer(e),s=this.libzip.source.fromUnattachedBuffer(i,n,0,!0,r);if(s===0)throw this.libzip.free(r),this.makeLibzipError(r);return s}allocateSource(e){let{buffer:r,byteLength:i}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,r,i,0,!0);if(n===0)throw this.libzip.free(r),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(e,r){let i=Buffer.isBuffer(r)?r:Buffer.from(r),n=x.relative(Ke.root,e),s=this.allocateSource(r);try{let o=this.libzip.file.add(this.zip,n,s,this.libzip.ZIP_FL_OVERWRITE);if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let a=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,o,0,a,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(o,i),o}catch(o){throw this.libzip.source.free(s),o}}isSymbolicLink(e){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&_n)===Pa}getFileSource(e,r={asyncDecompress:!1}){let i=this.fileSources.get(e);if(typeof i!="undefined")return i;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let o=this.libzip.struct.statCompSize(n),a=this.libzip.struct.statCompMethod(n),l=this.libzip.malloc(o);try{let c=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(c===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let u=this.libzip.fread(c,l,o,0);if(u===-1)throw this.makeLibzipError(this.libzip.file.getError(c));if(uo)throw new Error("Overread");let g=this.libzip.HEAPU8.subarray(l,l+o),f=Buffer.from(g);if(a===0)return this.fileSources.set(e,f),f;if(r.asyncDecompress)return new Promise((h,p)=>{BQ.default.inflateRaw(f,(m,y)=>{m?p(m):(this.fileSources.set(e,y),h(y))})});{let h=BQ.default.inflateRawSync(f);return this.fileSources.set(e,h),h}}finally{this.libzip.fclose(c)}}finally{this.libzip.free(l)}}async chmodPromise(e,r){return this.chmodSync(e,r)}chmodSync(e,r){if(this.readOnly)throw In(`chmod '${e}'`);r&=493;let i=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(i);if(typeof n=="undefined")throw new Error(`Assertion failed: The entry should have been registered (${i})`);let o=this.getUnixMode(n,xa|0)&~511|r;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,o<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async chownPromise(e,r,i){return this.chownSync(e,r,i)}chownSync(e,r,i){throw new Error("Unimplemented")}async renamePromise(e,r){return this.renameSync(e,r)}renameSync(e,r){throw new Error("Unimplemented")}async copyFilePromise(e,r,i){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=await this.getFileSource(n,{asyncDecompress:!0}),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}copyFileSync(e,r,i=0){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=this.getFileSource(n),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}prepareCopyFile(e,r,i=0){if(this.readOnly)throw In(`copyfile '${e} -> '${r}'`);if((i&Ju.constants.COPYFILE_FICLONE_FORCE)!=0)throw qh("unsupported clone operation",`copyfile '${e}' -> ${r}'`);let n=this.resolveFilename(`copyfile '${e} -> ${r}'`,e),s=this.entries.get(n);if(typeof s=="undefined")throw UA(`copyfile '${e}' -> '${r}'`);let o=this.resolveFilename(`copyfile '${e}' -> ${r}'`,r),a=this.entries.get(o);if((i&(Ju.constants.COPYFILE_EXCL|Ju.constants.COPYFILE_FICLONE_FORCE))!=0&&typeof a!="undefined")throw qE(`copyfile '${e}' -> '${r}'`);return{indexSource:s,resolvedDestP:o,indexDest:a}}async appendFilePromise(e,r,i){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFilePromise(e,r,i)}appendFileSync(e,r,i={}){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFileSync(e,r,i)}fdToPath(e,r){var n;let i=(n=this.fds.get(e))==null?void 0:n.p;if(typeof i=="undefined")throw en(r);return i}async writeFilePromise(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([await this.getFileSource(o,{asyncDecompress:!0}),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&await this.chmodPromise(a,s)}writeFileSync(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([this.getFileSource(o),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&this.chmodSync(a,s)}prepareWriteFile(e,r){if(typeof e=="number"&&(e=this.fdToPath(e,"read")),this.readOnly)throw In(`open '${e}'`);let i=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(i))throw Jh(`open '${e}'`);let n=null,s=null;typeof r=="string"?n=r:typeof r=="object"&&({encoding:n=null,mode:s=null}=r);let o=this.entries.get(i);return{encoding:n,mode:s,resolvedP:i,index:o}}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){if(this.readOnly)throw In(`unlink '${e}'`);let r=this.resolveFilename(`unlink '${e}'`,e);if(this.listings.has(r))throw Jh(`unlink '${e}'`);let i=this.entries.get(r);if(typeof i=="undefined")throw UA(`unlink '${e}'`);this.deleteEntry(r,i)}async utimesPromise(e,r,i){return this.utimesSync(e,r,i)}utimesSync(e,r,i){if(this.readOnly)throw In(`utimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,i)}async lutimesPromise(e,r,i){return this.lutimesSync(e,r,i)}lutimesSync(e,r,i){if(this.readOnly)throw In(`lutimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,i)}utimesImpl(e,r){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));let i=this.entries.get(e);if(i===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,i,0,vfe(r),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(e,r){return this.mkdirSync(e,r)}mkdirSync(e,{mode:r=493,recursive:i=!1}={}){if(i){this.mkdirpSync(e,{chmod:r});return}if(this.readOnly)throw In(`mkdir '${e}'`);let n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw qE(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,r)}async rmdirPromise(e,r){return this.rmdirSync(e,r)}rmdirSync(e,{recursive:r=!1}={}){if(this.readOnly)throw In(`rmdir '${e}'`);if(r){this.removeSync(e);return}let i=this.resolveFilename(`rmdir '${e}'`,e),n=this.listings.get(i);if(!n)throw Do(`rmdir '${e}'`);if(n.size>0)throw uM(`rmdir '${e}'`);let s=this.entries.get(i);if(typeof s=="undefined")throw UA(`rmdir '${e}'`);this.deleteEntry(e,s)}hydrateDirectory(e){let r=this.libzip.dir.add(this.zip,x.relative(Ke.root,e));if(r===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(e),this.registerEntry(e,r),r}async linkPromise(e,r){return this.linkSync(e,r)}linkSync(e,r){throw gM(`link '${e}' -> '${r}'`)}async symlinkPromise(e,r){return this.symlinkSync(e,r)}symlinkSync(e,r){if(this.readOnly)throw In(`symlink '${e}' -> '${r}'`);let i=this.resolveFilename(`symlink '${e}' -> '${r}'`,r);if(this.listings.has(i))throw Jh(`symlink '${e}' -> '${r}'`);if(this.entries.has(i))throw qE(`symlink '${e}' -> '${r}'`);let n=this.setFileSource(i,e);if(this.registerEntry(i,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(Pa|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=await this.readFileBuffer(e,{asyncDecompress:!0});return r?i.toString(r):i}readFileSync(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=this.readFileBuffer(e);return r?i.toString(r):i}readFileBuffer(e,r={asyncDecompress:!1}){typeof e=="number"&&(e=this.fdToPath(e,"read"));let i=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`open '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw Do(`open '${e}'`);if(this.listings.has(i))throw Jh("read");let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,r)}async readdirPromise(e,r){return this.readdirSync(e,r)}readdirSync(e,r){let i=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`scandir '${e}'`);let n=this.listings.get(i);if(!n)throw Do(`scandir '${e}'`);let s=[...n];return(r==null?void 0:r.withFileTypes)?s.map(o=>Object.assign(this.statImpl("lstat",x.join(e,o)),{name:o})):s}async readlinkPromise(e){let r=this.prepareReadlink(e);return(await this.getFileSource(r,{asyncDecompress:!0})).toString()}readlinkSync(e){let r=this.prepareReadlink(e);return this.getFileSource(r).toString()}prepareReadlink(e){let r=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(r)&&!this.listings.has(r))throw ro(`readlink '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(r))throw Do(`open '${e}'`);if(this.listings.has(r))throw UA(`readlink '${e}'`);let i=this.entries.get(r);if(i===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(i))throw UA(`readlink '${e}'`);return i}async truncatePromise(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw UA(`open '${e}'`);let s=await this.getFileSource(n,{asyncDecompress:!0}),o=Buffer.alloc(r,0);return s.copy(o),await this.writeFilePromise(e,o)}truncateSync(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw UA(`open '${e}'`);let s=this.getFileSource(n),o=Buffer.alloc(r,0);return s.copy(o),this.writeFileSync(e,o)}watch(e,r,i){let n;switch(typeof r){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=r);break}if(!n)return{on:()=>{},close:()=>{}};let s=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(s)}}}watchFile(e,r,i){let n=x.resolve(Ke.root,e);return zE(this,n,r,i)}unwatchFile(e,r){let i=x.resolve(Ke.root,e);return zh(this,i,r)}};var bi=class extends HA{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,i){return this.baseFs.openPromise(this.mapToBase(e),r,i)}openSync(e,r,i){return this.baseFs.openSync(this.mapToBase(e),r,i)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,i,n,s){return await this.baseFs.readPromise(e,r,i,n,s)}readSync(e,r,i,n,s){return this.baseFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s)}writeSync(e,r,i,n,s){return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}async lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async chownPromise(e,r,i){return this.baseFs.chownPromise(this.mapToBase(e),r,i)}chownSync(e,r,i){return this.baseFs.chownSync(this.mapToBase(e),r,i)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),i)}copyFileSync(e,r,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),i)}async appendFilePromise(e,r,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,i)}appendFileSync(e,r,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,i)}async writeFilePromise(e,r,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,i)}writeFileSync(e,r,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,i){return this.baseFs.utimesPromise(this.mapToBase(e),r,i)}utimesSync(e,r,i){return this.baseFs.utimesSync(this.mapToBase(e),r,i)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,r){return r==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),r):this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return r==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),r):this.baseFs.readFileSync(this.fsMapToBase(e),r)}async readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}watch(e,r,i){return this.baseFs.watch(this.mapToBase(e),r,i)}watchFile(e,r,i){return this.baseFs.watchFile(this.mapToBase(e),r,i)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Da=class extends bi{constructor(e,{baseFs:r,pathUtils:i}){super(i);this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}};var _t=class extends bi{constructor(e,{baseFs:r=new ar}={}){super(x);this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?x.normalize(e):this.baseFs.resolve(x.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}};var yM=Ke.root,Ra=class extends bi{constructor(e,{baseFs:r=new ar}={}){super(x);this.target=this.pathUtils.resolve(Ke.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Ke.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(yM,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(yM,this.pathUtils.relative(this.target,e))}};var Vh=class extends bi{constructor(e,r){super(r);this.instance=null;this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}};var st=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),bQ=class extends HA{constructor(){super(x)}getExtractHint(){throw st()}getRealPath(){throw st()}resolve(){throw st()}async openPromise(){throw st()}openSync(){throw st()}async opendirPromise(){throw st()}opendirSync(){throw st()}async readPromise(){throw st()}readSync(){throw st()}async writePromise(){throw st()}writeSync(){throw st()}async closePromise(){throw st()}closeSync(){throw st()}createWriteStream(){throw st()}createReadStream(){throw st()}async realpathPromise(){throw st()}realpathSync(){throw st()}async readdirPromise(){throw st()}readdirSync(){throw st()}async existsPromise(e){throw st()}existsSync(e){throw st()}async accessPromise(){throw st()}accessSync(){throw st()}async statPromise(){throw st()}statSync(){throw st()}async fstatPromise(e){throw st()}fstatSync(e){throw st()}async lstatPromise(e){throw st()}lstatSync(e){throw st()}async chmodPromise(){throw st()}chmodSync(){throw st()}async chownPromise(){throw st()}chownSync(){throw st()}async mkdirPromise(){throw st()}mkdirSync(){throw st()}async rmdirPromise(){throw st()}rmdirSync(){throw st()}async linkPromise(){throw st()}linkSync(){throw st()}async symlinkPromise(){throw st()}symlinkSync(){throw st()}async renamePromise(){throw st()}renameSync(){throw st()}async copyFilePromise(){throw st()}copyFileSync(){throw st()}async appendFilePromise(){throw st()}appendFileSync(){throw st()}async writeFilePromise(){throw st()}writeFileSync(){throw st()}async unlinkPromise(){throw st()}unlinkSync(){throw st()}async utimesPromise(){throw st()}utimesSync(){throw st()}async readFilePromise(){throw st()}readFileSync(){throw st()}async readlinkPromise(){throw st()}readlinkSync(){throw st()}async truncatePromise(){throw st()}truncateSync(){throw st()}watch(){throw st()}watchFile(){throw st()}unwatchFile(){throw st()}},_E=bQ;_E.instance=new bQ;var Xh=class extends bi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return H.fromPortablePath(e)}mapToBase(e){return H.toPortablePath(e)}};var Sfe=/^[0-9]+$/,QQ=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,kfe=/^([^/]+-)?[a-f0-9]+$/,Wr=class extends bi{static makeVirtualPath(e,r,i){if(x.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!x.basename(r).match(kfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let s=x.relative(x.dirname(e),i).split("/"),o=0;for(;o{let r=t.indexOf(e);if(r<=0)return null;let i=r;for(;r>=0&&(i=r+e.length,t[i]!==x.sep);){if(t[r-1]===x.sep)return null;r=t.indexOf(e,i)}return t.length>i&&t[i]!==x.sep?null:t.slice(0,i)},Es=class extends tc{constructor({libzip:e,baseFs:r=new ar,filter:i=null,maxOpenFiles:n=Infinity,readOnlyArchives:s=!1,useCache:o=!0,maxAge:a=5e3,fileExtensions:l=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof e!="function"?()=>e:e,this.baseFs=r,this.zipInstances=o?new Map:null,this.filter=i,this.maxOpenFiles=n,this.readOnlyArchives=s,this.maxAge=a,this.fileExtensions=l}static async openPromise(e,r){let i=new Es(r);try{return await e(i)}finally{i.saveAndClose()}}get libzip(){return typeof this.libzipInstance=="undefined"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(_h(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(_h(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,r){let i=this.nextFd++|Fa;return this.fdMap.set(i,[e,r]),i}async openPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,r,i),async(n,{subPath:s})=>this.remapFd(n,await n.openPromise(s,r,i)))}openSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.openSync(e,r,i),(n,{subPath:s})=>this.remapFd(n,n.openSync(s,r,i)))}async opendirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.opendirPromise(e,r),async(i,{subPath:n})=>await i.opendirPromise(n,r),{requireSubpath:!1})}opendirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.opendirSync(e,r),(i,{subPath:n})=>i.opendirSync(n,r),{requireSubpath:!1})}async readPromise(e,r,i,n,s){if((e&Fa)==0)return await this.baseFs.readPromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("read");let[a,l]=o;return await a.readPromise(l,r,i,n,s)}readSync(e,r,i,n,s){if((e&Fa)==0)return this.baseFs.readSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("readSync");let[a,l]=o;return a.readSync(l,r,i,n,s)}async writePromise(e,r,i,n,s){if((e&Fa)==0)return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("write");let[a,l]=o;return typeof r=="string"?await a.writePromise(l,r,i):await a.writePromise(l,r,i,n,s)}writeSync(e,r,i,n,s){if((e&Fa)==0)return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("writeSync");let[a,l]=o;return typeof r=="string"?a.writeSync(l,r,i):a.writeSync(l,r,i,n,s)}async closePromise(e){if((e&Fa)==0)return await this.baseFs.closePromise(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw en("close");this.fdMap.delete(e);let[i,n]=r;return await i.closePromise(n)}closeSync(e){if((e&Fa)==0)return this.baseFs.closeSync(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw en("closeSync");this.fdMap.delete(e);let[i,n]=r;return i.closeSync(n)}createReadStream(e,r){return e===null?this.baseFs.createReadStream(e,r):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,r),(i,{archivePath:n,subPath:s})=>{let o=i.createReadStream(s,r);return o.path=H.fromPortablePath(this.pathUtils.join(n,s)),o})}createWriteStream(e,r){return e===null?this.baseFs.createWriteStream(e,r):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,r),(i,{subPath:n})=>i.createWriteStream(n,r))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=await this.baseFs.realpathPromise(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Ke.root,await r.realpathPromise(n)))})}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=this.baseFs.realpathSync(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Ke.root,r.realpathSync(n)))})}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(r,{subPath:i})=>await r.existsPromise(i))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(r,{subPath:i})=>r.existsSync(i))}async accessPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,r),async(i,{subPath:n})=>await i.accessPromise(n,r))}accessSync(e,r){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,r),(i,{subPath:n})=>i.accessSync(n,r))}async statPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e,r),async(i,{subPath:n})=>await i.statPromise(n,r))}statSync(e,r){return this.makeCallSync(e,()=>this.baseFs.statSync(e,r),(i,{subPath:n})=>i.statSync(n,r))}async fstatPromise(e,r){if((e&Fa)==0)return this.baseFs.fstatPromise(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw en("fstat");let[n,s]=i;return n.fstatPromise(s,r)}fstatSync(e,r){if((e&Fa)==0)return this.baseFs.fstatSync(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw en("fstatSync");let[n,s]=i;return n.fstatSync(s,r)}async lstatPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e,r),async(i,{subPath:n})=>await i.lstatPromise(n,r))}lstatSync(e,r){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e,r),(i,{subPath:n})=>i.lstatSync(n,r))}async chmodPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,r),async(i,{subPath:n})=>await i.chmodPromise(n,r))}chmodSync(e,r){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,r),(i,{subPath:n})=>i.chmodSync(n,r))}async chownPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.chownPromise(e,r,i),async(n,{subPath:s})=>await n.chownPromise(s,r,i))}chownSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.chownSync(e,r,i),(n,{subPath:s})=>n.chownSync(s,r,i))}async renamePromise(e,r){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(e,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(i,{subPath:n})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await i.renamePromise(n,o)}))}renameSync(e,r){return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(e,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(i,{subPath:n})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return i.renameSync(n,o)}))}async copyFilePromise(e,r,i=0){let n=async(s,o,a,l)=>{if((i&Zh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Zh.constants.COPYFILE_EXCL&&await this.existsPromise(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=await s.readFilePromise(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}await a.writeFilePromise(l,c)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(e,r,i),async(s,{subPath:o})=>await n(this.baseFs,e,s,o)),async(s,{subPath:o})=>await this.makeCallPromise(r,async()=>await n(s,o,this.baseFs,r),async(a,{subPath:l})=>s!==a?await n(s,o,a,l):await s.copyFilePromise(o,l,i)))}copyFileSync(e,r,i=0){let n=(s,o,a,l)=>{if((i&Zh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Zh.constants.COPYFILE_EXCL&&this.existsSync(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=s.readFileSync(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}a.writeFileSync(l,c)};return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(e,r,i),(s,{subPath:o})=>n(this.baseFs,e,s,o)),(s,{subPath:o})=>this.makeCallSync(r,()=>n(s,o,this.baseFs,r),(a,{subPath:l})=>s!==a?n(s,o,a,l):s.copyFileSync(o,l,i)))}async appendFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,r,i),async(n,{subPath:s})=>await n.appendFilePromise(s,r,i))}appendFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,r,i),(n,{subPath:s})=>n.appendFileSync(s,r,i))}async writeFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,r,i),async(n,{subPath:s})=>await n.writeFilePromise(s,r,i))}writeFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,r,i),(n,{subPath:s})=>n.writeFileSync(s,r,i))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(r,{subPath:i})=>await r.unlinkPromise(i))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(r,{subPath:i})=>r.unlinkSync(i))}async utimesPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,r,i),async(n,{subPath:s})=>await n.utimesPromise(s,r,i))}utimesSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,r,i),(n,{subPath:s})=>n.utimesSync(s,r,i))}async mkdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,r),async(i,{subPath:n})=>await i.mkdirPromise(n,r))}mkdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,r),(i,{subPath:n})=>i.mkdirSync(n,r))}async rmdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e,r),async(i,{subPath:n})=>await i.rmdirPromise(n,r))}rmdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e,r),(i,{subPath:n})=>i.rmdirSync(n,r))}async linkPromise(e,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(e,r),async(i,{subPath:n})=>await i.linkPromise(e,n))}linkSync(e,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(e,r),(i,{subPath:n})=>i.linkSync(e,n))}async symlinkPromise(e,r,i){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(e,r,i),async(n,{subPath:s})=>await n.symlinkPromise(e,s))}symlinkSync(e,r,i){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(e,r,i),(n,{subPath:s})=>n.symlinkSync(e,s))}async readFilePromise(e,r){return this.makeCallPromise(e,async()=>{switch(r){case"utf8":return await this.baseFs.readFilePromise(e,r);default:return await this.baseFs.readFilePromise(e,r)}},async(i,{subPath:n})=>await i.readFilePromise(n,r))}readFileSync(e,r){return this.makeCallSync(e,()=>{switch(r){case"utf8":return this.baseFs.readFileSync(e,r);default:return this.baseFs.readFileSync(e,r)}},(i,{subPath:n})=>i.readFileSync(n,r))}async readdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,r),async(i,{subPath:n})=>await i.readdirPromise(n,r),{requireSubpath:!1})}readdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,r),(i,{subPath:n})=>i.readdirSync(n,r),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(r,{subPath:i})=>await r.readlinkPromise(i))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(r,{subPath:i})=>r.readlinkSync(i))}async truncatePromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.truncatePromise(e,r),async(i,{subPath:n})=>await i.truncatePromise(n,r))}truncateSync(e,r){return this.makeCallSync(e,()=>this.baseFs.truncateSync(e,r),(i,{subPath:n})=>i.truncateSync(n,r))}watch(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watch(e,r,i),(n,{subPath:s})=>n.watch(s,r,i))}watchFile(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watchFile(e,r,i),()=>zE(this,e,r,i))}unwatchFile(e,r){return this.makeCallSync(e,()=>this.baseFs.unwatchFile(e,r),()=>zh(this,e,r))}async makeCallPromise(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return await r();let s=this.resolve(e),o=this.findZip(s);return o?n&&o.subPath==="/"?await r():await this.getZipPromise(o.archivePath,async a=>await i(a,o)):await r()}makeCallSync(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return r();let s=this.resolve(e),o=this.findZip(s);return!o||n&&o.subPath==="/"?r():this.getZipSync(o.archivePath,a=>i(a,o))}findZip(e){if(this.filter&&!this.filter.test(e))return null;let r="";for(;;){let i=e.substring(r.length),n;if(!this.fileExtensions)n=wM(i,".zip");else for(let s of this.fileExtensions)if(n=wM(i,s),n)break;if(!n)return null;if(r=this.pathUtils.join(r,n),this.isZip.has(r)===!1){if(this.notZip.has(r))continue;try{if(!this.baseFs.lstatSync(r).isFile()){this.notZip.add(r);continue}}catch{return null}this.isZip.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Ke.root,e.substring(r.length))}}}limitOpenFiles(e){if(this.zipInstances===null)return;let r=Date.now(),i=r+this.maxAge,n=e===null?0:this.zipInstances.size-e;for(let[s,{zipFs:o,expiresAt:a,refCount:l}]of this.zipInstances.entries())if(!(l!==0||o.hasOpenFileHandles())){if(r>=a){o.saveAndClose(),this.zipInstances.delete(s),n-=1;continue}else if(e===null||n<=0){i=a;break}o.saveAndClose(),this.zipInstances.delete(s),n-=1}this.limitOpenFilesTimeout===null&&(e===null&&this.zipInstances.size>0||e!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},i-r).unref())}async getZipPromise(e,r){let i=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){let s=await i();n=this.zipInstances.get(e),n||(n={zipFs:new Ai(e,s),expiresAt:0,refCount:0})}this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.zipFs)}finally{n.refCount-=1}}else{let n=new Ai(e,await i());try{return await r(n)}finally{n.saveAndClose()}}}getZipSync(e,r){let i=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n={zipFs:new Ai(e,i()),expiresAt:0,refCount:0}),this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,r(n.zipFs)}else{let n=new Ai(e,i());try{return r(n)}finally{n.saveAndClose()}}}};var Wu=ge(require("util"));var VE=ge(require("url"));var vQ=class extends bi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return e}mapToBase(e){return e instanceof VE.URL?(0,VE.fileURLToPath)(e):e}};var xfe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","chownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),BM=new Set(["accessPromise","appendFilePromise","chmodPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),Pfe=new Set(["appendFilePromise","chmodPromise","chownPromise","closePromise","readPromise","readFilePromise","statPromise","truncatePromise","utimesPromise","writePromise","writeFilePromise"]);function SQ(t,e){e=new vQ(e);let r=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Wu.promisify.custom])!="undefined"&&(s[Wu.promisify.custom]=o[Wu.promisify.custom])};{r(t,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),r(t,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of BM){let n=i.replace(/Promise$/,"");if(typeof t[n]=="undefined")continue;let s=e[i];if(typeof s=="undefined")continue;r(t,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",i=>{try{return e.existsSync(i)}catch(n){return!1}}),r(t,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of xfe){let n=i;if(typeof t[n]=="undefined")continue;let s=e[i];typeof s!="undefined"&&r(t,n,s.bind(e))}t.realpathSync.native=t.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=t.promises}finally{process.emitWarning=i}if(typeof n!="undefined"){for(let o of BM){let a=o.replace(/Promise$/,"");if(typeof n[a]=="undefined")continue;let l=e[o];typeof l!="undefined"&&o!=="open"&&r(n,a,l.bind(e))}class s{constructor(a){this.fd=a}}for(let o of Pfe){let a=o.replace(/Promise$/,""),l=e[o];typeof l!="undefined"&&r(s.prototype,a,function(...c){return l.call(e,this.fd,...c)})}r(n,"open",async(...o)=>{let a=await e.openPromise(...o);return new s(a)})}}t.read[Wu.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),t.write[Wu.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function XE(t,e){let r=Object.create(t);return SQ(r,e),r}var bM=ge(require("os"));function QM(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}var io=new Set,kQ=null;function vM(){if(kQ)return kQ;let t=H.toPortablePath(bM.default.tmpdir()),e=K.realpathSync(t);return process.once("exit",()=>{K.rmtempSync()}),kQ={tmpdir:t,realTmpdir:e}}var K=Object.assign(new ar,{detachTemp(t){io.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=vM();for(;;){let i=QM("xfs-");try{this.mkdirSync(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(r,i);if(io.add(n),typeof t=="undefined")return n;try{return t(n)}finally{if(io.has(n)){io.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=vM();for(;;){let i=QM("xfs-");try{await this.mkdirPromise(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(r,i);if(io.add(n),typeof t=="undefined")return n;try{return await t(n)}finally{if(io.has(n)){io.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(io.values()).map(async t=>{try{await K.removePromise(t,{maxRetries:0}),io.delete(t)}catch{}}))},rmtempSync(){for(let t of io)try{K.removeSync(t),io.delete(t)}catch{}}});var Px=ge(MQ());var ap={};ft(ap,{parseResolution:()=>iI,parseShell:()=>$E,parseSyml:()=>Qi,stringifyArgument:()=>GQ,stringifyArgumentSegment:()=>jQ,stringifyArithmeticExpression:()=>rI,stringifyCommand:()=>HQ,stringifyCommandChain:()=>Xu,stringifyCommandChainThen:()=>UQ,stringifyCommandLine:()=>eI,stringifyCommandLineThen:()=>KQ,stringifyEnvSegment:()=>tI,stringifyRedirectArgument:()=>ep,stringifyResolution:()=>nI,stringifyShell:()=>Vu,stringifyShellLine:()=>Vu,stringifySyml:()=>La,stringifyValueArgument:()=>oc});var dK=ge(pK());function $E(t,e={isGlobPattern:()=>!1}){try{return(0,dK.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function Vu(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:i},n)=>`${eI(r)}${i===";"?n!==t.length-1||e?";":"":" &"}`).join(" ")}function eI(t){return`${Xu(t.chain)}${t.then?` ${KQ(t.then)}`:""}`}function KQ(t){return`${t.type} ${eI(t.line)}`}function Xu(t){return`${HQ(t)}${t.then?` ${UQ(t.then)}`:""}`}function UQ(t){return`${t.type} ${Xu(t.chain)}`}function HQ(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>tI(e)).join(" ")} `:""}${t.args.map(e=>GQ(e)).join(" ")}`;case"subshell":return`(${Vu(t.subshell)})${t.args.length>0?` ${t.args.map(e=>ep(e)).join(" ")}`:""}`;case"group":return`{ ${Vu(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>ep(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>tI(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function tI(t){return`${t.name}=${t.args[0]?oc(t.args[0]):""}`}function GQ(t){switch(t.type){case"redirection":return ep(t);case"argument":return oc(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function ep(t){return`${t.subtype} ${t.args.map(e=>oc(e)).join(" ")}`}function oc(t){return t.segments.map(e=>jQ(e)).join("")}function jQ(t){let e=(i,n)=>n?`"${i}"`:i,r=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${Vu(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue=="undefined"?typeof t.alternativeValue=="undefined"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(i=>oc(i)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(i=>oc(i)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${rI(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function rI(t){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},r=(n,s)=>s?`( ${n} )`:n,i=n=>r(rI(n),!["number","variable"].includes(n.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${i(t.left)} ${e(t.type)} ${i(t.right)}`}}var EK=ge(mK());function iI(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,EK.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function nI(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var pI=ge(lU()),gU=ge(uU()),Kde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fU=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],rv=class{constructor(e){this.data=e}};function hU(t){return t.match(Kde)?t:JSON.stringify(t)}function pU(t){return typeof t=="undefined"?!0:typeof t=="object"&&t!==null?Object.keys(t).every(e=>pU(t[e])):!1}function iv(t,e,r){if(t===null)return`null +`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} +`;if(typeof t=="string")return`${hU(t)} +`;if(Array.isArray(t)){if(t.length===0)return`[] +`;let i=" ".repeat(e);return` +${t.map(s=>`${i}- ${iv(s,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let i,n;t instanceof rv?(i=t.data,n=!1):(i=t,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fU.indexOf(l),g=fU.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!pU(i[l])).map((l,c)=>{let u=i[l],g=hU(l),f=iv(u,e+1,!0),h=c>0||r?s:"",p=g.length>1024?`? ${g} +${h}:`:`${g}:`,m=f.startsWith(` +`)?f:` ${f}`;return`${h}${p}${m}`}).join(e===0?` +`:"")||` +`;return r?` +${a}`:`${a}`}throw new Error(`Unsupported value type (${t})`)}function La(t){try{let e=iv(t,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}La.PreserveOrdering=rv;function Ude(t){return t.endsWith(` +`)||(t+=` +`),(0,gU.parse)(t)}var Hde=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Gde(t){if(Hde.test(t))return Ude(t);let e=(0,pI.safeLoad)(t,{schema:pI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Qi(t){return Gde(t)}var i4=ge(CU()),ww=ge(pc());var mp={};ft(mp,{Builtins:()=>mv,Cli:()=>ys,Command:()=>Re,Option:()=>W,UsageError:()=>Pe,formatMarkdownish:()=>Ui});var dc=0,Ap=1,tn=2,sv="",vi="\0",og=-1,ov=/^(-h|--help)(?:=([0-9]+))?$/,dI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wU=/^-[a-zA-Z]{2,}$/,av=/^([^=]+)=([\s\S]*)$/,Av=process.env.DEBUG_CLI==="1";var Pe=class extends Error{constructor(e){super(e);this.clipanion={type:"usage"},this.name="UsageError"}},lp=class extends Error{constructor(e,r){super();if(this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===r[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} + +${this.candidates.map(({usage:n})=>`$ ${n}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${i} +${lv(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${lv(e)}`}},cv=class extends Error{constructor(e,r){super();this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${lv(e)}`}},lv=t=>`While running ${t.filter(e=>e!==vi).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`;var cp=Symbol("clipanion/isOption");function rn(t){return ie(N({},t),{[cp]:!0})}function No(t,e){return typeof t=="undefined"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function CI(t,e=!1){let r=t.replace(/^\.: /,"");return e&&(r=r[0].toLowerCase()+r.slice(1)),r}function up(t,e){return e.length===1?new Pe(`${t}: ${CI(e[0],!0)}`):new Pe(`${t}: +${e.map(r=>` +- ${CI(r)}`).join("")}`)}function gp(t,e,r){if(typeof r=="undefined")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!r(e,{errors:i,coercions:n,coercion:s}))throw up(`Invalid value for ${t}`,i);for(let[,a]of n)a();return e}var Re=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(Is(),ag)),a=o(n(s()),r),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw up("Invalid option schema",l);for(let[,g]of c)g()}else if(r!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i!="undefined"?i:0}};Re.isOption=cp;Re.Default=[];var RU=80,fv=Array(RU).fill("\u2501");for(let t=0;t<=24;++t)fv[fv.length-t]=`[38;5;${232+t}m\u2501`;var hv={header:t=>`\u2501\u2501\u2501 ${t}${t.length`${t}`,error:t=>`${t}`,code:t=>`${t}`},FU={header:t=>t,bold:t=>t,error:t=>t,code:t=>t};function bCe(t){let e=t.split(` +`),r=e.filter(n=>n.match(/\S/)),i=r.length>0?r.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` +`)}function Ui(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` +`),t=bCe(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),t=t.replace(/\n(\n)?\n*/g,"$1"),r&&(t=t.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` +`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` +`)}).join(` + +`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),t?`${t} +`:""}var Cv=ge(require("tty"));function wn(t){Av&&console.log(t)}var NU={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:og};function LU(){return{nodes:[sn(),sn(),sn()]}}function vCe(t){let e=LU(),r=[],i=e.nodes.length;for(let n of t){r.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=t.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)r(a);for(let[,{to:o}]of n.dynamics)r(o);for(let{to:o}of n.shortcuts)r(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=t.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};r(dc)}function kCe(t,{prefix:e=""}={}){if(Av){wn(`${e}Nodes are:`);for(let r=0;rl!==tn).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===tn))throw new lp(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=xCe(a)}if(i.length>0){wn(" Results:");for(let s of i)wn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else wn(" No results");return i}function PCe(t,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(t.statics,vi)){for(let{to:r}of t.statics[vi])if(r===Ap)return!0}return!1}function RCe(t,e,r){let i=r&&e.length>0?[""]:[],n=OU(t,e,r),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let m=t.nodes[p],y=Object.keys(m.statics);for(let b of Object.keys(m.statics)){let S=y[0];for(let{to:k,reducer:T}of m.statics[S])T==="pushPath"&&(u||l.push(S),g.push(k))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=t.nodes[l],g=PCe(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==vi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===tn)continue;let p=DCe(f,c);if(p!==null)for(let m of p)a([...i,m],l)}}return[...s].sort()}function NCe(t,e){let r=OU(t,[...e,vi]);return FCe(e,r.map(({state:i})=>i))}function xCe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function FCe(t,e){let r=e.filter(g=>g.selectedIndex!==null);if(r.length===0)throw new Error;let i=r.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new lp(t,r.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=LCe(c);if(u.length>1)throw new cv(t,u.map(g=>g.candidateUsage));return u[0]}function LCe(t){let e=[],r=[];for(let i of t)i.selectedIndex===og?r.push(i):e.push(i);return r.length>0&&e.push(ie(N({},NU),{path:MU(...r.map(i=>i.path)),options:r.reduce((i,n)=>i.concat(n.options),[])})),e}function MU(t,e,...r){return e===void 0?Array.from(t):MU(t.filter((i,n)=>i===e[n]),...r)}function sn(){return{dynamics:[],shortcuts:[],statics:{}}}function TU(t){return t===Ap||t===tn}function dv(t,e=0){return{to:TU(t.to)?t.to:t.to>2?t.to+e-2:t.to+e,reducer:t.reducer}}function QCe(t,e=0){let r=sn();for(let[i,n]of t.dynamics)r.dynamics.push([i,dv(n,e)]);for(let i of t.shortcuts)r.shortcuts.push(dv(i,e));for(let[i,n]of Object.entries(t.statics))r.statics[i]=n.map(s=>dv(s,e));return r}function Si(t,e,r,i,n){t.nodes[e].dynamics.push([r,{to:i,reducer:n}])}function Ag(t,e,r,i){t.nodes[e].shortcuts.push({to:r,reducer:i})}function Ta(t,e,r,i,n){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:i,reducer:n})}function EI(t,e,r,i){if(Array.isArray(e)){let[n,...s]=e;return t[n](r,i,...s)}else return t[e](r,i)}function DCe(t,e){let r=Array.isArray(t)?II[t[0]]:II[t];if(typeof r.suggest=="undefined")return null;let i=Array.isArray(t)?t.slice(1):[];return r.suggest(e,...i)}var II={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,i)=>!t.ignoreOptions&&e===r,isBatchOption:(t,e,r)=>!t.ignoreOptions&&wU.test(e)&&[...e.slice(1)].every(i=>r.includes(`-${i}`)),isBoundOption:(t,e,r,i)=>{let n=e.match(av);return!t.ignoreOptions&&!!n&&dI.test(n[1])&&r.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(t,e,r)=>!t.ignoreOptions&&e===`--no-${r.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&ov.test(e),isUnsupportedOption:(t,e,r)=>!t.ignoreOptions&&e.startsWith("-")&&dI.test(e)&&!r.includes(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!dI.test(e)};II.isOption.suggest=(t,e,r=!0)=>r?null:[e];var pv={setCandidateState:(t,e,r)=>N(N({},t),r),setSelectedIndex:(t,e,r)=>ie(N({},t),{selectedIndex:r}),pushBatch:(t,e)=>ie(N({},t),{options:t.options.concat([...e.slice(1)].map(r=>({name:`-${r}`,value:!0})))}),pushBound:(t,e)=>{let[,r,i]=e.match(av);return ie(N({},t),{options:t.options.concat({name:r,value:i})})},pushPath:(t,e)=>ie(N({},t),{path:t.path.concat(e)}),pushPositional:(t,e)=>ie(N({},t),{positionals:t.positionals.concat({value:e,extra:!1})}),pushExtra:(t,e)=>ie(N({},t),{positionals:t.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(t,e)=>ie(N({},t),{positionals:t.positionals.concat({value:e,extra:Xn})}),pushTrue:(t,e,r=e)=>ie(N({},t),{options:t.options.concat({name:e,value:!0})}),pushFalse:(t,e,r=e)=>ie(N({},t),{options:t.options.concat({name:r,value:!1})}),pushUndefined:(t,e)=>ie(N({},t),{options:t.options.concat({name:e,value:void 0})}),pushStringValue:(t,e)=>{var r;let i=ie(N({},t),{options:[...t.options]}),n=t.options[t.options.length-1];return n.value=((r=n.value)!==null&&r!==void 0?r:[]).concat([e]),i},setStringValue:(t,e)=>{let r=ie(N({},t),{options:[...t.options]}),i=t.options[t.options.length-1];return i.value=e,r},inhibateOptions:t=>ie(N({},t),{ignoreOptions:!0}),useHelp:(t,e,r)=>{let[,,i]=e.match(ov);return typeof i!="undefined"?ie(N({},t),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):ie(N({},t),{options:[{name:"-c",value:String(r)}]})},setError:(t,e,r)=>e===vi?ie(N({},t),{errorMessage:`${r}.`}):ie(N({},t),{errorMessage:`${r} ("${e}").`}),setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return ie(N({},t),{errorMessage:`Not enough arguments to option ${r.name}.`})}},Xn=Symbol(),KU=class{constructor(e,r){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:i,proxy:n})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===Xn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==Xn?this.arity.extra.push(e):this.arity.extra!==Xn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===Xn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:r,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Xn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context=="undefined")throw new Error("Assertion failed: No context attached");let e=LU(),r=dc,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);r=no(e,sn()),Ta(e,dc,sv,r,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=r;if(a.length>0){let f=no(e,sn());Ag(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=no(e,sn());Si(e,l,"isHelp",f,["useHelp",this.cliIndex]),Ta(e,f,vi,Ap,["setSelectedIndex",og]),this.registerOptions(e,l)}this.arity.leading.length>0&&Ta(e,l,vi,tn,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&Ta(e,h,vi,tn,["setError","Not enough positional arguments"]),Si(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Xn||this.arity.extra.length>0){let f=no(e,sn());if(Ag(e,c,f),this.arity.extra===Xn){let h=no(e,sn());this.arity.proxy||this.registerOptions(e,h),Si(e,c,s,h,"pushExtraNoLimits"),Si(e,h,s,h,"pushExtraNoLimits"),Ag(e,h,f)}else for(let h=0;h0&&Ta(e,u,vi,tn,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Si(e,r,["isOption",s,i.hidden||s!==n],r,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Si(e,r,["isNegatedOption",s],r,["pushFalse",s]);else{let s=no(e,sn());for(let o of i.names)Si(e,r,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eNCe(i,n),suggest:(n,s)=>RCe(i,n,s)}}};var Cp=class extends Re{constructor(e){super();this.contexts=e,this.commands=[]}static from(e,r){let i=new Cp(r);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index!="undefined"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let r=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}};var UU=Symbol("clipanion/errorCommand");function TCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout!="undefined"&&process.stdout.isTTY?8:1}var ys=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new dp({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,r={}){let i=new ys(r);for(let n of e)i.register(n);return i}register(e){var r;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Re.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(r=e.paths)!==null&&r!==void 0?r:n.paths;if(typeof a!="undefined")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:r,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case og:return Cp.from(n,r);default:{let{commandClass:s}=r[n.selectedIndex],o=this.registrations.get(s);if(typeof o=="undefined")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[UU]=a,l}}break}}async run(e,r){var i;let n,s=N(N({},ys.defaultContext),r),o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,N(N({},s),u)),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?OCe(s):HU,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,r){process.exitCode=await this.run(e,r)}suggest(e,r){let{suggest:i}=this.builder.compile();return i(e,r)}definitions({colored:e=!1}={}){let r=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage=="undefined")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category!="undefined"?Ui(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description!="undefined"?Ui(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details!="undefined"?Ui(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples!="undefined"?i.usage.examples.map(([f,h])=>[Ui(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;r.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return r}usage(e=null,{colored:r,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage!="undefined";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Re?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ui(l,{format:this.format(r),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` +`),(c!==""||u.length>0)&&(a+=`${this.format(r).header("Usage")} +`,a+=` +`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(r).bold(n)}${g} +`,f.length>0){a+=` +`,a+=`${hv.header("Options")} +`;let h=f.reduce((p,m)=>Math.max(p,m.definition.length),0);a+=` +`;for(let{definition:p,description:m}of f)a+=` ${this.format(r).bold(p.padEnd(h))} ${Ui(m,{format:this.format(r),paragraphs:!1})}`}if(c!==""&&(a+=` +`,a+=`${this.format(r).header("Details")} +`,a+=` +`,a+=Ui(c,{format:this.format(r),paragraphs:!0})),u.length>0){a+=` +`,a+=`${this.format(r).header("Examples")} +`;for(let[h,p]of u)a+=` +`,a+=Ui(h,{format:this.format(r),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(r).bold(n)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(r).bold(n)}${l} +`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage=="undefined")continue;let p=typeof f.usage.category!="undefined"?Ui(f.usage.category,{format:this.format(r),paragraphs:!1}):null,m=l.get(p);typeof m=="undefined"&&l.set(p,m=[]);let{usage:y}=this.getUsageByIndex(h);m.push({commandClass:f,usage:y})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel!="undefined",g=typeof this.binaryVersion!="undefined";u||g?(u&&g?a+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:u?a+=`${this.format(r).header(`${this.binaryLabel}`)} +`:a+=`${this.format(r).header(`${this.binaryVersion}`)} +`,a+=` ${this.format(r).bold(n)}${this.binaryName} +`):a+=`${this.format(r).bold(n)}${this.binaryName} +`;for(let f of c){let h=l.get(f).slice().sort((m,y)=>m.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` +`,a+=`${this.format(r).header(`${p}`)} +`;for(let{commandClass:m,usage:y}of h){let b=m.usage.description||"undocumented";a+=` +`,a+=` ${this.format(r).bold(y)} +`,a+=` ${Ui(b,{format:this.format(r),paragraphs:!1})}`}}a+=` +`,a+=Ui("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return a}error(e,r){var i,{colored:n,command:s=(i=e[UU])!==null&&i!==void 0?i:null}=r===void 0?{}:r;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`;let l=e.clipanion;return typeof l!="undefined"?l.type==="usage"&&(o+=` +`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} +`),o}format(e){var r;return((r=e!=null?e:this.enableColors)!==null&&r!==void 0?r:ys.defaultContext.colorDepth>1)?hv:FU}getUsageByRegistration(e,r){let i=this.registrations.get(e);if(typeof i=="undefined")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};ys.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in Cv.default.WriteStream.prototype?Cv.default.WriteStream.prototype.getColorDepth():TCe()};var GU;function OCe(t){let e=GU;if(typeof e=="undefined"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return HU;let{AsyncLocalStorage:r}=require("async_hooks");e=GU=new r;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return r=>e.run(t,r)}function HU(t){return t()}var mv={};ft(mv,{DefinitionsCommand:()=>yI,HelpCommand:()=>wI,VersionCommand:()=>BI});var yI=class extends Re{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};yI.paths=[["--clipanion=definitions"]];var wI=class extends Re{async execute(){this.context.stdout.write(this.cli.usage())}};wI.paths=[["-h"],["--help"]];var BI=class extends Re{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};BI.paths=[["-v"],["--version"]];var W={};ft(W,{Array:()=>jU,Boolean:()=>YU,Counter:()=>qU,Proxy:()=>JU,Rest:()=>WU,String:()=>zU,applyValidator:()=>gp,cleanValidationError:()=>CI,formatError:()=>up,isOptionSymbol:()=>cp,makeCommandOption:()=>rn,rerouteArguments:()=>No});function jU(t,e,r){let[i,n]=No(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i!="undefined"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function YU(t,e,r){let[i,n]=No(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function qU(t,e,r){let[i,n]=No(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function JU(t={}){return rn({definition(e,r){var i;e.addProxy({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){return i.positionals.map(({value:n})=>n)}})}function WU(t={}){return rn({definition(e,r){var i;e.addRest({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){let n=o=>{let a=i.positionals[o];return a.extra===Xn||a.extra===!1&&oo)}})}function MCe(t,e,r){let[i,n]=No(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?gp(g!=null?g:c,f,n.validator):f}})}function KCe(t={}){let{required:e=!0}=t;return rn({definition(r,i){var n;r.addPositional({name:(n=t.name)!==null&&n!==void 0?n:i,required:t.required})},transformer(r,i,n){var s;for(let o=0;ou8,areIdentsEqual:()=>hd,areLocatorsEqual:()=>pd,areVirtualPackagesEquivalent:()=>cSe,bindDescriptor:()=>ASe,bindLocator:()=>lSe,convertDescriptorToLocator:()=>gw,convertLocatorToDescriptor:()=>ax,convertPackageToLocator:()=>aSe,convertToIdent:()=>oSe,convertToManifestRange:()=>fSe,copyPackage:()=>ud,devirtualizeDescriptor:()=>gd,devirtualizeLocator:()=>fd,getIdentVendorPath:()=>gx,isPackageCompatible:()=>dw,isVirtualDescriptor:()=>nl,isVirtualLocator:()=>Xo,makeDescriptor:()=>rr,makeIdent:()=>Vo,makeLocator:()=>cn,makeRange:()=>hw,parseDescriptor:()=>sl,parseFileStyleRange:()=>uSe,parseIdent:()=>An,parseLocator:()=>Kc,parseRange:()=>Gg,prettyDependent:()=>WS,prettyDescriptor:()=>sr,prettyIdent:()=>gi,prettyLocator:()=>Bt,prettyLocatorNoColors:()=>ux,prettyRange:()=>uw,prettyReference:()=>Cd,prettyResolution:()=>zS,prettyWorkspace:()=>md,renamePackage:()=>cd,slugifyIdent:()=>cx,slugifyLocator:()=>jg,sortDescriptors:()=>Yg,stringifyDescriptor:()=>Pn,stringifyIdent:()=>Ot,stringifyLocator:()=>Ds,tryParseDescriptor:()=>dd,tryParseIdent:()=>g8,tryParseLocator:()=>fw,virtualizeDescriptor:()=>Ax,virtualizePackage:()=>lx});var Hg=ge(require("querystring")),A8=ge(ri()),l8=ge(QY());var Ae={};ft(Ae,{LogLevel:()=>fo,Style:()=>Dc,Type:()=>Ye,addLogFilterSupport:()=>sd,applyColor:()=>is,applyHyperlink:()=>Lg,applyStyle:()=>Ty,json:()=>Rc,jsonOrPretty:()=>G0e,mark:()=>$S,pretty:()=>et,prettyField:()=>Jo,prettyList:()=>ZS,supportsColor:()=>Ny,supportsHyperlinks:()=>VS,tuple:()=>go});var id=ge(BS()),nd=ge(pc());var vJ=ge(rs()),SJ=ge(fJ());var ve={};ft(ve,{AsyncActions:()=>IJ,BufferStream:()=>EJ,CachingStrategy:()=>Pc,DefaultStream:()=>yJ,allSettledSafe:()=>uo,assertNever:()=>GS,bufferStream:()=>Fg,buildIgnorePattern:()=>M0e,convertMapsToIndexableObjects:()=>Fy,dynamicRequire:()=>Ng,escapeRegExp:()=>F0e,getArrayWithDefault:()=>Pg,getFactoryWithDefault:()=>Ja,getMapWithDefault:()=>Dg,getSetWithDefault:()=>xc,isIndexableObject:()=>jS,isPathLike:()=>K0e,isTaggedYarnVersion:()=>R0e,mapAndFilter:()=>qo,mapAndFind:()=>ed,overrideType:()=>HS,parseBoolean:()=>rd,parseOptionalBoolean:()=>QJ,prettifyAsyncErrors:()=>Rg,prettifySyncErrors:()=>YS,releaseAfterUseAsync:()=>L0e,replaceEnvVariables:()=>qS,sortMap:()=>xn,tryParseOptionalBoolean:()=>JS,validateEnum:()=>N0e});var hJ=ge(rs()),pJ=ge(lg()),dJ=ge(ri()),US=ge(require("stream"));function R0e(t){return!!(dJ.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function F0e(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function HS(t){}function GS(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function N0e(t,e){let r=Object.values(t);if(!r.includes(e))throw new Pe(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(i=>JSON.stringify(i)).join(", ")})`);return e}function qo(t,e){let r=[];for(let i of t){let n=e(i);n!==CJ&&r.push(n)}return r}var CJ=Symbol();qo.skip=CJ;function ed(t,e){for(let r of t){let i=e(r);if(i!==mJ)return i}}var mJ=Symbol();ed.skip=mJ;function jS(t){return typeof t=="object"&&t!==null}async function uo(t){let e=await Promise.allSettled(t),r=[];for(let i of e){if(i.status==="rejected")throw i.reason;r.push(i.value)}return r}function Fy(t){if(t instanceof Map&&(t=Object.fromEntries(t)),jS(t))for(let e of Object.keys(t)){let r=t[e];jS(r)&&(t[e]=Fy(r))}return t}function Ja(t,e,r){let i=t.get(e);return typeof i=="undefined"&&t.set(e,i=r()),i}function Pg(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=[]),r}function xc(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Set),r}function Dg(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Map),r}async function L0e(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function Rg(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function YS(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Fg(t){return await new Promise((e,r)=>{let i=[];t.on("error",n=>{r(n)}),t.on("data",n=>{i.push(n)}),t.on("end",()=>{e(Buffer.concat(i))})})}var EJ=class extends US.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),i(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}};function T0e(){let t,e;return{promise:new Promise((i,n)=>{t=i,e=n}),resolve:t,reject:e}}var IJ=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,pJ.default)(e)}set(e,r){let i=this.deferred.get(e);typeof i=="undefined"&&this.deferred.set(e,i=T0e());let n=this.limit(()=>r());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,r){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>r(i))}async wait(){await Promise.all(this.promises.values())}},yJ=class extends US.Transform{constructor(e=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=e}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,i(null,e)}_flush(e){this.active&&this.ifEmpty.length>0?e(null,this.ifEmpty):e(null)}},td=eval("require");function wJ(t){return td(H.fromPortablePath(t))}function BJ(path){let physicalPath=H.fromPortablePath(path),currentCacheEntry=td.cache[physicalPath];delete td.cache[physicalPath];let result;try{result=wJ(physicalPath);let freshCacheEntry=td.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{td.cache[physicalPath]=currentCacheEntry}return result}var bJ=new Map;function O0e(t){let e=bJ.get(t),r=K.statSync(t);if((e==null?void 0:e.mtime)===r.mtimeMs)return e.instance;let i=BJ(t);return bJ.set(t,{mtime:r.mtimeMs,instance:i}),i}var Pc;(function(i){i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node"})(Pc||(Pc={}));function Ng(t,{cachingStrategy:e=2}={}){switch(e){case 0:return BJ(t);case 1:return O0e(t);case 2:return wJ(t);default:throw new Error("Unsupported caching strategy")}}function xn(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(r.map(o=>s(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function M0e(t){return t.length===0?null:t.map(e=>`(${hJ.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function qS(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new Pe(`Environment variable not found (${n})`)})}function rd(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function QJ(t){return typeof t=="undefined"?t:rd(t)}function JS(t){try{return QJ(t)}catch{return null}}function K0e(t){return!!(H.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}var Qt;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(Qt||(Qt={}));var yi;(function(i){i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta"})(yi||(yi={}));var qi;(function(i){i.Inactive="inactive",i.Redundant="redundant",i.Active="active"})(qi||(qi={}));var Ye={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},Dc;(function(e){e[e.BOLD=2]="BOLD"})(Dc||(Dc={}));var _S=nd.default.GITHUB_ACTIONS?{level:2}:id.default.supportsColor?{level:id.default.supportsColor.level}:{level:0},Ny=_S.level!==0,VS=Ny&&!nd.default.GITHUB_ACTIONS&&!nd.default.CIRCLE&&!nd.default.GITLAB,XS=new id.default.Instance(_S),U0e=new Map([[Ye.NO_HINT,null],[Ye.NULL,["#a853b5",129]],[Ye.SCOPE,["#d75f00",166]],[Ye.NAME,["#d7875f",173]],[Ye.RANGE,["#00afaf",37]],[Ye.REFERENCE,["#87afff",111]],[Ye.NUMBER,["#ffd700",220]],[Ye.PATH,["#d75fd7",170]],[Ye.URL,["#d75fd7",170]],[Ye.ADDED,["#5faf00",70]],[Ye.REMOVED,["#d70000",160]],[Ye.CODE,["#87afff",111]],[Ye.SIZE,["#ffd700",220]]]),Rs=t=>t,Ly={[Ye.NUMBER]:Rs({pretty:(t,e)=>`${e}`,json:t=>t}),[Ye.IDENT]:Rs({pretty:(t,e)=>gi(t,e),json:t=>Ot(t)}),[Ye.LOCATOR]:Rs({pretty:(t,e)=>Bt(t,e),json:t=>Ds(t)}),[Ye.DESCRIPTOR]:Rs({pretty:(t,e)=>sr(t,e),json:t=>Pn(t)}),[Ye.RESOLUTION]:Rs({pretty:(t,{descriptor:e,locator:r})=>zS(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:Pn(t),locator:e!==null?Ds(e):null})}),[Ye.DEPENDENT]:Rs({pretty:(t,{locator:e,descriptor:r})=>WS(t,e,r),json:({locator:t,descriptor:e})=>({locator:Ds(t),descriptor:Pn(e)})}),[Ye.PACKAGE_EXTENSION]:Rs({pretty:(t,e)=>{switch(e.type){case yi.Dependency:return`${gi(t,e.parentDescriptor)} \u27A4 ${is(t,"dependencies",Ye.CODE)} \u27A4 ${gi(t,e.descriptor)}`;case yi.PeerDependency:return`${gi(t,e.parentDescriptor)} \u27A4 ${is(t,"peerDependencies",Ye.CODE)} \u27A4 ${gi(t,e.descriptor)}`;case yi.PeerDependencyMeta:return`${gi(t,e.parentDescriptor)} \u27A4 ${is(t,"peerDependenciesMeta",Ye.CODE)} \u27A4 ${gi(t,An(e.selector))} \u27A4 ${is(t,e.key,Ye.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case yi.Dependency:return`${Ot(t.parentDescriptor)} > ${Ot(t.descriptor)}`;case yi.PeerDependency:return`${Ot(t.parentDescriptor)} >> ${Ot(t.descriptor)}`;case yi.PeerDependencyMeta:return`${Ot(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Ye.SETTING]:Rs({pretty:(t,e)=>(t.get(e),Lg(t,is(t,e,Ye.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Ye.DURATION]:Rs({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),i=Math.ceil((e-r*60*1e3)/1e3);return i===0?`${r}m`:`${r}m ${i}s`}else{let r=Math.floor(e/1e3),i=e-r*1e3;return i===0?`${r}s`:`${r}s ${i}ms`}},json:t=>t}),[Ye.SIZE]:Rs({pretty:(t,e)=>{let r=["KB","MB","GB","TB"],i=r.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return is(t,`${s} ${r[i-1]}`,Ye.NUMBER)},json:t=>t}),[Ye.PATH]:Rs({pretty:(t,e)=>is(t,H.fromPortablePath(e),Ye.PATH),json:t=>H.fromPortablePath(t)}),[Ye.MARKDOWN]:Rs({pretty:(t,{text:e,format:r,paragraphs:i})=>Ui(e,{format:r,paragraphs:i}),json:({text:t})=>t})};function go(t,e){return[e,t]}function Ty(t,e,r){return t.get("enableColors")&&r&2&&(e=id.default.bold(e)),e}function is(t,e,r){if(!t.get("enableColors"))return e;let i=U0e.get(r);if(i===null)return e;let n=typeof i=="undefined"?r:_S.level>=3?i[0]:i[1],s=typeof n=="number"?XS.ansi256(n):n.startsWith("#")?XS.hex(n):XS[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var H0e=!!process.env.KONSOLE_VERSION;function Lg(t,e,r){return t.get("enableHyperlinks")?H0e?`]8;;${r}\\${e}]8;;\\`:`]8;;${r}\x07${e}]8;;\x07`:e}function et(t,e,r){if(e===null)return is(t,"null",Ye.NULL);if(Object.prototype.hasOwnProperty.call(Ly,r))return Ly[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return is(t,e,r)}function ZS(t,e,r,{separator:i=", "}={}){return[...e].map(n=>et(t,n,r)).join(i)}function Rc(t,e){if(t===null)return null;if(Object.prototype.hasOwnProperty.call(Ly,e))return HS(e),Ly[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function G0e(t,e,[r,i]){return t?Rc(r,i):et(e,r,i)}function $S(t){return{Check:is(t,"\u2713","green"),Cross:is(t,"\u2718","red"),Question:is(t,"?","cyan")}}function Jo(t,{label:e,value:[r,i]}){return`${et(t,e,Ye.CODE)}: ${et(t,r,i)}`}var fo;(function(n){n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard"})(fo||(fo={}));function sd(t,{configuration:e}){let r=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of r){let f=g.get("level");if(typeof f=="undefined")continue;let h=g.get("code");typeof h!="undefined"&&i.set(h,f);let p=g.get("text");typeof p!="undefined"&&n.set(p,f);let m=g.get("pattern");typeof m!="undefined"&&s.push([vJ.default.matcher(m,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===$.UNNAMED)return h;let p=n.size>0||s.length>0?(0,SJ.default)(f):f;if(n.size>0){let m=n.get(p);if(typeof m!="undefined")return m!=null?m:h}if(s.length>0){for(let[m,y]of s)if(m(p))return y!=null?y:h}if(i.size>0){let m=i.get(qA(g));if(typeof m!="undefined")return m!=null?m:h}return h},a=t.reportInfo,l=t.reportWarning,c=t.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case fo.Info:a.call(g,f,h);break;case fo.Warning:l.call(g,f!=null?f:$.UNNAMED,h);break;case fo.Error:c.call(g,f!=null?f:$.UNNAMED,h);break}};t.reportInfo=function(...g){return u(this,...g,fo.Info)},t.reportWarning=function(...g){return u(this,...g,fo.Warning)},t.reportError=function(...g){return u(this,...g,fo.Error)}}var Dn={};ft(Dn,{checksumFile:()=>lw,checksumPattern:()=>cw,makeHash:()=>ln});var Aw=ge(require("crypto")),ox=ge(sx());function ln(...t){let e=(0,Aw.createHash)("sha512"),r="";for(let i of t)typeof i=="string"?r+=i:i&&(r&&(e.update(r),r=""),e.update(i));return r&&e.update(r),e.digest("hex")}async function lw(t,{baseFs:e,algorithm:r}={baseFs:K,algorithm:"sha512"}){let i=await e.openPromise(t,"r");try{let n=65536,s=Buffer.allocUnsafeSlow(n),o=(0,Aw.createHash)(r),a=0;for(;(a=await e.readPromise(i,s,0,n))!==0;)o.update(a===n?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function cw(t,{cwd:e}){let i=(await(0,ox.default)(t,{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,ox.default)([t,...i],{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=H.toPortablePath(a),u=await K.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await K.readlinkPromise(c))):u.isFile()&&l.push(await K.readFilePromise(c)),l.join("\0")})),o=(0,Aw.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var ld="virtual:",nSe=5,c8=/(os|cpu|libc)=([a-z0-9_-]+)/,sSe=(0,l8.makeParser)(c8);function Vo(t,e){if(t==null?void 0:t.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:ln(t,e),scope:t,name:e}}function rr(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:ln(t.identHash,e),range:e}}function cn(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:ln(t.identHash,e),reference:e}}function oSe(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function gw(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function ax(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function aSe(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function cd(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function ud(t){return cd(t,t)}function Ax(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return rr(t,`virtual:${e}#${t.range}`)}function lx(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return cd(t,cn(t,`virtual:${e}#${t.reference}`))}function nl(t){return t.range.startsWith(ld)}function Xo(t){return t.reference.startsWith(ld)}function gd(t){if(!nl(t))throw new Error("Not a virtual descriptor");return rr(t,t.range.replace(/^[^#]*#/,""))}function fd(t){if(!Xo(t))throw new Error("Not a virtual descriptor");return cn(t,t.reference.replace(/^[^#]*#/,""))}function ASe(t,e){return t.range.includes("::")?t:rr(t,`${t.range}::${Hg.default.stringify(e)}`)}function lSe(t,e){return t.reference.includes("::")?t:cn(t,`${t.reference}::${Hg.default.stringify(e)}`)}function hd(t,e){return t.identHash===e.identHash}function u8(t,e){return t.descriptorHash===e.descriptorHash}function pd(t,e){return t.locatorHash===e.locatorHash}function cSe(t,e){if(!Xo(t))throw new Error("Invalid package type");if(!Xo(e))throw new Error("Invalid package type");if(!hd(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let i=e.dependencies.get(r.identHash);if(!i||!u8(r,i))return!1}return!0}function An(t){let e=g8(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function g8(t){let e=t.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,r,i]=e,n=typeof r!="undefined"?r:null;return Vo(n,i)}function sl(t,e=!1){let r=dd(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function dd(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid range (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return rr(Vo(o,n),a)}function Kc(t,e=!1){let r=fw(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function fw(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid reference (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return cn(Vo(o,n),a)}function Gg(t,e){let r=t.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(r===null)throw new Error(`Invalid range (${t})`);let i=typeof r[1]!="undefined"?r[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof r[3]!="undefined"?decodeURIComponent(r[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${t})`);let s=typeof r[3]!="undefined"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),o=(e==null?void 0:e.parseSelector)?Hg.default.parse(s):s,a=typeof r[4]!="undefined"?Hg.default.parse(r[4]):null;return{protocol:i,source:n,selector:o,params:a}}function uSe(t,{protocol:e}){let{selector:r,params:i}=Gg(t,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Kc(i.locator,!0),path:r}}function f8(t){return t=t.replace(/%/g,"%25"),t=t.replace(/:/g,"%3A"),t=t.replace(/#/g,"%23"),t}function gSe(t){return t===null?!1:Object.entries(t).length>0}function hw({protocol:t,source:e,selector:r,params:i}){let n="";return t!==null&&(n+=`${t}`),e!==null&&(n+=`${f8(e)}#`),n+=f8(r),gSe(i)&&(n+=`::${Hg.default.stringify(i)}`),n}function fSe(t){let{params:e,protocol:r,source:i,selector:n}=Gg(t);for(let s in e)s.startsWith("__")&&delete e[s];return hw({protocol:r,source:i,params:e,selector:n})}function Ot(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function Pn(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function Ds(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function cx(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function jg(t){let{protocol:e,selector:r}=Gg(t.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=A8.default.valid(r),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=t.scope?`${cx(t)}-${s}-${t.locatorHash.slice(0,o)}`:`${cx(t)}-${s}-${t.locatorHash.slice(0,o)}`;return Jr(a)}function gi(t,e){return e.scope?`${et(t,`@${e.scope}/`,Ye.SCOPE)}${et(t,e.name,Ye.NAME)}`:`${et(t,e.name,Ye.NAME)}`}function pw(t){if(t.startsWith(ld)){let e=pw(t.substring(t.indexOf("#")+1)),r=t.substring(ld.length,ld.length+nSe);return`${e} [${r}]`}else return t.replace(/\?.*/,"?[...]")}function uw(t,e){return`${et(t,pw(e),Ye.RANGE)}`}function sr(t,e){return`${gi(t,e)}${et(t,"@",Ye.RANGE)}${uw(t,e.range)}`}function Cd(t,e){return`${et(t,pw(e),Ye.REFERENCE)}`}function Bt(t,e){return`${gi(t,e)}${et(t,"@",Ye.REFERENCE)}${Cd(t,e.reference)}`}function ux(t){return`${Ot(t)}@${pw(t.reference)}`}function Yg(t){return xn(t,[e=>Ot(e),e=>e.range])}function md(t,e){return gi(t,e.locator)}function zS(t,e,r){let i=nl(e)?gd(e):e;return r===null?`${sr(t,i)} \u2192 ${$S(t).Cross}`:i.identHash===r.identHash?`${sr(t,i)} \u2192 ${Cd(t,r.reference)}`:`${sr(t,i)} \u2192 ${Bt(t,r)}`}function WS(t,e,r){return r===null?`${Bt(t,e)}`:`${Bt(t,e)} (via ${uw(t,r.range)})`}function gx(t){return`node_modules/${Ot(t)}`}function dw(t,e){return t.conditions?sSe(t.conditions,r=>{let[,i,n]=r.match(c8),s=e[i];return s?s.includes(n):!0}):!0}var h8={hooks:{reduceDependency:(t,e,r,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Ot(r)||o.from&&o.from.description&&o.from.description!==r.reference||o.descriptor.fullName!==Ot(t)||o.descriptor.description&&o.descriptor.description!==t.range)continue;return n.bindDescriptor(rr(t,a),e.topLevelWorkspace.anchoredLocator,s)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let i=md(t.configuration,r);await t.configuration.triggerHook(n=>n.validateWorkspace,r,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let i of r.errors)e.reportWarning($.INVALID_MANIFEST,i.message)}}};var m8=ge(ri());var Ed=class{supportsDescriptor(e,r){return!!(e.range.startsWith(Ed.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(Ed.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.getWorkspaceByCwd(e.reference.slice(Ed.protocol.length));return ie(N({},e),{version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:Qt.SOFT,conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin})}},oi=Ed;oi.protocol="workspace:";var Wt={};ft(Wt,{SemVer:()=>p8.SemVer,clean:()=>pSe,satisfiesWithPrereleases:()=>Uc,validRange:()=>ho});var Cw=ge(ri()),p8=ge(ri()),d8=new Map;function Uc(t,e,r=!1){if(!t)return!1;let i=`${e}${r}`,n=d8.get(i);if(typeof n=="undefined")try{n=new Cw.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{d8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Cw.default.SemVer(t,n)}catch(o){return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var C8=new Map;function ho(t){if(t.indexOf(":")!==-1)return null;let e=C8.get(t);if(typeof e!="undefined")return e;try{e=new Cw.default.Range(t)}catch{e=null}return C8.set(t,e),e}var hSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function pSe(t){let e=hSe.exec(t);return e?e[1]:null}var ol=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new ar}={}){let i=x.join(e,"package.json");try{return await ol.fromFile(i,{baseFs:r})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:r}={}){let i=await ol.tryFind(e,{baseFs:r});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:r=new ar}={}){let i=new ol;return await i.loadFile(e,{baseFs:r}),i}static fromText(e){let r=new ol;return r.loadFromText(e),r}static isManifestFieldCompatible(e,r){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,r===s.slice(1))return!1}else if(i=!1,s===r)return!0;return n&&i}loadFromText(e){let r;try{r=JSON.parse(I8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(r),this.indent=E8(e)}async loadFile(e,{baseFs:r=new ar}){let i=await r.readFilePromise(e,"utf8"),n;try{n=JSON.parse(I8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=E8(i)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=An(e.name)}catch(s){i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=un(e.main):this.main=null,typeof e.module=="string"?this.module=un(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=un(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(un(s),typeof o=="string"?un(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,un(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=An(s);this.bin.set(a.name,un(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(oi.protocol)&&!ho(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=rr(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=sl(s),l=this.ensureDependencyMeta(a),c=mw(o.built,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=mw(o.optional,{yamlCompatibilityMode:r});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=mw(o.unplugged,{yamlCompatibilityMode:r});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=sl(s),l=this.ensurePeerDependencyMeta(a),c=mw(o.optional,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:iI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=un(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=un(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=un(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(un(s),typeof o=="string"?un(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,un(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,un(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(un(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(g){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l);let c=rr(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(fx("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(fx("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(fx("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return ol.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return ol.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!m8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Pn(e)}'`);let r=Ot(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(r);n||this.dependenciesMeta.set(r,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Pn(e)}'`);let r=Ot(e),i=this.peerDependenciesMeta.get(r);return i||this.peerDependenciesMeta.set(r,i={}),i}setRawField(e,r,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=r;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=r,a=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Ot(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces=ie(N({},this.raw.workspaces),{packages:this.workspaceDefinitions.map(({pattern:o})=>o)}):e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Ot(o)),l=!1;if(r&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Yg(i).map(o=>({[Ot(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Yg(n).map(o=>({[Ot(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Yg(this.devDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Yg(this.peerDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of xn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of xn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Pn(rr(An(o),l)):o,g=N({},c);r&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...xn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[nI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},At=ol;At.fileName="package.json",At.allDependencies=["dependencies","devDependencies","peerDependencies"],At.hardDependencies=["dependencies","devDependencies"];function E8(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function I8(t){return t.charCodeAt(0)===65279?t.slice(1):t}function un(t){return t.replace(/\\/g,"/")}function mw(t,{yamlCompatibilityMode:e}){return e?JS(t):typeof t=="undefined"||typeof t=="boolean"?t:null}function y8(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let i=r%2==0?"":"!",n=e.slice(r);return`${i}${t}=${n}`}function fx(t,e){return e.length===1?y8(t,e[0]):`(${e.map(r=>y8(t,r)).join(" | ")})`}var Z8=ge(X8()),$8=ge(require("stream")),e4=ge(require("string_decoder"));var Ake=15,ct=class extends Error{constructor(e,r,i){super(r);this.reportExtra=i;this.reportCode=e}};function lke(t){return typeof t.reportCode!="undefined"}var Ji=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let r=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),r=l,c()},o=(l=0)=>{s(r+1)},a=async function*(){for(;r{r=o}),n=(0,Z8.default)(o=>{let a=r;i=new Promise(l=>{r=l}),e=o,a()},1e3/Ake),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,r){let i=this.reportProgress(e);try{return await r(e)}finally{i.stop()}}startProgressSync(e,r){let i=this.reportProgress(e);try{return r(e)}finally{i.stop()}}reportInfoOnce(e,r,i){var s;let n=i&&i.key?i.key:r;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,r),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,r,i){var s;let n=i&&i.key?i.key:r;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,r),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,r,i){var s;let n=i&&i.key?i.key:r;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,r),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){lke(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce($.EXCEPTION,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new $8.PassThrough,i=new e4.StringDecoder,n="";return r.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),r}};var wd=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));return i||null}getFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));if(!i)throw new ct($.FETCHER_NOT_FOUND,`${Bt(r.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Bd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,r,i)}async getSatisfying(e,r,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,r,i)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));return i||null}getResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));if(!i)throw new Error(`${sr(r.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));return i||null}getResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));if(!i)throw new Error(`${Bt(r.project.configuration,e)} isn't supported by any available resolver`);return i}};var t4=ge(ri());var qg=/^(?!v)[a-z0-9._-]+$/i,dx=class{supportsDescriptor(e,r){return!!(ho(e.range)||qg.test(e.range))}supportsLocator(e,r){return!!(t4.default.valid(e.reference)||qg.test(e.reference))}shouldPersistResolution(e,r){return r.resolver.shouldPersistResolution(this.forwardLocator(e,r),r)}bindDescriptor(e,r,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),r,i)}getResolutionDependencies(e,r){return r.resolver.getResolutionDependencies(this.forwardDescriptor(e,r),r)}async getCandidates(e,r,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),r,i)}async getSatisfying(e,r,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),r,i)}async resolve(e,r){let i=await r.resolver.resolve(this.forwardLocator(e,r),r);return cd(i,e)}forwardDescriptor(e,r){return rr(e,`${r.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,r){return cn(e,`${r.project.configuration.get("defaultProtocol")}${e.reference}`)}};var bd=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n);return r.fetcher.getLocalPath(s,r)}async fetch(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n),o=await r.fetcher.fetch(s,r);return await this.ensureVirtualLink(e,o,r)}getLocatorFilename(e){return jg(e)}async ensureVirtualLink(e,r,i){let n=r.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Wr.makeVirtualPath(s,o,n),l=new Da(a,{baseFs:r.packageFs,pathUtils:x});return ie(N({},r),{packageFs:l})}};var Jg=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Jg.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Jg.protocol)}supportsDescriptor(e,r){return Jg.isVirtualDescriptor(e)}supportsLocator(e,r){return Jg.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},Ew=Jg;Ew.protocol="virtual:";var Qd=class{supports(e){return!!e.reference.startsWith(oi.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let i=this.getWorkspace(e,r).cwd;return{packageFs:new _t(i),prefixPath:Ke.dot,localPath:i}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(oi.protocol.length))}};var Cx={};ft(Cx,{getDefaultGlobalFolder:()=>Ex,getHomeFolder:()=>vd,isFolderInside:()=>Ix});var mx=ge(require("os"));function Ex(){if(process.platform==="win32"){let t=H.toPortablePath(process.env.LOCALAPPDATA||H.join((0,mx.homedir)(),"AppData","Local"));return x.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=H.toPortablePath(process.env.XDG_DATA_HOME);return x.resolve(t,"yarn/berry")}return x.resolve(vd(),".yarn/berry")}function vd(){return H.toPortablePath((0,mx.homedir)()||"/usr/local/share")}function Ix(t,e){let r=x.relative(e,t);return r&&!r.startsWith("..")&&!x.isAbsolute(r)}var Wg={};ft(Wg,{builtinModules:()=>yx,getArchitecture:()=>Sd,getArchitectureName:()=>uke,getArchitectureSet:()=>wx});var r4=ge(require("module"));function yx(){return new Set(r4.default.builtinModules||Object.keys(process.binding("natives")))}function cke(){var i,n,s,o;if(process.platform==="win32")return null;let e=(s=((n=(i=process.report)==null?void 0:i.getReport())!=null?n:{}).sharedObjects)!=null?s:[],r=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(o=ed(e,a=>{let l=a.match(r);if(!l)return ed.skip;if(l[1])return"glibc";if(l[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?o:null}var Iw,yw;function Sd(){return Iw=Iw!=null?Iw:{os:process.platform,cpu:process.arch,libc:cke()}}function uke(t=Sd()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function wx(){let t=Sd();return yw=yw!=null?yw:{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}var gke=new Set(["binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir"]),Bw="yarn_",bx=".yarnrc.yml",Qx="yarn.lock",fke="********",ye;(function(u){u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP"})(ye||(ye={}));var Di=Ye,vx={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:ye.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:ye.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:ye.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:ye.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:ye.STRING,default:null},globalFolder:{description:"Folder where all system-global files are stored",type:ye.ABSOLUTE_PATH,default:Ex()},cacheFolder:{description:"Folder where the cache files must be written",type:ye.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:ye.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:nc},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:ye.ABSOLUTE_PATH,default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:ye.STRING,default:Qx},installStatePath:{description:"Path of the file where the install state will be persisted",type:ye.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:ye.STRING,default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:ye.STRING,default:bw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:ye.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:ye.BOOLEAN,default:Ny,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:ye.BOOLEAN,default:VS,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:ye.BOOLEAN,default:ww.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:ye.BOOLEAN,default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:ye.BOOLEAN,default:!ww.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:ye.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:ye.BOOLEAN,default:ww.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:ye.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:ye.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:ye.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:ye.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:ye.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:ye.BOOLEAN,default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:ye.SHAPE,properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:ye.STRING,isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:ye.STRING,isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:ye.STRING,isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:ye.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ye.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ye.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ye.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:ye.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:ye.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:ye.NUMBER,default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:ye.NUMBER,default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:ye.MAP,valueDefinition:{description:"",type:ye.SHAPE,properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:ye.ABSOLUTE_PATH,default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ye.BOOLEAN,default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ye.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ye.STRING,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:ye.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:ye.ABSOLUTE_PATH,default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:ye.ABSOLUTE_PATH,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:ye.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:ye.ABSOLUTE_PATH,default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:ye.BOOLEAN,default:!0},logFilters:{description:"Overrides for log levels",type:ye.SHAPE,isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:ye.STRING,default:void 0},text:{description:"Code of the texts covered by this override",type:ye.STRING,default:void 0},pattern:{description:"Code of the patterns covered by this override",type:ye.STRING,default:void 0},level:{description:"Log level override, set to null to remove override",type:ye.STRING,values:Object.values(fo),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:ye.BOOLEAN,default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:ye.NUMBER,default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:ye.STRING,default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:ye.BOOLEAN,default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:ye.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:ye.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:ye.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:ye.MAP,valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:ye.SHAPE,properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:ye.MAP,valueDefinition:{description:"A range",type:ye.STRING}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:ye.MAP,valueDefinition:{description:"A semver range",type:ye.STRING}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:ye.MAP,valueDefinition:{description:"The peerDependency meta",type:ye.SHAPE,properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:ye.BOOLEAN,default:!1}}}}}}}};function kx(t,e,r,i,n){if(i.isArray||i.type===ye.ANY&&Array.isArray(r))return Array.isArray(r)?r.map((s,o)=>Sx(t,`${e}[${o}]`,s,i,n)):String(r).split(/,/).map(s=>Sx(t,e,s,i,n));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return Sx(t,e,r,i,n)}function Sx(t,e,r,i,n){var a;switch(i.type){case ye.ANY:return r;case ye.SHAPE:return hke(t,e,r,i,n);case ye.MAP:return pke(t,e,r,i,n)}if(r===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)==null?void 0:a.includes(r))return r;let o=(()=>{if(i.type===ye.BOOLEAN&&typeof r!="string")return rd(r);if(typeof r!="string")throw new Error(`Expected value (${r}) to be a string`);let l=qS(r,{env:process.env});switch(i.type){case ye.ABSOLUTE_PATH:return x.resolve(n,H.toPortablePath(l));case ye.LOCATOR_LOOSE:return Kc(l,!1);case ye.NUMBER:return parseInt(l);case ye.LOCATOR:return Kc(l);case ye.BOOLEAN:return rd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function hke(t,e,r,i,n){if(typeof r!="object"||Array.isArray(r))throw new Pe(`Object configuration settings "${e}" must be an object`);let s=xx(t,i,{ignoreArrays:!0});if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=`${e}.${o}`;if(!i.properties[o])throw new Pe(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,kx(t,l,a,i.properties[o],n))}return s}function pke(t,e,r,i,n){let s=new Map;if(typeof r!="object"||Array.isArray(r))throw new Pe(`Map configuration settings "${e}" must be an object`);if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,kx(t,c,a,u,n))}return s}function xx(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case ye.SHAPE:{if(e.isArray&&!r)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,xx(t,s));return i}break;case ye.MAP:return e.isArray&&!r?[]:new Map;case ye.ABSOLUTE_PATH:return e.default===null?null:t.projectCwd===null?x.isAbsolute(e.default)?x.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>x.resolve(t.projectCwd,i)):x.resolve(t.projectCwd,e.default);default:return e.default}}function Qw(t,e,r){if(e.type===ye.SECRET&&typeof t=="string"&&r.hideSecrets)return fke;if(e.type===ye.ABSOLUTE_PATH&&typeof t=="string"&&r.getNativePaths)return H.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let i=[];for(let n of t)i.push(Qw(n,e,r));return i}if(e.type===ye.MAP&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries())i.set(n,Qw(s,e.valueDefinition,r));return i}if(e.type===ye.SHAPE&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries()){let o=e.properties[n];i.set(n,Qw(s,o,r))}return i}return t}function dke(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),!!e.startsWith(Bw)&&(e=(0,i4.default)(e.slice(Bw.length)),t[e]=r);return t}function bw(){let t=`${Bw}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return bx}var al;(function(i){i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE"})(al||(al={}));var Za=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,r,i){let n=new Za(e);typeof r!="undefined"&&!(r instanceof Map)&&(n.projectCwd=r),n.importSettings(vx);let s=typeof i!="undefined"?i:r instanceof Map?r:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,r,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=dke();delete a.rcFilename;let l=await Za.findRcFiles(e),c=await Za.findHomeRcFile();if(c){let b=l.find(S=>S.path===c.path);b?b.strict=!1:l.push(ie(N({},c),{strict:!1}))}let u=({ignoreCwd:b,yarnPath:S,ignorePath:k,lockfileFilename:T})=>({ignoreCwd:b,yarnPath:S,ignorePath:k,lockfileFilename:T}),g=j=>{var Z=j,{ignoreCwd:b,yarnPath:S,ignorePath:k,lockfileFilename:T}=Z,Y=Tr(Z,["ignoreCwd","yarnPath","ignorePath","lockfileFilename"]);return Y},f=new Za(e);f.importSettings(u(vx)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:b,cwd:S,data:k}of l)f.useWithSource(b,u(k),S,{strict:!1});if(s){let b=f.get("yarnPath"),S=f.get("ignorePath");if(b!==null&&!S)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await Za.findProjectCwd(e,h);break;case 1:p=await Za.findProjectCwd(e,null);break;case 2:K.existsSync(x.join(e,"package.json"))?p=x.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(vx));let m=new Map([["@@core",h8]]),y=b=>"default"in b?b.default:b;if(r!==null){for(let T of r.plugins.keys())m.set(T,y(r.modules.get(T)));let b=new Map;for(let T of yx())b.set(T,()=>Ng(T));for(let[T,Y]of r.modules)b.set(T,()=>Y);let S=new Set,k=async(T,Y)=>{let{factory:j,name:Z}=Ng(T);if(S.has(Z))return;let J=new Map(b),re=A=>{if(J.has(A))return J.get(A)();throw new Pe(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},ee=await Rg(async()=>y(await j(re)),A=>`${A} (when initializing ${Z}, defined in ${Y})`);b.set(Z,()=>ee),S.add(Z),m.set(Z,ee)};if(a.plugins)for(let T of a.plugins.split(";")){let Y=x.resolve(e,H.toPortablePath(T));await k(Y,"")}for(let{path:T,cwd:Y,data:j}of l)if(!!o&&!!Array.isArray(j.plugins))for(let Z of j.plugins){let J=typeof Z!="string"?Z.path:Z,re=x.resolve(Y,H.toPortablePath(J));await k(re,T)}}for(let[b,S]of m)f.activatePlugin(b,S);f.useWithSource("",g(a),e,{strict:n});for(let{path:b,cwd:S,data:k,strict:T}of l)f.useWithSource(b,g(k),S,{strict:T!=null?T:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let r=bw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=x.join(s,r);if(K.existsSync(o)){let a=await K.readFilePromise(o,"utf8"),l;try{l=Qi(a)}catch(c){let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new Pe(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=x.dirname(s)}return i}static async findHomeRcFile(){let e=bw(),r=vd(),i=x.join(r,e);if(K.existsSync(i)){let n=await K.readFilePromise(i,"utf8"),s=Qi(n);return{path:i,cwd:r,data:s}}return null}static async findProjectCwd(e,r){let i=null,n=e,s=null;for(;n!==s;){if(s=n,K.existsSync(x.join(s,"package.json"))&&(i=s),r!==null){if(K.existsSync(x.join(s,r))){i=s;break}}else if(i!==null)break;n=x.dirname(s)}return i}static async updateConfiguration(e,r){let i=bw(),n=x.join(e,i),s=K.existsSync(n)?Qi(await K.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof r=="function"){try{a=r(s)}catch{a=r({})}if(a===s)return}else{a=s;for(let l of Object.keys(r)){let c=s[l],u=r[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await K.changeFilePromise(n,La(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let r=vd();return await Za.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration!="undefined"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,i]of Object.entries(e))if(i!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,i),this.values.set(r,xx(this,i))}}useWithSource(e,r,i,n){try{this.use(e,r,i,n)}catch(s){throw s.message+=` (in ${et(this,e,Ye.PATH)})`,s}}use(e,r,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(r)]){if(typeof r[o]=="undefined"||o==="plugins"||e===""&&gke.has(o))continue;if(o==="rcFilename")throw new Pe(`The rcFilename settings can only be set via ${`${Bw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new Pe(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type===ye.MAP||l.isArray&&l.concatenateValues))continue;let c;try{c=kx(this,o,r[o],l,i)}catch(u){throw u.message+=` in ${et(this,e,Ye.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type===ye.MAP){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s=="undefined")throw new Pe(`Couldn't find a configuration settings named "${e}"`);return Qw(n,s,{hideSecrets:r,getNativePaths:i})}getSubprocessStreams(e,{header:r,prefix:i,report:n}){let s,o,a=K.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${et(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${et(this,"STDERR","red")}`);s=new Bx.PassThrough,s.pipe(l),s.pipe(a),o=new Bx.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof r!="undefined"&&s.write(`${r} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let i of r.resolvers||[])e.push(new i);return new Bd([new Ew,new oi,new dx,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let i of r.fetchers||[])e.push(new i);return new wd([new bd,new Qd,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let i of r.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=Sd(),r=this.get("supportedArchitectures"),i=r.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=r.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=r.get("libc");return s!==null&&(s=qo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:qo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,r=(i,n,{userProvided:s=!1}={})=>{if(!ho(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new At;o.load(n,{yamlCompatibilityMode:!0});let a=Pg(e,i.identHash),l=[];a.push([i.range,l]);let c={status:qi.Inactive,userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push(ie(N({},c),{type:yi.Dependency,descriptor:u}));for(let u of o.peerDependencies.values())l.push(ie(N({},c),{type:yi.PeerDependency,descriptor:u}));for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push(ie(N({},c),{type:yi.PeerDependencyMeta,selector:u,key:f,value:h}))};await this.triggerHook(i=>i.registerPackageExtensions,this,r);for(let[i,n]of this.get("packageExtensions"))r(sl(i,!0),Fy(n),{userProvided:!0})}normalizePackage(e){let r=ud(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i!="undefined"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Uc(s,o))for(let l of a)switch(l.status===qi.Inactive&&(l.status=qi.Redundant),l.type){case yi.Dependency:typeof r.dependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,r.dependencies.set(l.descriptor.identHash,l.descriptor));break;case yi.PeerDependency:typeof r.peerDependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,r.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case yi.PeerDependencyMeta:{let c=r.peerDependenciesMeta.get(l.selector);(typeof c=="undefined"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status=qi.Active,Ja(r.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:GS(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of r.peerDependenciesMeta.keys()){let o=An(s);r.peerDependencies.has(o.identHash)||r.peerDependencies.set(o.identHash,rr(o,"*"))}for(let s of r.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=Vo("types",o),l=Ot(a);r.peerDependencies.has(a.identHash)||r.peerDependenciesMeta.has(l)||(r.peerDependencies.set(a.identHash,rr(a,"*")),r.peerDependenciesMeta.set(l,{optional:!0}))}return r.dependencies=new Map(xn(r.dependencies,([,s])=>Pn(s))),r.peerDependencies=new Map(xn(r.peerDependencies,([,s])=>Pn(s))),r}getLimit(e){return Ja(this.limits,e,()=>(0,n4.default)(this.get(e)))}async triggerHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...r)}}async triggerMultipleHooks(e,r){for(let i of r)await this.triggerHook(e,...i)}async reduceHook(e,r,...i){let n=r;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...r);if(typeof o!="undefined")return o}return null}},we=Za;we.telemetry=null;var ns;(function(i){i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always"})(ns||(ns={}));var vw=class extends ct{constructor({fileName:e,code:r,signal:i}){let n=we.create(x.cwd()),s=et(n,e,Ye.PATH);super($.EXCEPTION,`Child ${s} reported an error`,o=>{Cke(r,i,{configuration:n,report:o})});this.code=Dx(r,i)}},Rx=class extends vw{constructor({fileName:e,code:r,signal:i,stdout:n,stderr:s}){super({fileName:e,code:r,signal:i});this.stdout=n,this.stderr=s}};function jc(t){return t!==null&&typeof t.fd=="number"}var Yc=new Set;function Fx(){}function Nx(){for(let t of Yc)t.kill()}async function $o(t,e,{cwd:r,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":jc(s)&&(c[0]=s),jc(o)&&(c[1]=o),jc(a)&&(c[2]=a);let u=(0,Px.default)(t,e,{cwd:H.fromPortablePath(r),env:ie(N({},i),{PWD:H.fromPortablePath(r)}),stdio:c});Yc.add(u),Yc.size===1&&(process.on("SIGINT",Fx),process.on("SIGTERM",Nx)),!jc(s)&&s!==null&&s.pipe(u.stdin),jc(o)||u.stdout.pipe(o,{end:!1}),jc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))jc(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Yc.delete(u),Yc.size===0&&(process.off("SIGINT",Fx),process.off("SIGTERM",Nx)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,m)=>{Yc.delete(u),Yc.size===0&&(process.off("SIGINT",Fx),process.off("SIGTERM",Nx)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:Dx(p,m)}):h(new vw({fileName:t,code:p,signal:m}))})})}async function mke(t,e,{cwd:r,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=H.fromPortablePath(r);typeof i.PWD!="undefined"&&(i=ie(N({},i),{PWD:c}));let u=(0,Px.default)(t,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",h=>{let p=we.create(r),m=et(p,t,Ye.PATH);f(new ct($.EXCEPTION,`Process ${m} failed to spawn`,y=>{y.reportError($.EXCEPTION,` ${Jo(p,{label:"Thrown Error",value:go(Ye.NO_HINT,h.message)})}`)}))}),u.on("close",(h,p)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:Dx(h,p),stdout:m,stderr:y}):f(new Rx({fileName:t,code:h,signal:p,stdout:m,stderr:y}))})})}var Eke=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function Dx(t,e){let r=Eke.get(e);return typeof r!="undefined"?128+r:t!=null?t:1}function Cke(t,e,{configuration:r,report:i}){i.reportError($.EXCEPTION,` ${Jo(r,t!==null?{label:"Exit Code",value:go(Ye.NUMBER,t)}:{label:"Exit Signal",value:go(Ye.CODE,e)})}`)}var ir={};ft(ir,{Method:()=>fl,RequestError:()=>j5.RequestError,del:()=>DDe,get:()=>xDe,getNetworkSettings:()=>W5,post:()=>$P,put:()=>PDe,request:()=>Md});var U5=ge(Yw()),H5=ge(require("https")),G5=ge(require("http")),VP=ge(rs()),XP=ge(K5()),qw=ge(require("url"));var j5=ge(Yw()),Y5=new Map,q5=new Map,QDe=new G5.Agent({keepAlive:!0}),vDe=new H5.Agent({keepAlive:!0});function J5(t){let e=new qw.URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),{proxy:r}}async function ZP(t){return Ja(q5,t,()=>K.readFilePromise(t).then(e=>(q5.set(t,e),e)))}function SDe({statusCode:t,statusMessage:e},r){let i=et(r,t,Ye.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Lg(r,`${i}${e?` (${e})`:""}`,n)}async function Jw(t,{configuration:e,customErrorMessage:r}){var i,n;try{return await t}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=r==null?void 0:r(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof U5.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${et(e,"httpTimeout",Ye.SETTING)})`);let a=new ct($.NETWORK_ERROR,o,l=>{s.response&&l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Response Code",value:go(Ye.NO_HINT,SDe(s.response,e))})}`),s.request&&(l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request Method",value:go(Ye.NO_HINT,s.request.options.method)})}`),l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request URL",value:go(Ye.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request Redirects",value:go(Ye.NO_HINT,ZS(e,s.request.redirects,Ye.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request Retry Count",value:go(Ye.NO_HINT,`${et(e,s.request.retryCount,Ye.NUMBER)} (can be increased via ${et(e,"httpRetry",Ye.SETTING)})`)})}`)});throw a.originalError=s,a}}function W5(t,e){let r=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof t=="string"?new qw.URL(t):t;for(let[o,a]of r)if(VP.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]=="undefined"&&(i[l]=c)}for(let o of n)typeof i[o]=="undefined"&&(i[o]=e.configuration.get(o));return i}var fl;(function(n){n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE"})(fl||(fl={}));async function Md(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o=fl.GET}){let a=async()=>await kDe(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await r.reduceHook(c=>c.wrapNetworkRequest,a,{target:t,body:e,configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function xDe(t,n){var s=n,{configuration:e,jsonResponse:r}=s,i=Tr(s,["configuration","jsonResponse"]);let o=Ja(Y5,t,()=>Jw(Md(t,null,N({configuration:e},i)),{configuration:e}).then(a=>(Y5.set(t,a.body),a.body)));return Buffer.isBuffer(o)===!1&&(o=await o),r?JSON.parse(o.toString()):o}async function PDe(t,e,n){var s=n,{customErrorMessage:r}=s,i=Tr(s,["customErrorMessage"]);return(await Jw(Md(t,e,ie(N({},i),{method:fl.PUT})),i)).body}async function $P(t,e,n){var s=n,{customErrorMessage:r}=s,i=Tr(s,["customErrorMessage"]);return(await Jw(Md(t,e,ie(N({},i),{method:fl.POST})),i)).body}async function DDe(t,i){var n=i,{customErrorMessage:e}=n,r=Tr(n,["customErrorMessage"]);return(await Jw(Md(t,null,ie(N({},r),{method:fl.DELETE})),r)).body}async function kDe(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o=fl.GET}){let a=typeof t=="string"?new qw.URL(t):t,l=W5(a,{configuration:r});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!VP.default.isMatch(a.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?XP.default.httpOverHttp(J5(l.httpProxy)):QDe,https:l.httpsProxy?XP.default.httpsOverHttp(J5(l.httpsProxy)):vDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=r.get("httpTimeout"),f=r.get("httpRetry"),h=r.get("enableStrictSsl"),p=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:b}=await Promise.resolve().then(()=>ge(Yw())),S=p?await ZP(p):void 0,k=m?await ZP(m):void 0,T=y?await ZP(y):void 0,Y=b.extend(N({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:S,certificate:k,key:T}},u));return r.getLimit("networkConcurrency")(()=>Y(a))}var Zt={};ft(Zt,{PackageManager:()=>hn,detectPackageManager:()=>o6,executePackageAccessibleBinary:()=>u6,executePackageScript:()=>AB,executePackageShellcode:()=>hD,executeWorkspaceAccessibleBinary:()=>VRe,executeWorkspaceLifecycleScript:()=>c6,executeWorkspaceScript:()=>l6,getPackageAccessibleBinaries:()=>lB,getWorkspaceAccessibleBinaries:()=>A6,hasPackageScript:()=>WRe,hasWorkspaceScript:()=>fD,makeScriptEnv:()=>qd,maybeExecuteWorkspaceLifecycleScript:()=>_Re,prepareExternalProject:()=>JRe});var Kd={};ft(Kd,{getLibzipPromise:()=>fn,getLibzipSync:()=>Z5});var X5=ge(_5());var hl=["number","number"],rD;(function(L){L[L.ZIP_ER_OK=0]="ZIP_ER_OK",L[L.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",L[L.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",L[L.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",L[L.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",L[L.ZIP_ER_READ=5]="ZIP_ER_READ",L[L.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",L[L.ZIP_ER_CRC=7]="ZIP_ER_CRC",L[L.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",L[L.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",L[L.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",L[L.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",L[L.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",L[L.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",L[L.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",L[L.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",L[L.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",L[L.ZIP_ER_EOF=17]="ZIP_ER_EOF",L[L.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",L[L.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",L[L.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",L[L.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",L[L.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",L[L.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",L[L.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",L[L.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",L[L.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",L[L.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",L[L.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",L[L.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",L[L.ZIP_ER_TELL=30]="ZIP_ER_TELL",L[L.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA"})(rD||(rD={}));var V5=t=>({get HEAP8(){return t.HEAP8},get HEAPU8(){return t.HEAPU8},errors:rD,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint16S:t._malloc(2),uint32S:t._malloc(4),uint64S:t._malloc(8),malloc:t._malloc,free:t._free,getValue:t.getValue,open:t.cwrap("zip_open","number",["string","number","number"]),openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),stat:t.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...hl,"number","number"]),fopen:t.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...hl,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...hl,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...hl,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...hl,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...hl,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...hl,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...hl,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"]),setMtime:t.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:t.cwrap("zipstruct_stat","number",[]),statS:t.cwrap("zipstruct_statS","number",[]),statName:t.cwrap("zipstruct_stat_name","string",["number"]),statIndex:t.cwrap("zipstruct_stat_index","number",["number"]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),error:t.cwrap("zipstruct_error","number",[]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}});var iD=null;function Z5(){return iD===null&&(iD=V5((0,X5.default)())),iD}async function fn(){return Z5()}var Hd={};ft(Hd,{ShellError:()=>Os,execute:()=>tB,globUtils:()=>zw});var c_=ge(BS()),u_=ge(require("os")),ss=ge(require("stream")),g_=ge(require("util"));var Os=class extends Error{constructor(e){super(e);this.name="ShellError"}};var zw={};ft(zw,{fastGlobOptions:()=>t_,isBraceExpansion:()=>r_,isGlobPattern:()=>RDe,match:()=>FDe,micromatchOptions:()=>Vw});var $5=ge(rw()),e_=ge(require("fs")),_w=ge(rs()),Vw={strictBrackets:!0},t_={onlyDirectories:!1,onlyFiles:!1};function RDe(t){if(!_w.default.scan(t,Vw).isGlob)return!1;try{_w.default.parse(t,Vw)}catch{return!1}return!0}function FDe(t,{cwd:e,baseFs:r}){return(0,$5.default)(t,ie(N({},t_),{cwd:H.fromPortablePath(e),fs:XE(e_.default,new Xh(r))}))}function r_(t){return _w.default.scan(t,Vw).isBrace}var i_=ge(MQ()),ta=ge(require("stream")),n_=ge(require("string_decoder")),Fn;(function(i){i[i.STDIN=0]="STDIN",i[i.STDOUT=1]="STDOUT",i[i.STDERR=2]="STDERR"})(Fn||(Fn={}));var Jc=new Set;function nD(){}function sD(){for(let t of Jc)t.kill()}function s_(t,e,r,i){return n=>{let s=n[0]instanceof ta.Transform?"pipe":n[0],o=n[1]instanceof ta.Transform?"pipe":n[1],a=n[2]instanceof ta.Transform?"pipe":n[2],l=(0,i_.default)(t,e,ie(N({},i),{stdio:[s,o,a]}));return Jc.add(l),Jc.size===1&&(process.on("SIGINT",nD),process.on("SIGTERM",sD)),n[0]instanceof ta.Transform&&n[0].pipe(l.stdin),n[1]instanceof ta.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof ta.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Jc.delete(l),Jc.size===0&&(process.off("SIGINT",nD),process.off("SIGTERM",sD)),u.code){case"ENOENT":n[2].write(`command not found: ${t} +`),c(127);break;case"EACCES":n[2].write(`permission denied: ${t} +`),c(128);break;default:n[2].write(`uncaught error: ${u.message} +`),c(1);break}}),l.on("exit",u=>{Jc.delete(l),Jc.size===0&&(process.off("SIGINT",nD),process.off("SIGTERM",sD)),c(u!==null?u:129)})})}}}function o_(t){return e=>{let r=e[0]==="pipe"?new ta.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}var Co=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},a_=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Ud=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:i,stderr:n}){let s=new Ud(null,e);return s.stdin=r,s.stdout=i,s.stderr=n,s}pipeTo(e,r=1){let i=new Ud(this,e),n=new a_;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(r&1)==1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)==2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(r.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function Xw(t,e){return Ud.start(t,e)}function A_(t,e=null){let r=new ta.PassThrough,i=new n_.StringDecoder,n="";return r.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",t(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&t(e!==null?`${e} ${s}`:s)}),r}function l_(t,{prefix:e}){return{stdout:A_(r=>t.stdout.write(`${r} +`),t.stdout.isTTY?e:null),stderr:A_(r=>t.stderr.write(`${r} +`),t.stderr.isTTY?e:null)}}var NDe=(0,g_.promisify)(setTimeout);var zi;(function(r){r[r.Readable=1]="Readable",r[r.Writable=2]="Writable"})(zi||(zi={}));function f_(t,e,r){let i=new ss.PassThrough({autoDestroy:!0});switch(t){case Fn.STDIN:(e&1)==1&&r.stdin.pipe(i,{end:!1}),(e&2)==2&&r.stdin instanceof ss.Writable&&i.pipe(r.stdin,{end:!1});break;case Fn.STDOUT:(e&1)==1&&r.stdout.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stdout,{end:!1});break;case Fn.STDERR:(e&1)==1&&r.stderr.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stderr,{end:!1});break;default:throw new Os(`Bad file descriptor: "${t}"`)}return i}function Zw(t,e={}){let r=N(N({},t),e);return r.environment=N(N({},t.environment),e.environment),r.variables=N(N({},t.variables),e.variables),r}var LDe=new Map([["cd",async([t=(0,u_.homedir)(),...e],r,i)=>{let n=x.resolve(i.cwd,H.toPortablePath(t));if(!(await r.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new Os(`cd: no such file or directory: ${t}`):o})).isDirectory())throw new Os(`cd: not a directory: ${t}`);return i.cwd=n,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${H.fromPortablePath(r.cwd)} +`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,i)=>i.exitCode=parseInt(t!=null?t:i.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} +`),0)],["sleep",async([t],e,r)=>{if(typeof t=="undefined")throw new Os("sleep: missing operand");let i=Number(t);if(Number.isNaN(i))throw new Os(`sleep: invalid time interval '${t}'`);return await NDe(1e3*i,0)}],["__ysh_run_procedure",async(t,e,r)=>{let i=r.procedures[t[0]];return await Xw(i,{stdin:new Co(r.stdin),stdout:new Co(r.stdout),stderr:new Co(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let i=r.stdin,n=r.stdout,s=r.stderr,o=[],a=[],l=[],c=0;for(;t[c]!=="--";){let g=t[c++],{type:f,fd:h}=JSON.parse(g),p=S=>{switch(h){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},m=S=>{switch(h){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},y=Number(t[c++]),b=c+y;for(let S=c;Se.baseFs.createReadStream(x.resolve(r.cwd,H.toPortablePath(t[S]))));break;case"<<<":p(()=>{let k=new ss.PassThrough;return process.nextTick(()=>{k.write(`${t[S]} +`),k.end()}),k});break;case"<&":p(()=>f_(Number(t[S]),1,r));break;case">":case">>":{let k=x.resolve(r.cwd,H.toPortablePath(t[S]));m(k==="/dev/null"?new ss.Writable({autoDestroy:!0,emitClose:!0,write(T,Y,j){setImmediate(j)}}):e.baseFs.createWriteStream(k,f===">>"?{flags:"a"}:void 0))}break;case">&":m(f_(Number(t[S]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new ss.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new ss.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new ss.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await Xw(Gd(t.slice(c+1),e,r),{stdin:new Co(i),stdout:new Co(n),stderr:new Co(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function TDe(t,e,r){let i=[],n=new ss.PassThrough;return n.on("data",s=>i.push(s)),await $w(t,e,Zw(r,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function h_(t,e,r){let i=t.map(async s=>{let o=await nA(s.args,e,r);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function eB(t){return t.match(/[^ \r\n\t]+/g)||[]}async function p_(t,e,r,i,n=i){switch(t.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(t.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=eB(s);for(let a=0;a=0&&st+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)};async function jd(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let i=[];await p_(ie(N({},t),{quoted:!0}),e,r,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?jd({type:"variable",name:i.join(" ")},e,r):jd({type:"number",value:n},e,r)}else return ODe[t.type](await jd(t.left,e,r),await jd(t.right,e,r))}async function nA(t,e,r){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p=="undefined"&&i.set(h,p=[]),p.push(f)};for(let u of t){let g=!1;switch(u.type){case"redirection":{let f=await nA(u.args,e,r);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await TDe(f.shell,e,r);if(f.quoted)o(h);else{let p=eB(h);for(let m=0;m0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function Gd(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let i=H.fromPortablePath(r.cwd),n=r.environment;typeof n.PWD!="undefined"&&(n=ie(N({},n),{PWD:i}));let[s,...o]=t;if(s==="command")return s_(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a=="undefined")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return o_(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=r;r.stdin=l,r.stdout=c,r.stderr=u;try{return await a(o,e,r)}finally{r.stdin=g,r.stdout=f,r.stderr=h}})}function MDe(t,e,r){return i=>{let n=new ss.PassThrough,s=$w(t,e,Zw(r,{stdin:n}));return{stdin:n,promise:s}}}function KDe(t,e,r){return i=>{let n=new ss.PassThrough,s=$w(t,e,r);return{stdin:n,promise:s}}}function d_(t,e,r,i){if(e.length===0)return t;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures=N({},i.procedures),i.procedures[n]=t,Gd([...e,"__ysh_run_procedure",n],r,i)}}async function C_(t,e,r){let i=t,n=null,s=null;for(;i;){let o=i.then?N({},r):r,a;switch(i.type){case"command":{let l=await nA(i.args,e,r),c=await h_(i.envs,e,r);a=i.envs.length?Gd(l,e,Zw(o,{environment:c})):Gd(l,e,o)}break;case"subshell":{let l=await nA(i.args,e,r),c=MDe(i.subshell,e,o);a=d_(c,l,e,o)}break;case"group":{let l=await nA(i.args,e,r),c=KDe(i.group,e,o);a=d_(c,l,e,o)}break;case"envs":{let l=await h_(i.envs,e,r);o.environment=N(N({},o.environment),l),a=Gd(["true"],e,o)}break}if(typeof a=="undefined")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=Xw(a,{stdin:new Co(o.stdin),stdout:new Co(o.stdout),stderr:new Co(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,Fn.STDOUT);break;case"|&":s=s.pipeTo(a,Fn.STDOUT|Fn.STDERR);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function UDe(t,e,r,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return c_.default.hex(a)}if(i){let s=r.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=l_(r,{prefix:l});return r.backgroundJobs.push(C_(t,e,Zw(r,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${l}, '${o(Xu(t))}' has ended +`)})),0}return await C_(t,e,r)}async function HDe(t,e,r,{background:i=!1}={}){let n,s=a=>{n=a,r.variables["?"]=String(a)},o=async a=>{try{return await UDe(a.chain,e,r,{background:i&&typeof a.then=="undefined"})}catch(l){if(!(l instanceof Os))throw l;return r.stderr.write(`${l.message} +`),1}};for(s(await o(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":n===0&&s(await o(t.then.line));break;case"||":n!==0&&s(await o(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return n}async function $w(t,e,r){let i=r.backgroundJobs;r.backgroundJobs=[];let n=0;for(let{command:s,type:o}of t){if(n=await HDe(s,e,r,{background:o==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(n)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=i,n}function m_(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>Yd(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>Yd(e));case"arithmetic":return oD(t.arithmetic);case"shell":return aD(t.shell);default:return!1}}function Yd(t){switch(t.type){case"redirection":return t.args.some(e=>Yd(e));case"argument":return t.segments.some(e=>m_(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function oD(t){switch(t.type){case"variable":return m_(t);case"number":return!1;default:return oD(t.left)||oD(t.right)}}function aD(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let i;switch(r.type){case"subshell":i=aD(r.subshell);break;case"command":i=r.envs.some(n=>n.args.some(s=>Yd(s)))||r.args.some(n=>Yd(n));break}if(i)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function tB(t,e=[],{baseFs:r=new ar,builtins:i={},cwd:n=H.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=zw}={}){let g={};for(let[p,m]of Object.entries(s))typeof m!="undefined"&&(g[p]=m);let f=new Map(LDe);for(let[p,m]of Object.entries(i))f.set(p,m);o===null&&(o=new ss.PassThrough,o.end());let h=$E(t,u);if(!aD(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let m=p.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await $w(h,{args:e,baseFs:r,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var n6=ge(rB()),s6=ge(lg()),Wc=ge(require("stream"));var $_=ge(Z_()),sB=ge(pc());var e6=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],t6=80,KRe=new Set([$.FETCH_NOT_CACHED,$.UNUSED_CACHE_ENTRY]),URe=5,oB=sB.default.GITHUB_ACTIONS?{start:t=>`::group::${t} +`,end:t=>`::endgroup:: +`}:sB.default.TRAVIS?{start:t=>`travis_fold:start:${t} +`,end:t=>`travis_fold:end:${t} +`}:sB.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r${t} +`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r`}:null,r6=new Date,HRe=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,GRe=t=>t,aB=GRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),jRe=HRe&&Object.keys(aB).find(t=>{let e=aB[t];return!(e.date&&(e.date[0]!==r6.getDate()||e.date[1]!==r6.getMonth()+1))})||"default";function i6(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let n=qA(t===null?0:t);return!r&&t===null?et(e,n,"grey"):n}function gD(t,{configuration:e,json:r}){let i=i6(t,{configuration:e,json:r});if(!i||t===null||t===$.UNNAMED)return i;let n=$[t],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return Lg(e,i,s)}var Je=class extends Ji{constructor({configuration:e,stdout:r,json:i=!1,includeFooter:n=!0,includeLogs:s=!i,includeInfos:o=s,includeWarnings:a=s,forgettableBufferSize:l=URe,forgettableNames:c=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(sd(this,{configuration:e}),this.configuration=e,this.forgettableBufferSize=l,this.forgettableNames=new Set([...c,...KRe]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=a,this.json=i,this.stdout=r,e.get("enableProgressBars")&&!i&&r.isTTY&&r.columns>22){let u=e.get("progressBarStyle")||jRe;if(!Object.prototype.hasOwnProperty.call(aB,u))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=aB[u];let g="\u27A4 YN0000: \u250C ".length,f=Math.max(0,Math.min(r.columns-g,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*f/80)}}static async start(e,r){let i=new this(e),n=process.emitWarning;process.emitWarning=(s,o)=>{if(typeof s!="string"){let l=s;s=l.message,o=o!=null?o:l.name}let a=typeof o!="undefined"?`${o}: ${s}`:s;i.reportWarning($.UNNAMED,a)};try{await r(i)}catch(s){i.reportExceptionOnce(s)}finally{await i.finalize(),process.emitWarning=n}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,r){this.lastCacheMiss=e,this.cacheMissCount+=1,typeof r!="undefined"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo($.FETCH_NOT_CACHED,r)}startSectionSync({reportHeader:e,reportFooter:r,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(r==null||r(a-o))}}async startSectionPromise({reportHeader:e,reportFooter:r,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return await n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(r==null||r(a-o))}}startTimerImpl(e,r,i){let n=typeof r=="function"?{}:r;return{cb:typeof r=="function"?r:i,reportHeader:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,oB!==null&&!this.json&&this.includeInfos&&this.stdout.write(oB.start(e))},reportFooter:o=>{this.indent-=1,oB!==null&&!this.json&&this.includeInfos&&this.stdout.write(oB.end(e)),this.configuration.get("enableTimers")&&o>200?this.reportInfo(null,`\u2514 Completed in ${et(this.configuration,o,Ye.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:n.skipIfEmpty}}startTimerSync(e,r,i){let o=this.startTimerImpl(e,r,i),{cb:n}=o,s=Tr(o,["cb"]);return this.startSectionSync(s,n)}async startTimerPromise(e,r,i){let o=this.startTimerImpl(e,r,i),{cb:n}=o,s=Tr(o,["cb"]);return this.startSectionPromise(s,n)}async startCacheReport(e){let r=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(i){throw this.reportExceptionOnce(i),i}finally{r!==null&&this.reportCacheChanges(r)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,r){if(!this.includeInfos)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"",s=`${et(this.configuration,"\u27A4","blueBright")} ${n}${this.formatIndent()}${r}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(s),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(s,{truncate:!0});else this.writeLineWithForgettableReset(s)}reportWarning(e,r){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${et(this.configuration,"\u27A4","yellowBright")} ${n}${this.formatIndent()}${r}`)}reportError(e,r){this.errorCount+=1,this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${et(this.configuration,"\u27A4","redBright")} ${n}${this.formatIndent()}${r}`,{truncate:!1})}reportProgress(e){if(this.progressStyle===null)return ie(N({},Promise.resolve()),{stop:()=>{}});if(e.hasProgress&&e.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let r=!1,i=Promise.resolve().then(async()=>{let s={progress:e.hasProgress?0:void 0,title:e.hasTitle?"":void 0};this.progress.set(e,{definition:s,lastScaledSize:e.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:o,title:a}of e)r||s.progress===o&&s.title===a||(s.progress=o,s.title=a,this.refreshProgress());n()}),n=()=>{r||(r=!0,this.progress.delete(e),this.refreshProgress({delta:1}))};return ie(N({},i),{stop:n})}reportJson(e){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)}async finalize(){if(!this.includeFooter)return;let e="";this.errorCount>0?e="Failed with errors":this.warningCount>0?e="Done with warnings":e="Done";let r=et(this.configuration,Date.now()-this.startTime,Ye.DURATION),i=this.configuration.get("enableTimers")?`${e} in ${r}`:e;this.errorCount>0?this.reportError($.UNNAMED,i):this.warningCount>0?this.reportWarning($.UNNAMED,i):this.reportInfo($.UNNAMED,i)}writeLine(e,{truncate:r}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(e,{truncate:r})} +`),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:r}={}){this.forgettableLines=[],this.writeLine(e,{truncate:r})}writeLines(e,{truncate:r}={}){this.clearProgress({delta:e.length});for(let i of e)this.stdout.write(`${this.truncate(i,{truncate:r})} +`);this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:r}){let i=this.cacheHitCount-e,n=this.cacheMissCount-r;if(i===0&&n===0)return;let s="";this.cacheHitCount>1?s+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?s+=" - one package was already cached":s+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?s+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(s+=`, one had to be fetched (${Bt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?s+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(s+=` - one package had to be fetched (${Bt(this.configuration,this.lastCacheMiss)})`),this.reportInfo($.FETCH_NOT_CACHED,s)}commit(){let e=this.uncommitted;this.uncommitted=new Set;for(let r of e)r.committed=!0,r.action()}clearProgress({delta:e=0,clear:r=!1}){this.progressStyle!==null&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||r)&&this.stdout.write(""))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let e=Date.now();e-this.progressTime>t6&&(this.progressFrame=(this.progressFrame+1)%e6.length,this.progressTime=e);let r=e6[this.progressFrame];for(let i of this.progress.values()){let n="";if(typeof i.lastScaledSize!="undefined"){let l=this.progressStyle.chars[0].repeat(i.lastScaledSize),c=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-i.lastScaledSize);n=` ${l}${c}`}let s=this.formatName(null),o=s?`${s}: `:"",a=i.definition.title?` ${i.definition.title}`:"";this.stdout.write(`${et(this.configuration,"\u27A4","blueBright")} ${o}${r}${n}${a} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},t6)}refreshProgress({delta:e=0,force:r=!1}={}){let i=!1,n=!1;if(r||this.progress.size===0)i=!0;else for(let s of this.progress.values()){let o=typeof s.definition.progress!="undefined"?Math.trunc(this.progressMaxScaledSize*s.definition.progress):void 0,a=s.lastScaledSize;s.lastScaledSize=o;let l=s.lastTitle;if(s.lastTitle=s.definition.title,o!==a||(n=l!==s.definition.title)){i=!0;break}}i&&(this.clearProgress({delta:e,clear:n}),this.writeProgress())}truncate(e,{truncate:r}={}){return this.progressStyle===null&&(r=!1),typeof r=="undefined"&&(r=this.configuration.get("preferTruncatedLines")),r&&(e=(0,$_.default)(e,0,this.stdout.columns-1)),e}formatName(e){return i6(e,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(e){return gD(e,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Kr="3.2.1";var hn;(function(n){n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm"})(hn||(hn={}));async function sA(t,e,r,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await K.writeFilePromise(x.format({dir:t,name:e,ext:".cmd"}),n)}await K.writeFilePromise(x.join(t,e),`#!/bin/sh +exec "${r}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" +`,{mode:493})}async function o6(t){let e=await At.tryFind(t);if(e==null?void 0:e.packageManager){let i=fw(e.packageManager);if(i==null?void 0:i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManager:Number(s)===1?hn.Yarn1:hn.Yarn2,reason:n};case"npm":return{packageManager:hn.Npm,reason:n};case"pnpm":return{packageManager:hn.Pnpm,reason:n}}}}let r;try{r=await K.readFilePromise(x.join(t,Pt.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:hn.Yarn2,reason:'"__metadata" key found in yarn.lock'}:{packageManager:hn.Yarn1,reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:K.existsSync(x.join(t,"package-lock.json"))?{packageManager:hn.Npm,reason:`found npm's "package-lock.json" lockfile`}:K.existsSync(x.join(t,"pnpm-lock.yaml"))?{packageManager:hn.Pnpm,reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function qd({project:t,locator:e,binFolder:r,lifecycleScript:i}){var l,c;let n={};for(let[u,g]of Object.entries(process.env))typeof g!="undefined"&&(n[u.toLowerCase()!=="path"?u:"PATH"]=g);let s=H.fromPortablePath(r);n.BERRY_BIN_FOLDER=H.fromPortablePath(s);let o=process.env.COREPACK_ROOT?H.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([sA(r,"node",process.execPath),...Kr!==null?[sA(r,"run",process.execPath,[o,"run"]),sA(r,"yarn",process.execPath,[o]),sA(r,"yarnpkg",process.execPath,[o]),sA(r,"node-gyp",process.execPath,[o,"run","--top-level","node-gyp"])]:[]]),t&&(n.INIT_CWD=H.fromPortablePath(t.configuration.startingCwd),n.PROJECT_CWD=H.fromPortablePath(t.cwd)),n.PATH=n.PATH?`${s}${H.delimiter}${n.PATH}`:`${s}`,n.npm_execpath=`${s}${H.sep}yarn`,n.npm_node_execpath=`${s}${H.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let u=t.tryWorkspaceByLocator(e),g=u?(l=u.manifest.version)!=null?l:"":(c=t.storedPackages.get(e.locatorHash).version)!=null?c:"";n.npm_package_name=Ot(e),n.npm_package_version=g}let a=Kr!==null?`yarn/${Kr}`:`yarn/${Ng("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${a} npm/? node/${process.version} ${process.platform} ${process.arch}`,i&&(n.npm_lifecycle_event=i),t&&await t.configuration.triggerHook(u=>u.setupScriptEnvironment,t,n,async(u,g,f)=>await sA(r,Jr(u),g,f)),n}var YRe=2,qRe=(0,s6.default)(YRe);async function JRe(t,e,{configuration:r,report:i,workspace:n=null,locator:s=null}){await qRe(async()=>{await K.mktempPromise(async o=>{let a=x.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=r.getSubprocessStreams(a,{prefix:H.fromPortablePath(t),report:i}),g=s&&Xo(s)?fd(s):s,f=g?Ds(g):"an external project";c.write(`Packing ${f} from sources +`);let h=await o6(t),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} + +`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn + +`),p=hn.Yarn2),await K.mktempPromise(async m=>{let y=await qd({binFolder:m}),S=new Map([[hn.Yarn1,async()=>{let T=n!==null?["workspace",n]:[],Y=await $o("yarn",["set","version","classic","--only-if-needed"],{cwd:t,env:y,stdin:l,stdout:c,stderr:u,end:ns.ErrorCode});if(Y.code!==0)return Y.code;await K.appendFilePromise(x.join(t,".npmignore"),`/.yarn +`),c.write(` +`),delete y.NODE_ENV;let j=await $o("yarn",["install"],{cwd:t,env:y,stdin:l,stdout:c,stderr:u,end:ns.ErrorCode});if(j.code!==0)return j.code;c.write(` +`);let Z=await $o("yarn",[...T,"pack","--filename",H.fromPortablePath(e)],{cwd:t,env:y,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],[hn.Yarn2,async()=>{let T=n!==null?["workspace",n]:[];y.YARN_ENABLE_INLINE_BUILDS="1";let Y=x.join(t,Pt.lockfile);await K.existsPromise(Y)||await K.writeFilePromise(Y,"");let j=await $o("yarn",[...T,"pack","--install-if-needed","--filename",H.fromPortablePath(e)],{cwd:t,env:y,stdin:l,stdout:c,stderr:u});return j.code!==0?j.code:0}],[hn.Npm,async()=>{if(n!==null){let A=new Wc.PassThrough,oe=Fg(A);A.pipe(c,{end:!1});let le=await $o("npm",["--version"],{cwd:t,env:y,stdin:l,stdout:A,stderr:u,end:ns.Never});if(A.end(),le.code!==0)return c.end(),u.end(),le.code;let X=(await oe).toString().trim();if(!Uc(X,">=7.x")){let O=Vo(null,"npm"),L=rr(O,X),pe=rr(O,">=7.x");throw new Error(`Workspaces aren't supported by ${sr(r,L)}; please upgrade to ${sr(r,pe)} (npm has been detected as the primary package manager for ${et(r,t,Ye.PATH)})`)}}let T=n!==null?["--workspace",n]:[];delete y.npm_config_user_agent,delete y.npm_config_production,delete y.NPM_CONFIG_PRODUCTION,delete y.NODE_ENV;let Y=await $o("npm",["install"],{cwd:t,env:y,stdin:l,stdout:c,stderr:u,end:ns.ErrorCode});if(Y.code!==0)return Y.code;let j=new Wc.PassThrough,Z=Fg(j);j.pipe(c);let J=await $o("npm",["pack","--silent",...T],{cwd:t,env:y,stdin:l,stdout:j,stderr:u});if(J.code!==0)return J.code;let re=(await Z).toString().trim().replace(/^.*\n/s,""),ee=x.resolve(t,H.toPortablePath(re));return await K.renamePromise(ee,e),0}]]).get(p);if(typeof S=="undefined")throw new Error("Assertion failed: Unsupported workflow");let k=await S();if(!(k===0||typeof k=="undefined"))throw K.detachTemp(o),new ct($.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${k}, logs can be found here: ${et(r,a,Ye.PATH)})`)})})})}async function WRe(t,e,{project:r}){let i=r.tryWorkspaceByLocator(t);if(i!==null)return fD(i,e);let n=r.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${Bt(r.configuration,t)} not found in the project`);return await Es.openPromise(async s=>{let o=r.configuration,a=r.configuration.getLinkers(),l={project:r,report:new Je({stdout:new Wc.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${Bt(r.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new _t(u,{baseFs:s});return(await At.find(Ke.dot,{baseFs:g})).scripts.has(e)},{libzip:await fn()})}async function AB(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await K.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await a6(t,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f=="undefined")return 1;let h=async()=>await tB(f,r,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,h,n,t,e,{script:f,args:r,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function hD(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await K.mktempPromise(async l=>{let{env:c,cwd:u}=await a6(t,{project:n,binFolder:l,cwd:i});return await tB(e,r,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function zRe(t,{binFolder:e,cwd:r,lifecycleScript:i}){let n=await qd({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await A6(t),([s,[,o]])=>sA(e,Jr(s),process.execPath,[o]))),typeof r=="undefined"&&(r=x.dirname(await K.realpathPromise(x.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:n,cwd:r}}async function a6(t,{project:e,binFolder:r,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(t);if(s!==null)return zRe(s,{binFolder:r,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(t.locatorHash);if(!o)throw new Error(`Package for ${Bt(e.configuration,t)} not found in the project`);return await Es.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Je({stdout:new Wc.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Bt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await qd({project:e,locator:t,binFolder:r,lifecycleScript:n});await Promise.all(Array.from(await lB(t,{project:e}),([y,[,b]])=>sA(r,Jr(y),process.execPath,[b])));let h=await g.findPackageLocation(o,u),p=new _t(h,{baseFs:a}),m=await At.find(Ke.dot,{baseFs:p});return typeof i=="undefined"&&(i=h),{manifest:m,binFolder:r,env:f,cwd:i}},{libzip:await fn()})}async function l6(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o}){return await AB(t.anchoredLocator,e,r,{cwd:i,project:t.project,stdin:n,stdout:s,stderr:o})}function fD(t,e){return t.manifest.scripts.has(e)}async function c6(t,e,{cwd:r,report:i}){let{configuration:n}=t.project,s=null;await K.mktempPromise(async o=>{let a=x.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${H.fromPortablePath(t.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Bt(n,t.anchoredLocator),header:l});i.reportInfo($.LIFECYCLE_SCRIPT,`Calling the "${e}" lifecycle script`);let g=await l6(t,e,[],{cwd:r,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw K.detachTemp(o),new ct($.LIFECYCLE_SCRIPT,`${(0,n6.default)(e)} script failed (exit code ${et(n,g,Ye.NUMBER)}, logs can be found here: ${et(n,a,Ye.PATH)}); run ${et(n,`yarn ${e}`,Ye.CODE)} to investigate`)})}async function _Re(t,e,r){fD(t,e)&&await c6(t,e,r)}async function lB(t,{project:e}){let r=e.configuration,i=new Map,n=e.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${Bt(r,t)} not found in the project`);let s=new Wc.Writable,o=r.getLinkers(),a={project:e,report:new Je({configuration:r,stdout:s})},l=new Set([t.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${sr(r,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return qo.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return qo.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return qo.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===qo.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,H.fromPortablePath(x.resolve(f,p))])}return i}async function A6(t){return await lB(t.anchoredLocator,{project:t.project})}async function u6(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await lB(t,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Bt(n.configuration,t)}`);return await K.mktempPromise(async g=>{let[,f]=u,h=await qd({project:n,locator:t,binFolder:g});await Promise.all(Array.from(c,([m,[,y]])=>sA(h.BERRY_BIN_FOLDER,Jr(m),process.execPath,[y])));let p;try{p=await $o(process.execPath,[...l,f,...r],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await K.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function VRe(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await u6(t.anchoredLocator,e,r,{project:t.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var wi={};ft(wi,{convertToZip:()=>oLe,extractArchiveTo:()=>ALe,makeArchiveFromDirectory:()=>sLe});var i7=ge(require("stream")),n7=ge(X9());var Z9=ge(require("os")),$9=ge(lg()),e7=ge(require("worker_threads")),vl=Symbol("kTaskInfo"),SR=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,$9.default)(Math.max(1,(0,Z9.cpus)().length));this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let r=this.workers.pop();r?r.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new e7.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[vl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[vl].resolve(r),e[vl]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{var i;(i=e[vl])==null||i.reject(r),e[vl]=null}),e.on("exit",r=>{var i;r!==0&&((i=e[vl])==null||i.reject(new Error(`Worker exited with code ${r}`))),e[vl]=null}),e}run(e){return this.limit(()=>{var i;let r=(i=this.workers.pop())!=null?i:this.createWorker();return r.ref(),new Promise((n,s)=>{r[vl]={resolve:n,reject:s},r.postMessage(e)})})}};var s7=ge(r7());async function sLe(t,{baseFs:e=new ar,prefixPath:r=Ke.root,compressionLevel:i,inMemory:n=!1}={}){let s=await fn(),o;if(n)o=new Ai(null,{libzip:s,level:i});else{let l=await K.mktempPromise(),c=x.join(l,"archive.zip");o=new Ai(c,{create:!0,libzip:s,level:i})}let a=x.resolve(Ke.root,r);return await o.copyPromise(a,t,{baseFs:e,stableTime:!0,stableSort:!0}),o}var o7;async function oLe(t,e){let r=await K.mktempPromise(),i=x.join(r,"archive.zip");return o7||(o7=new SR((0,s7.getContent)())),await o7.run({tmpFile:i,tgz:t,opts:e}),new Ai(i,{libzip:await fn(),level:e.compressionLevel})}async function*aLe(t){let e=new n7.default.Parse,r=new i7.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{r.write(i)}),e.on("error",i=>{r.destroy(i)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let i of r){let n=i;yield n,n.resume()}}async function ALe(t,e,{stripComponents:r=0,prefixPath:i=Ke.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=r)}for await(let a of aLe(t)){if(n(a))continue;let l=x.normalize(H.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let c=l.slice(r).join("/"),u=x.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!=0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,Dr.SAFE_TIME,Dr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),e.writeFileSync(u,await Fg(a),{mode:g}),e.utimesSync(u,Dr.SAFE_TIME,Dr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,Dr.SAFE_TIME,Dr.SAFE_TIME);break}}return e}var As={};ft(As,{emitList:()=>lLe,emitTree:()=>g7,treeNodeToJson:()=>u7,treeNodeToTreeify:()=>c7});var l7=ge(A7());function c7(t,{configuration:e}){let r={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l!="undefined"&&g.push(Ty(e,l,Dc.BOLD)),typeof c!="undefined"&&g.push(et(e,c[0],c[1])),g.length===0&&g.push(Ty(e,`${a}`,Dc.BOLD));let f=g.join(": "),h=s[f]={};typeof u!="undefined"&&i(u,h)}};if(typeof t.children=="undefined")throw new Error("The root node must only contain children");return i(t.children,r),r}function u7(t){let e=r=>{var s;if(typeof r.children=="undefined"){if(typeof r.value=="undefined")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Rc(r.value[0],r.value[1])}let i=Array.isArray(r.children)?r.children.entries():Object.entries((s=r.children)!=null?s:{}),n=Array.isArray(r.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof r.value=="undefined"?n:{value:Rc(r.value[0],r.value[1]),children:n}};return e(t)}function lLe(t,{configuration:e,stdout:r,json:i}){let n=t.map(s=>({value:s}));g7({children:n},{configuration:e,stdout:r,json:i})}function g7(t,{configuration:e,stdout:r,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(t.children)?t.children.values():Object.values((o=t.children)!=null?o:{});for(let l of a)r.write(`${JSON.stringify(u7(l))} +`);return}let s=(0,l7.asTree)(c7(t,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 +$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(s)}var f7=ge(require("crypto")),PR=ge(require("fs"));var cLe=8,Nt=class{constructor(e,{configuration:r,immutable:i=r.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,f7.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=i,this.check=n;let s=r.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=r.get("compressionLevel"),a=o!==nc?`c${o}`:"";this.cacheKey=[cLe,a].join("")}}static async find(e,{immutable:r,check:i}={}){let n=new Nt(e.get("cacheFolder"),{configuration:e,immutable:r,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${jg(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let n=uLe(r).slice(0,10);return`${jg(e)}-${n}.zip`}getLocatorPath(e,r,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?x.resolve(this.cwd,this.getVersionFilename(e)):r===null||DR(r)!==this.cacheKey?null:x.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?x.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await K.existsPromise(this.cwd))throw new ct($.IMMUTABLE_CACHE,"Cache path does not exist.")}else{await K.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,".gitignore");await K.changeFilePromise(e,`/.gitignore +*.flock +*.tmp +`)}(this.mirrorCwd||!this.immutable)&&await K.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,a){var l=a,{onHit:i,onMiss:n,loader:s}=l,o=Tr(l,["onHit","onMiss","loader"]);var A;let c=this.getLocatorMirrorPath(e),u=new ar,g=()=>{let oe=new Ai(null,{libzip:Y}),le=x.join(Ke.root,gx(e));return oe.mkdirSync(le,{recursive:!0}),oe.writeJsonSync(x.join(le,Pt.manifest),{name:Ot(e),mocked:!0}),oe},f=async(oe,le=null)=>{var O;if(le===null&&((O=o.unstablePackages)==null?void 0:O.has(e.locatorHash)))return null;let X=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await lw(oe)}`:r;if(le!==null){let L=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await lw(le)}`:r;if(X!==L)throw new ct($.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(r!==null&&X!==r){let L;switch(this.check?L="throw":DR(r)!==DR(X)?L="update":L=this.configuration.get("checksumBehavior"),L){case"ignore":return r;case"update":return X;default:case"throw":throw new ct($.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return X},h=async oe=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Bt(this.configuration,e)}`);let le=await s(),X=le.getRealPath();return le.saveAndClose(),await K.chmodPromise(X,420),await f(oe,X)},p=async()=>{if(c===null||!await K.existsPromise(c)){let oe=await s(),le=oe.getRealPath();return oe.saveAndClose(),{source:"loader",path:le}}return{source:"mirror",path:c}},m=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Bt(this.configuration,e)}`);if(this.immutable)throw new ct($.IMMUTABLE_CACHE,`Cache entry required but missing for ${Bt(this.configuration,e)}`);let{path:oe,source:le}=await p(),X=await f(oe),O=this.getLocatorPath(e,X,o);if(!O)throw new Error("Assertion failed: Expected the cache path to be available");let L=[];le!=="mirror"&&c!==null&&L.push(async()=>{let Ce=`${c}${this.cacheId}`;await K.copyFilePromise(oe,Ce,PR.default.constants.COPYFILE_FICLONE),await K.chmodPromise(Ce,420),await K.renamePromise(Ce,c)}),(!o.mirrorWriteOnly||c===null)&&L.push(async()=>{let Ce=`${O}${this.cacheId}`;await K.copyFilePromise(oe,Ce,PR.default.constants.COPYFILE_FICLONE),await K.chmodPromise(Ce,420),await K.renamePromise(Ce,O)});let pe=o.mirrorWriteOnly&&c!=null?c:O;return await Promise.all(L.map(Ce=>Ce())),[!1,pe,X]},y=async()=>{let le=(async()=>{var Oe;let X=this.getLocatorPath(e,r,o),O=X!==null?await u.existsPromise(X):!1,L=!!((Oe=o.mockedPackages)==null?void 0:Oe.has(e.locatorHash))&&(!this.check||!O),pe=L||O,Ce=pe?i:n;if(Ce&&Ce(),pe){let te=null,se=X;return L||(te=this.check?await h(se):await f(se)),[L,se,te]}else return m()})();this.mutexes.set(e.locatorHash,le);try{return await le}finally{this.mutexes.delete(e.locatorHash)}};for(let oe;oe=this.mutexes.get(e.locatorHash);)await oe;let[b,S,k]=await y();this.markedFiles.add(S);let T,Y=await fn(),j=b?()=>g():()=>new Ai(S,{baseFs:u,libzip:Y,readOnly:!0}),Z=new Vh(()=>YS(()=>T=j(),oe=>`Failed to open the cache entry for ${Bt(this.configuration,e)}: ${oe}`),x),J=new Da(S,{baseFs:Z,pathUtils:x}),re=()=>{T==null||T.discardAndClose()},ee=((A=o.unstablePackages)==null?void 0:A.has(e.locatorHash))?null:k;return[J,re,ee]}};function DR(t){let e=t.indexOf("/");return e!==-1?t.slice(0,e):null}function uLe(t){let e=t.indexOf("/");return e!==-1?t.slice(e+1):t}var ls;(function(r){r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE"})(ls||(ls={}));var gA=class extends Ji{constructor({configuration:e,stdout:r,suggestInstall:i=!0}){super();this.errorCount=0;sd(this,{configuration:e}),this.configuration=e,this.stdout=r,this.suggestInstall=i}static async start(e,r){let i=new this(e);try{await r(i)}catch(n){i.reportExceptionOnce(n)}finally{await i.finalize()}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){this.errorCount+=1,this.stdout.write(`${et(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(e)}: ${r} +`)}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return ie(N({},r),{stop:i})}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(` +`),this.stdout.write(`${et(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. +`),this.suggestInstall&&this.stdout.write(`${et(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. +`))}formatNameWithHyperlink(e){return gD(e,{configuration:this.configuration,json:!1})}};var p0=ge(require("crypto")),n$=ge(V7()),d0=ge(r$()),s$=ge(lg()),o$=ge(ri()),sF=ge(require("util")),oF=ge(require("v8")),aF=ge(require("zlib"));var WKe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,i)=>`${r}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/(?:[^\\.]+)\.jfrog\.io\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>hw({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],rF=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let i=x.join(e.cwd,e.configuration.get("lockfileFilename"));if(!K.existsSync(i))return;let n=await K.readFilePromise(i,"utf8"),s=Qi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=dd(a);if(!l){r.reportWarning($.YARN_IMPORT_FAILED,`Failed to parse the string "${a}" into a proper descriptor`);continue}ho(l.range)&&(l=rr(l,`npm:${l.range}`));let{version:c,resolved:u}=s[a];if(!u)continue;let g;for(let[h,p]of WKe){let m=u.match(h);if(m){g=p(c,...m);break}}if(!g){r.reportWarning($.YARN_IMPORT_FAILED,`${sr(e.configuration,l)}: Only some patterns can be imported from legacy lockfiles (not "${u}")`);continue}let f=l;try{let h=Gg(l.range),p=dd(h.selector,!0);p&&(f=p)}catch{}o.set(l.descriptorHash,cn(f,g))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(ax(n),r,i)}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var iF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(gw(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){let n=i.project.originalPackages.get(gw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var nF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.resolver.bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){throw new ct($.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,i){throw new ct($.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new ct($.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var pi=class extends Ji{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return ie(N({},r),{stop:i})}reportJson(e){}async finalize(){}};var i$=ge(sx());var bC=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=r,this.cwd=e}async setup(){var s;this.manifest=(s=await At.tryFind(this.cwd))!=null?s:new At,this.relativeCwd=x.relative(this.project.cwd,this.cwd)||Ke.dot;let e=this.manifest.name?this.manifest.name:Vo(null,`${this.computeCandidateName()}-${ln(this.relativeCwd).substring(0,6)}`),r=this.manifest.version?this.manifest.version:"0.0.0";this.locator=cn(e,r),this.anchoredDescriptor=rr(this.locator,`${oi.protocol}${this.relativeCwd}`),this.anchoredLocator=cn(this.locator,`${oi.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o),n=await(0,i$.default)(i,{cwd:H.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort();for(let o of n){let a=x.resolve(this.cwd,H.toPortablePath(o));K.existsSync(x.join(a,"package.json"))&&this.workspacesCwds.add(a)}}accepts(e){var o;let r=e.indexOf(":"),i=r!==-1?e.slice(0,r+1):null,n=r!==-1?e.slice(r+1):e;if(i===oi.protocol&&x.normalize(n)===this.relativeCwd||i===oi.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=ho(n);return s?i===oi.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${x.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=At.hardDependencies}={}){let r=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||r.has(a)||(r.add(a),i(a))}};return i(this),r}getRecursiveWorkspaceDependents({dependencies:e=At.hardDependencies}={}){let r=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&pd(c.anchoredLocator,n.anchoredLocator)}))&&!r.has(s)&&(r.add(s),i(s))};return i(this),r}getRecursiveWorkspaceChildren(){let e=[];for(let r of this.workspacesCwds){let i=this.project.workspacesByCwd.get(r);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let r=x.join(this.cwd,At.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`;await K.changeFilePromise(r,i,{automaticNewlines:!0}),this.manifest.raw=e}};var a$=6,zKe=1,_Ke=/ *, */g,A$=/\/$/,VKe=32,XKe=(0,sF.promisify)(aF.default.gzip),ZKe=(0,sF.promisify)(aF.default.gunzip),di;(function(r){r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build"})(di||(di={}));var AF={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},l$=t=>ln(`${zKe}`,t),ze=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){var p,m,y;if(!e.projectCwd)throw new Pe(`No project found in ${r}`);let i=e.projectCwd,n=r,s=null;for(;s!==e.projectCwd;){if(s=n,K.existsSync(x.join(s,Pt.manifest))){i=s;break}n=x.dirname(s)}let o=new ze(e.projectCwd,{configuration:e});(p=we.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=we.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=we.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((b,S)=>b+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=et(e,o.cwd,Ye.PATH),u=et(e,x.relative(o.cwd,i),Ye.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new Pe(`The nearest package directory (${et(e,i,Ye.PATH)}) doesn't seem to be part of the project declared in ${et(e,o.cwd,Ye.PATH)}. + +${[g,f,h].join(` +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),r=this.configuration.get("defaultLanguageName");if(K.existsSync(e)){let n=await K.readFilePromise(e,"utf8");this.lockFileChecksum=l$(n);let s=Qi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o0;){let r=e;e=[];for(let i of r){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let r=new bC(e,{project:this});await r.setup();let i=this.workspacesByIdent.get(r.locator.identHash);if(typeof i!="undefined")throw new Error(`Duplicate workspace name ${gi(this.configuration,r.locator)}: ${H.fromPortablePath(e)} conflicts with ${H.fromPortablePath(i.cwd)}`);return this.workspaces.push(r),this.workspacesByCwd.set(e,r),this.workspacesByIdent.set(r.locator.identHash,r),r}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){x.isAbsolute(e)||(e=x.resolve(this.cwd,e)),e=x.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let i of this.workspaces)x.relative(i.cwd,e).startsWith("../")||r&&r.cwd.length>=i.cwd.length||(r=i);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r=="undefined"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${gi(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){let r=this.tryWorkspaceByIdent(e);return r===null||(nl(e)&&(e=gd(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${sr(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Xo(e)&&(e=fd(e)),r.locator.locatorHash!==e.locatorHash&&r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${Bt(this.configuration,e)})`);return r}refreshWorkspaceDependencies(){for(let e of this.workspaces){let r=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!r)throw new Error(`Assertion failed: Expected workspace ${md(this.configuration,e)} (${et(this.configuration,x.join(e.cwd,Pt.manifest),Ye.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(r.dependencies)}}forgetResolution(e){let r=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if("descriptorHash"in e){let n=this.storedResolutions.get(e.descriptorHash);r(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n!="undefined"&&!s.has(n)&&i(n)}if("locatorHash"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&r(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let r of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(r,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(r)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,i]of e.dependencies)nl(i)&&e.dependencies.set(r,gd(i))}getDependencyMeta(e,r){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Ot(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),r===null||!o$.default.valid(r))return i;for(let[a,l]of s)a!==null&&a===r&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:r=!1}={}){let i=new pi,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(r&&(await o.findPackageLocation(a,s)).replace(A$,"")!==e.replace(A$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let r=e.resolver||this.configuration.makeResolver(),i=new rF(r);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new nF(r)]:[i,r],s=new Bd([new iF(r),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],b=wx(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ji.progressViaTitle(),async re=>{let ee=async O=>{let L=await Rg(async()=>await s.resolve(O,a),Oe=>`${Bt(this.configuration,O)}: ${Oe}`);if(!pd(O,L))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Bt(this.configuration,O)} to ${Bt(this.configuration,L)})`);g.set(L.locatorHash,L);let pe=this.configuration.normalizePackage(L);for(let[Oe,te]of pe.dependencies){let se=await this.configuration.reduceHook(he=>he.reduceDependency,te,this,pe,te,{resolver:s,resolveOptions:a});if(!hd(te,se))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let be=s.bindDescriptor(se,O,a);pe.dependencies.set(Oe,be)}let Ce=uo([...pe.dependencies.values()].map(Oe=>X(Oe)));return y.push(Ce),Ce.catch(()=>{}),c.set(pe.locatorHash,pe),pe},A=async O=>{let L=f.get(O.locatorHash);if(typeof L!="undefined")return L;let pe=Promise.resolve().then(()=>ee(O));return f.set(O.locatorHash,pe),pe},oe=async(O,L)=>{let pe=await X(L);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,pe.locatorHash),pe},le=async O=>{re.setTitle(sr(this.configuration,O));let L=this.resolutionAliases.get(O.descriptorHash);if(typeof L!="undefined")return oe(O,this.storedDescriptors.get(L));let pe=s.getResolutionDependencies(O,a),Ce=new Map(await uo(pe.map(async se=>{let be=s.bindDescriptor(se,p,a),he=await X(be);return m.add(he.locatorHash),[se.descriptorHash,he]}))),te=(await Rg(async()=>await s.getCandidates(O,Ce,a),se=>`${sr(this.configuration,O)}: ${se}`))[0];if(typeof te=="undefined")throw new Error(`${sr(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,te.locatorHash),A(te)},X=O=>{let L=h.get(O.descriptorHash);if(typeof L!="undefined")return L;l.set(O.descriptorHash,O);let pe=Promise.resolve().then(()=>le(O));return h.set(O.descriptorHash,pe),pe};for(let O of this.workspaces){let L=O.anchoredDescriptor;y.push(X(L))}for(;y.length>0;){let O=[...y];y.length=0,await uo(O)}});let k=new Set(this.resolutionAliases.values()),T=new Set(c.keys()),Y=new Set,j=new Map;$Ke({project:this,report:e.report,accessibleLocators:Y,volatileDescriptors:k,optionalBuilds:T,peerRequirements:j,allDescriptors:l,allResolutions:u,allPackages:c});for(let re of m)T.delete(re);for(let re of k)l.delete(re),u.delete(re);let Z=new Set,J=new Set;for(let re of c.values())re.conditions!=null&&(!T.has(re.locatorHash)||(dw(re,S)||(dw(re,b)&&e.report.reportWarningOnce($.GHOST_ARCHITECTURE,`${Bt(this.configuration,re)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${et(this.configuration,"supportedArchitectures",Di.SETTING)} setting`),J.add(re.locatorHash)),Z.add(re.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=Y,this.conditionalLocators=Z,this.disabledLocators=J,this.originalPackages=g,this.optionalBuilds=T,this.peerRequirements=j,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:r,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,cacheOptions:s},l=Array.from(new Set(xn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return Ds(h)}])));n===di.UpdateLockfile&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=Ji.progressViaCounter(l.length);r.reportProgress(u);let g=(0,s$.default)(VKe);if(await r.startCacheReport(async()=>{await uo(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(Xo(h))return;let p;try{p=await o.fetch(h,a)}catch(m){m.message=`${Bt(this.configuration,h)}: ${m.message}`,r.reportExceptionOnce(m),c=m;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:r,fetcher:i,mode:n}){var A,oe,le;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:r},u=new Map(l.map(X=>{let O=X.makeInstaller(c),L=O.getCustomDataKey(),pe=this.installersCustomData.get(L);return typeof pe!="undefined"&&O.attachCustomData(pe),[X,O]})),g=new Map,f=new Map,h=new Map,p=new Map(await uo([...this.accessibleLocators].map(async X=>{let O=this.storedPackages.get(X);if(!O)throw new Error("Assertion failed: The locator should have been registered");return[X,await o.fetch(O,a)]}))),m=[];for(let X of this.accessibleLocators){let O=this.storedPackages.get(X);if(typeof O=="undefined")throw new Error("Assertion failed: The locator should have been registered");let L=p.get(O.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The fetch result should have been registered");let pe=[],Ce=te=>{pe.push(te)},Oe=this.tryWorkspaceByLocator(O);if(Oe!==null){let te=[],{scripts:se}=Oe.manifest;for(let he of["preinstall","install","postinstall"])se.has(he)&&te.push([ls.SCRIPT,he]);try{for(let[he,Fe]of u)if(he.supportsPackage(O,c)&&(await Fe.installPackage(O,L,{holdFetchResult:Ce})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{pe.length===0?(A=L.releaseFs)==null||A.call(L):m.push(uo(pe).catch(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}let be=x.join(L.packageFs.getRealPath(),L.prefixPath);f.set(O.locatorHash,be),!Xo(O)&&te.length>0&&h.set(O.locatorHash,{directives:te,buildLocations:[be]})}else{let te=l.find(he=>he.supportsPackage(O,c));if(!te)throw new ct($.LINKER_NOT_FOUND,`${Bt(this.configuration,O)} isn't supported by any available linker`);let se=u.get(te);if(!se)throw new Error("Assertion failed: The installer should have been registered");let be;try{be=await se.installPackage(O,L,{holdFetchResult:Ce})}finally{pe.length===0?(oe=L.releaseFs)==null||oe.call(L):m.push(uo(pe).then(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}g.set(O.locatorHash,te),f.set(O.locatorHash,be.packageLocation),be.buildDirective&&be.buildDirective.length>0&&be.packageLocation&&h.set(O.locatorHash,{directives:be.buildDirective,buildLocations:[be.packageLocation]})}}let y=new Map;for(let X of this.accessibleLocators){let O=this.storedPackages.get(X);if(!O)throw new Error("Assertion failed: The locator should have been registered");let L=this.tryWorkspaceByLocator(O)!==null,pe=async(Ce,Oe)=>{let te=f.get(O.locatorHash);if(typeof te=="undefined")throw new Error(`Assertion failed: The package (${Bt(this.configuration,O)}) should have been registered`);let se=[];for(let be of O.dependencies.values()){let he=this.storedResolutions.get(be.descriptorHash);if(typeof he=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,be)}, from ${Bt(this.configuration,O)})should have been registered`);let Fe=this.storedPackages.get(he);if(typeof Fe=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);let Ue=this.tryWorkspaceByLocator(Fe)===null?g.get(he):null;if(typeof Ue=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);Ue===Ce||Ue===null?f.get(Fe.locatorHash)!==null&&se.push([be,Fe]):!L&&te!==null&&Pg(y,he).push(te)}te!==null&&await Oe.attachInternalDependencies(O,se)};if(L)for(let[Ce,Oe]of u)Ce.supportsPackage(O,c)&&await pe(Ce,Oe);else{let Ce=g.get(O.locatorHash);if(!Ce)throw new Error("Assertion failed: The linker should have been found");let Oe=u.get(Ce);if(!Oe)throw new Error("Assertion failed: The installer should have been registered");await pe(Ce,Oe)}}for(let[X,O]of y){let L=this.storedPackages.get(X);if(!L)throw new Error("Assertion failed: The package should have been registered");let pe=g.get(L.locatorHash);if(!pe)throw new Error("Assertion failed: The linker should have been found");let Ce=u.get(pe);if(!Ce)throw new Error("Assertion failed: The installer should have been registered");await Ce.attachExternalDependents(L,O)}let b=new Map;for(let X of u.values()){let O=await X.finalizeInstall();for(let L of(le=O==null?void 0:O.records)!=null?le:[])h.set(L.locatorHash,{directives:L.buildDirective,buildLocations:L.buildLocations});typeof(O==null?void 0:O.customData)!="undefined"&&b.set(X.getCustomDataKey(),O.customData)}if(this.installersCustomData=b,await uo(m),n===di.SkipBuild)return;let S=new Set(this.storedPackages.keys()),k=new Set(h.keys());for(let X of k)S.delete(X);let T=(0,p0.createHash)("sha512");T.update(process.versions.node),await this.configuration.triggerHook(X=>X.globalHashGeneration,this,X=>{T.update("\0"),T.update(X)});let Y=T.digest("hex"),j=new Map,Z=X=>{let O=j.get(X.locatorHash);if(typeof O!="undefined")return O;let L=this.storedPackages.get(X.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The package should have been registered");let pe=(0,p0.createHash)("sha512");pe.update(X.locatorHash),j.set(X.locatorHash,"");for(let Ce of L.dependencies.values()){let Oe=this.storedResolutions.get(Ce.descriptorHash);if(typeof Oe=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,Ce)}) should have been registered`);let te=this.storedPackages.get(Oe);if(typeof te=="undefined")throw new Error("Assertion failed: The package should have been registered");pe.update(Z(te))}return O=pe.digest("hex"),j.set(X.locatorHash,O),O},J=(X,O)=>{let L=(0,p0.createHash)("sha512");L.update(Y),L.update(Z(X));for(let pe of O)L.update(pe);return L.digest("hex")},re=new Map,ee=!1;for(;k.size>0;){let X=k.size,O=[];for(let L of k){let pe=this.storedPackages.get(L);if(!pe)throw new Error("Assertion failed: The package should have been registered");let Ce=!0;for(let se of pe.dependencies.values()){let be=this.storedResolutions.get(se.descriptorHash);if(!be)throw new Error(`Assertion failed: The resolution (${sr(this.configuration,se)}) should have been registered`);if(k.has(be)){Ce=!1;break}}if(!Ce)continue;k.delete(L);let Oe=h.get(pe.locatorHash);if(!Oe)throw new Error("Assertion failed: The build directive should have been registered");let te=J(pe,Oe.buildLocations);if(this.storedBuildState.get(pe.locatorHash)===te){re.set(pe.locatorHash,te);continue}ee||(await this.persistInstallStateFile(),ee=!0),this.storedBuildState.has(pe.locatorHash)?r.reportInfo($.MUST_REBUILD,`${Bt(this.configuration,pe)} must be rebuilt because its dependency tree changed`):r.reportInfo($.MUST_BUILD,`${Bt(this.configuration,pe)} must be built because it never has been before or the last one failed`);for(let se of Oe.buildLocations){if(!x.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);O.push((async()=>{for(let[be,he]of Oe.directives){let Fe=`# This file contains the result of Yarn building a package (${Ds(pe)}) +`;switch(be){case ls.SCRIPT:Fe+=`# Script name: ${he} +`;break;case ls.SHELLCODE:Fe+=`# Script code: ${he} +`;break}let Ue=null;if(!await K.mktempPromise(async Se=>{let de=x.join(Se,"build.log"),{stdout:V,stderr:Qe}=this.configuration.getSubprocessStreams(de,{header:Fe,prefix:Bt(this.configuration,pe),report:r}),ce;try{switch(be){case ls.SCRIPT:ce=await AB(pe,he,[],{cwd:se,project:this,stdin:Ue,stdout:V,stderr:Qe});break;case ls.SHELLCODE:ce=await hD(pe,he,[],{cwd:se,project:this,stdin:Ue,stdout:V,stderr:Qe});break}}catch(gt){Qe.write(gt.stack),ce=1}if(V.end(),Qe.end(),ce===0)return re.set(pe.locatorHash,te),!0;K.detachTemp(Se);let fe=`${Bt(this.configuration,pe)} couldn't be built successfully (exit code ${et(this.configuration,ce,Ye.NUMBER)}, logs can be found here: ${et(this.configuration,de,Ye.PATH)})`;return this.optionalBuilds.has(pe.locatorHash)?(r.reportInfo($.BUILD_FAILED,fe),re.set(pe.locatorHash,te),!0):(r.reportError($.BUILD_FAILED,fe),!1)}))return}})())}}if(await uo(O),X===k.size){let L=Array.from(k).map(pe=>{let Ce=this.storedPackages.get(pe);if(!Ce)throw new Error("Assertion failed: The package should have been registered");return Bt(this.configuration,Ce)}).join(", ");r.reportError($.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${L})`);break}}this.storedBuildState=re}async install(e){var a,l;let r=this.configuration.get("nodeLinker");(a=we.telemetry)==null||a.reportInstall(r),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status=qi.Inactive;let i=x.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await K.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new ct($.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=et(this.configuration,g,Ye.PACKAGE_EXTENSION);switch(g.status){case qi.Inactive:e.report.reportWarning($.UNUSED_PACKAGE_EXTENSION,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case qi.Redundant:e.report.reportWarning($.REDUNDANT_PACKAGE_EXTENSION,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=ec(n,this.generateLockfile());if(c!==n){let u=(0,n$.structuredPatch)(i,i,n,c);e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError($.FROZEN_LOCKFILE_EXCEPTION,et(this.configuration,f,Ye.ADDED)):f.startsWith("-")?e.report.reportError($.FROZEN_LOCKFILE_EXCEPTION,et(this.configuration,f,Ye.REMOVED)):e.report.reportInfo(null,et(this.configuration,f,"grey"))}throw e.report.reportSeparator(),new ct($.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status===qi.Active&&((l=we.telemetry)==null||l.reportPackageExtension(Rc(g,Ye.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject=="undefined"||e.persistProject)&&e.mode!==di.UpdateLockfile&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>cw(c,{cwd:this.cwd})));(typeof e.persistProject=="undefined"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode===di.UpdateLockfile){e.report.reportWarning($.UPDATE_LOCKFILE_ONLY_SKIP_LINK,`Skipped due to ${et(this.configuration,"mode=update-lockfile",Ye.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>cw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let r={};r.__metadata={version:a$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>Pn(f)).sort().join(", "),c=new At;c.version=o.linkType===Qt.HARD?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g!="undefined"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof r.__metadata.cacheKey=="undefined"&&(r.__metadata.cacheKey=h),h===r.__metadata.cacheKey?u=p:u=g}r[l]=ie(N({},c.exportTo({},{compatibilityMode:!1})),{linkType:o.linkType.toLowerCase(),resolution:Ds(o),checksum:u,conditions:o.conditions||void 0})}return`${[`# This file is generated by running "yarn install" inside your project. +`,`# Manual changes might be lost - proceed with caution! +`].join("")} +`+La(r)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),r="";try{r=await K.readFilePromise(e,"utf8")}catch(s){}let i=this.generateLockfile(),n=ec(r,i);n!==r&&(await K.writeFilePromise(e,n),this.lockFileChecksum=l$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(AF))e.push(...o);let r=(0,d0.default)(this,e),i=oF.default.serialize(r),n=ln(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await K.mkdirPromise(x.dirname(s),{recursive:!0}),await K.writeFilePromise(s,await XKe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await ZKe(await K.readFilePromise(n));s=oF.default.deserialize(o),this.installStateChecksum=ln(o)}catch{r&&await this.applyLightResolution();return}e&&typeof s.installersCustomData!="undefined"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,d0.default)(s,AF.restoreBuildState)),r&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,d0.default)(s,AF.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new pi}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Ix(e.cwd,this.cwd)||!await K.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await K.readdirPromise(e.cwd)){if(i.has(a))continue;let l=x.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?r.reportError($.IMMUTABLE_CACHE,`${et(this.configuration,x.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:r.reportInfo($.UNUSED_CACHE_ENTRY,`${et(this.configuration,x.basename(l),"magenta")} appears to be unused - removing`),await K.removePromise(l)))}n&&s!==0&&r.reportInfo($.UNUSED_CACHE_ENTRY,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function $Ke({project:t,allDescriptors:e,allResolutions:r,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l,tolerateMissingPackages:c=!1}){var re;let u=new Map,g=[],f=new Map,h=new Map,p=new Map,m=new Map,y=new Map,b=new Map(t.workspaces.map(ee=>{let A=ee.anchoredLocator.locatorHash,oe=i.get(A);if(typeof oe=="undefined"){if(c)return[A,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[A,ud(oe)]})),S=()=>{let ee=K.mktempSync(),A=x.join(ee,"stacktrace.log"),oe=String(g.length+1).length,le=g.map((X,O)=>`${`${O+1}.`.padStart(oe," ")} ${Ds(X)} +`).join("");throw K.writeFileSync(A,le),K.detachTemp(ee),new ct($.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${H.fromPortablePath(A)}`)},k=ee=>{let A=r.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: The resolution should have been registered");let oe=i.get(A);if(!oe)throw new Error("Assertion failed: The package could not be found");return oe},T=(ee,A,oe,{top:le,optional:X})=>{g.length>1e3&&S(),g.push(A);let O=Y(ee,A,oe,{top:le,optional:X});return g.pop(),O},Y=(ee,A,oe,{top:le,optional:X})=>{if(n.has(A.locatorHash))return;n.add(A.locatorHash),X||s.delete(A.locatorHash);let O=i.get(A.locatorHash);if(!O){if(c)return;throw new Error(`Assertion failed: The package (${Bt(t.configuration,A)}) should have been registered`)}let L=[],pe=[],Ce=[],Oe=[],te=[];for(let be of Array.from(O.dependencies.values())){if(O.peerDependencies.has(be.identHash)&&O.locatorHash!==le)continue;if(nl(be))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(be.descriptorHash);let he=X;if(!he){let Qe=O.dependenciesMeta.get(Ot(be));if(typeof Qe!="undefined"){let ce=Qe.get(null);typeof ce!="undefined"&&ce.optional&&(he=!0)}}let Fe=r.get(be.descriptorHash);if(!Fe){if(c)continue;throw new Error(`Assertion failed: The resolution (${sr(t.configuration,be)}) should have been registered`)}let Ue=b.get(Fe)||i.get(Fe);if(!Ue)throw new Error(`Assertion failed: The package (${Fe}, resolved from ${sr(t.configuration,be)}) should have been registered`);if(Ue.peerDependencies.size===0){T(be,Ue,new Map,{top:le,optional:he});continue}let xe,Se,de=new Set,V;pe.push(()=>{xe=Ax(be,A.locatorHash),Se=lx(Ue,A.locatorHash),O.dependencies.delete(be.identHash),O.dependencies.set(xe.identHash,xe),r.set(xe.descriptorHash,Se.locatorHash),e.set(xe.descriptorHash,xe),i.set(Se.locatorHash,Se),L.push([Ue,xe,Se])}),Ce.push(()=>{var Qe;V=new Map;for(let ce of Se.peerDependencies.values()){let fe=O.dependencies.get(ce.identHash);if(!fe&&hd(A,ce)&&(ee.identHash===A.identHash?fe=ee:(fe=rr(A,ee.range),e.set(fe.descriptorHash,fe),r.set(fe.descriptorHash,A.locatorHash),a.delete(fe.descriptorHash))),(!fe||fe.range==="missing:")&&Se.dependencies.has(ce.identHash)){Se.peerDependencies.delete(ce.identHash);continue}fe||(fe=rr(ce,"missing:")),Se.dependencies.set(fe.identHash,fe),nl(fe)&&xc(p,fe.descriptorHash).add(Se.locatorHash),f.set(fe.identHash,fe),fe.range==="missing:"&&de.add(fe.identHash),V.set(ce.identHash,(Qe=oe.get(ce.identHash))!=null?Qe:Se.locatorHash)}Se.dependencies=new Map(xn(Se.dependencies,([ce,fe])=>Ot(fe)))}),Oe.push(()=>{if(!i.has(Se.locatorHash))return;let Qe=u.get(Ue.locatorHash);typeof Qe=="number"&&Qe>=2&&S();let ce=u.get(Ue.locatorHash),fe=typeof ce!="undefined"?ce+1:1;u.set(Ue.locatorHash,fe),T(xe,Se,V,{top:le,optional:he}),u.set(Ue.locatorHash,fe-1)}),te.push(()=>{let Qe=O.dependencies.get(be.identHash);if(typeof Qe=="undefined")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let ce=r.get(Qe.descriptorHash);if(typeof ce=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");if(xc(y,ce).add(A.locatorHash),!!i.has(Se.locatorHash)){for(let fe of Se.peerDependencies.values()){let gt=V.get(fe.identHash);if(typeof gt=="undefined")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Pg(Dg(m,gt),Ot(fe)).push(Se.locatorHash)}for(let fe of de)Se.dependencies.delete(fe)}})}for(let be of[...pe,...Ce])be();let se;do{se=!0;for(let[be,he,Fe]of L){let Ue=Dg(h,be.locatorHash),xe=ln(...[...Fe.dependencies.values()].map(Qe=>{let ce=Qe.range!=="missing:"?r.get(Qe.descriptorHash):"missing:";if(typeof ce=="undefined")throw new Error(`Assertion failed: Expected the resolution for ${sr(t.configuration,Qe)} to have been registered`);return ce===le?`${ce} (top)`:ce}),he.identHash),Se=Ue.get(xe);if(typeof Se=="undefined"){Ue.set(xe,he);continue}if(Se===he)continue;i.delete(Fe.locatorHash),e.delete(he.descriptorHash),r.delete(he.descriptorHash),n.delete(Fe.locatorHash);let de=p.get(he.descriptorHash)||[],V=[O.locatorHash,...de];p.delete(he.descriptorHash);for(let Qe of V){let ce=i.get(Qe);typeof ce!="undefined"&&(ce.dependencies.get(he.identHash).descriptorHash!==Se.descriptorHash&&(se=!1),ce.dependencies.set(he.identHash,Se))}}}while(!se);for(let be of[...Oe,...te])be()};for(let ee of t.workspaces){let A=ee.anchoredLocator;a.delete(ee.anchoredDescriptor.descriptorHash),T(ee.anchoredDescriptor,A,new Map,{top:A.locatorHash,optional:!1})}var j;(function(oe){oe[oe.NotProvided=0]="NotProvided",oe[oe.NotCompatible=1]="NotCompatible"})(j||(j={}));let Z=[];for(let[ee,A]of y){let oe=i.get(ee);if(typeof oe=="undefined")throw new Error("Assertion failed: Expected the root to be registered");let le=m.get(ee);if(typeof le!="undefined")for(let X of A){let O=i.get(X);if(typeof O!="undefined")for(let[L,pe]of le){let Ce=An(L);if(O.peerDependencies.has(Ce.identHash))continue;let Oe=`p${ln(X,L,ee).slice(0,5)}`;o.set(Oe,{subject:X,requested:Ce,rootRequester:ee,allRequesters:pe});let te=oe.dependencies.get(Ce.identHash);if(typeof te!="undefined"){let se=k(te),be=(re=se.version)!=null?re:"0.0.0",he=new Set;for(let Ue of pe){let xe=i.get(Ue);if(typeof xe=="undefined")throw new Error("Assertion failed: Expected the link to be registered");let Se=xe.peerDependencies.get(Ce.identHash);if(typeof Se=="undefined")throw new Error("Assertion failed: Expected the ident to be registered");he.add(Se.range)}[...he].every(Ue=>{if(Ue.startsWith(oi.protocol)){if(!t.tryWorkspaceByLocator(se))return!1;Ue=Ue.slice(oi.protocol.length),(Ue==="^"||Ue==="~")&&(Ue="*")}return Uc(be,Ue)})||Z.push({type:1,subject:O,requested:Ce,requester:oe,version:be,hash:Oe,requirementCount:pe.length})}else{let se=oe.peerDependenciesMeta.get(L);(se==null?void 0:se.optional)||Z.push({type:0,subject:O,requested:Ce,requester:oe,hash:Oe})}}}}let J=[ee=>ux(ee.subject),ee=>Ot(ee.requested),ee=>`${ee.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning($.UNNAMED,`Some peer dependencies are incorrectly met; run ${et(t.configuration,"yarn explain peer-requirements ",Ye.CODE)} for details, where ${et(t.configuration,"",Ye.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let ee of xn(Z,J))switch(ee.type){case 0:l.reportWarning($.MISSING_PEER_DEPENDENCY,`${Bt(t.configuration,ee.subject)} doesn't provide ${gi(t.configuration,ee.requested)} (${et(t.configuration,ee.hash,Ye.CODE)}), requested by ${gi(t.configuration,ee.requester)}`);break;case 1:{let A=ee.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning($.INCOMPATIBLE_PEER_DEPENDENCY,`${Bt(t.configuration,ee.subject)} provides ${gi(t.configuration,ee.requested)} (${et(t.configuration,ee.hash,Ye.CODE)}) with version ${Cd(t.configuration,ee.version)}, which doesn't satisfy what ${gi(t.configuration,ee.requester)} ${A}`)}break}})}var aa;(function(l){l.VERSION="version",l.COMMAND_NAME="commandName",l.PLUGIN_NAME="pluginName",l.INSTALL_COUNT="installCount",l.PROJECT_COUNT="projectCount",l.WORKSPACE_COUNT="workspaceCount",l.DEPENDENCY_COUNT="dependencyCount",l.EXTENSION="packageExtension"})(aa||(aa={}));var QC=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!K.existsSync(i),this.sendReport(r),this.startBuffer()}reportVersion(e){this.reportValue(aa.VERSION,e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue(aa.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(aa.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(aa.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(aa.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(aa.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(aa.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(aa.DEPENDENCY_COUNT,String(e))}reportValue(e,r){xc(this.values,e).add(r)}reportEnumerator(e,r){xc(this.enumerators,e).add(ln(r))}reportHit(e,r="*"){let i=Dg(this.hits,e),n=Ja(i,r,()=>0);i.set(r,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return x.join(e,"telemetry.json")}sendReport(e){var u,g,f;let r=this.getRegistryPath(),i;try{i=K.readJsonSync(r)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{K.mkdirSync(x.dirname(r),{recursive:!0}),K.writeJsonSync(r,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>$P(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let m=p;m.userId=h,m.reportType="primary";for(let S of Object.keys((f=m.enumerators)!=null?f:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,b=20;for(let[S,k]of Object.entries(m.values))k.length>0&&y.set(S,k.slice(0,b));for(;y.size>0;){let S={};S.userId=h,S.reportType="secondary",S.metrics={};for(let[k,T]of y)S.metrics[k]=T.shift(),T.length===0&&y.delete(k);c(S)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),r;try{r=K.readJsonSync(e)}catch{r={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=r.blocks=(a=r.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},b=y[m]=(u=y[m])!=null?u:{};for(let[S,k]of this.hits.get(m))b[S]=((g=b[S])!=null?g:0)+k}for(let m of["values","enumerators"])for(let y of this[m].keys()){let b=s[m]=(f=s[m])!=null?f:{};b[y]=[...new Set([...(h=b[y])!=null?h:[],...(p=this[m].get(y))!=null?p:[]])]}K.mkdirSync(x.dirname(e),{recursive:!0}),K.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var lF=ge(require("child_process")),c$=ge(pc());var cF=ge(require("fs"));var Tf=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function e1e(t){let e=H.fromPortablePath(t);process.on("SIGINT",()=>{}),e?(0,lF.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:ie(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})}):(0,lF.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:ie(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})})}async function C0({binaryVersion:t,pluginConfiguration:e}){async function r(){let n=new ys({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:t});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,b,S,k;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!ve.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Wt.satisfiesWithPrereleases(s,o))throw new Pe(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await we.find(H.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),f=H.toPortablePath(H.resolve(process.argv[1])),h=T=>K.readFilePromise(T).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===f||Buffer.compare(...await Promise.all([h(c),h(f)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!K.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{e1e(c)}catch(T){process.exitCode=T.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!c$.isCI&&process.stdout.isTTY&&(we.telemetry=new QC(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=we.telemetry)==null||m.reportVersion(t);for(let[Z,J]of l.plugins.entries()){Tf.has((b=(y=Z.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?b:"")&&((S=we.telemetry)==null||S.reportPluginName(Z));for(let re of J.commands||[])n.register(re)}let Y=n.process(process.argv.slice(2));Y.help||(k=we.telemetry)==null||k.reportCommandName(Y.path.join(" "));let j=Y.cwd;if(typeof j!="undefined"&&!g){let Z=(0,cF.realpathSync)(process.cwd()),J=(0,cF.realpathSync)(j);if(Z!==J){process.chdir(j),await r();return}}await n.runExit(Y,{cwd:H.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return r().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>K.rmtempPromise())}function u$(t){t.Command.Path=(...e)=>r=>{r.paths=r.paths||[],r.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])t.Command[e]=(...r)=>(i,n)=>{let s=t.Option[e](...r);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return t}var VC={};ft(VC,{BaseCommand:()=>Le,WorkspaceRequiredError:()=>ht,getDynamicLibs:()=>Qie,getPluginConfiguration:()=>W0,main:()=>C0,openWorkspace:()=>zf,pluginCommands:()=>Tf});var Le=class extends Re{constructor(){super(...arguments);this.cwd=W.String("--cwd",{hidden:!0})}};var ht=class extends Pe{constructor(e,r){let i=x.relative(e,r),n=x.join(e,At.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var oqe=ge(ri());Is();var aqe=ge(AN()),Qie=()=>new Map([["@yarnpkg/cli",VC],["@yarnpkg/core",vC],["@yarnpkg/fslib",$h],["@yarnpkg/libzip",Kd],["@yarnpkg/parsers",ap],["@yarnpkg/shell",Hd],["clipanion",mp],["semver",oqe],["typanion",ag],["yup",aqe]]);async function zf(t,e){let{project:r,workspace:i}=await ze.find(t,e);if(!i)throw new ht(r.cwd,e);return i}var v9e=ge(ri());Is();var S9e=ge(AN());var uL={};ft(uL,{dedupeUtils:()=>YN,default:()=>E4e,suggestUtils:()=>DN});var SAe=ge(pc());var Nse=ge(em());Is();var DN={};ft(DN,{Modifier:()=>ga,Strategy:()=>Vr,Target:()=>Hr,WorkspaceModifier:()=>Zf,applyModifier:()=>Pse,extractDescriptorFromPath:()=>NN,extractRangeModifier:()=>xse,fetchDescriptorFrom:()=>FN,findProjectDescriptors:()=>Fse,getModifier:()=>tm,getSuggestedDescriptors:()=>rm,makeWorkspaceDescriptor:()=>Rse,toWorkspaceModifier:()=>Dse});var RN=ge(ri()),QJe="workspace:",Hr;(function(i){i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies"})(Hr||(Hr={}));var ga;(function(i){i.CARET="^",i.TILDE="~",i.EXACT=""})(ga||(ga={}));var Zf;(function(i){i.CARET="^",i.TILDE="~",i.EXACT="*"})(Zf||(Zf={}));var Vr;(function(s){s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache"})(Vr||(Vr={}));function tm(t,e){return t.exact?ga.EXACT:t.caret?ga.CARET:t.tilde?ga.TILDE:e.configuration.get("defaultSemverRangePrefix")}var vJe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function xse(t,{project:e}){let r=t.match(vJe);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Pse(t,e){let{protocol:r,source:i,params:n,selector:s}=P.parseRange(t.range);return RN.default.valid(s)&&(s=`${e}${t.range}`),P.makeDescriptor(t,P.makeRange({protocol:r,source:i,params:n,selector:s}))}function Dse(t){switch(t){case ga.CARET:return Zf.CARET;case ga.TILDE:return Zf.TILDE;case ga.EXACT:return Zf.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function Rse(t,e){return P.makeDescriptor(t.anchoredDescriptor,`${QJe}${Dse(e)}`)}async function Fse(t,{project:e,target:r}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(r===Hr.PEER){let o=s.manifest.peerDependencies.get(t.identHash);o!==void 0&&n(o).locators.push(s.locator)}else{let o=s.manifest.dependencies.get(t.identHash),a=s.manifest.devDependencies.get(t.identHash);r===Hr.DEVELOPMENT?a!==void 0?n(a).locators.push(s.locator):o!==void 0&&n(o).locators.push(s.locator):o!==void 0?n(o).locators.push(s.locator):a!==void 0&&n(a).locators.push(s.locator)}return i}async function NN(t,{cwd:e,workspace:r}){return await SJe(async i=>{x.isAbsolute(t)||(t=x.relative(r.cwd,x.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:n}=r,s=await FN(P.makeIdent(null,"archive"),t,{project:r.project,cache:i,workspace:r});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new pi,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,r.anchoredLocator,c),g=P.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await At.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(h.name,t)})}async function rm(t,{project:e,workspace:r,cache:i,target:n,modifier:s,strategies:o,maxResults:a=Infinity}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(t.range!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${P.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof r!="undefined"&&r!==null&&r.manifest[n].get(t.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case Vr.KEEP:await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case Vr.REUSE:await g(async()=>{for(let{descriptor:h,locators:p}of(await Fse(t,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===r.anchoredLocator.locatorHash&&o.includes(Vr.KEEP))continue;let m=`(originally used by ${P.prettyLocator(e.configuration,p[0])}`;m+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:m})}});break;case Vr.CACHE:await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===t.identHash&&c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case Vr.PROJECT:await g(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(t);if(h===null)return;let p=Rse(h,s);c.push({descriptor:p,name:`Attach ${P.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${Ae.pretty(e.configuration,h.relativeCwd,Ae.Type.PATH)})`})});break;case Vr.LATEST:await g(async()=>{if(t.range!=="unknown")c.push({descriptor:t,name:`Use ${P.prettyRange(e.configuration,t.range)}`,reason:"(explicit range requested)"});else if(n===Hr.PEER)c.push({descriptor:P.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:Ae.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await FN(t,"latest",{project:e,cache:i,workspace:r,preserveModifier:!1});h&&(h=Pse(h,s),c.push({descriptor:h,name:`Use ${P.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function FN(t,e,{project:r,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(t,e),a=new pi,l=r.configuration.makeFetcher(),c=r.configuration.makeResolver(),u={project:r,fetcher:l,cache:i,checksums:r.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g=ie(N({},u),{resolver:c,fetchOptions:u}),f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:m,source:y,params:b,selector:S}=P.parseRange(P.convertToManifestRange(p.reference));if(m===r.configuration.get("defaultProtocol")&&(m=null),RN.default.valid(S)&&s!==!1){let k=typeof s=="string"?s:o.range;S=xse(k,{project:r})+S}return P.makeDescriptor(p,P.makeRange({protocol:m,source:y,params:b,selector:S}))}async function SJe(t){return await K.mktempPromise(async e=>{let r=we.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Nt(e,{configuration:r,check:!1,immutable:!1}))})}var im=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=W.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=W.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=W.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=W.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=W.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=W.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=W.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=W.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=W.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.silent=W.Boolean("--silent",{hidden:!0});this.packages=W.Rest()}async execute(){var m;let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=tm(this,r),a=[...s?[Vr.REUSE]:[],Vr.PROJECT,...this.cached?[Vr.CACHE]:[],Vr.LATEST],l=s?Infinity:1,c=await Promise.all(this.packages.map(async y=>{let b=y.match(/^\.{0,2}\//)?await NN(y,{cwd:this.context.cwd,workspace:i}):P.tryParseDescriptor(y),S=y.match(/^(https?:|git@github)/);if(S)throw new Pe(`It seems you are trying to add a package using a ${Ae.pretty(e,`${S[0]}...`,Di.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${Ae.pretty(e,"yarn add",Di.CODE)} ${Ae.pretty(e,P.makeDescriptor(P.makeIdent(null,"my-package"),`${S[0]}...`),Di.DESCRIPTOR)}`);if(!b)throw new Pe(`The ${Ae.pretty(e,y,Di.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let k=kJe(i,b,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional}),T=await rm(b,{project:r,workspace:i,cache:n,target:k,modifier:o,strategies:a,maxResults:l});return[b,T,k]})),u=await gA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[b,{suggestions:S,rejections:k}]of c)if(S.filter(Y=>Y.descriptor!==null).length===0){let[Y]=k;if(typeof Y=="undefined")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range`):y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),y.reportSeparator(),y.reportExceptionOnce(Y)}});if(u.hasErrors())return u.exitCode();let g=!1,f=[],h=[];for(let[,{suggestions:y},b]of c){let S,k=y.filter(Z=>Z.descriptor!==null),T=k[0].descriptor,Y=k.every(Z=>P.areDescriptorsEqual(Z.descriptor,T));k.length===1||Y?S=T:(g=!0,{answer:S}=await(0,Nse.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:y.map(({descriptor:Z,name:J,reason:re})=>Z?{name:J,hint:re,descriptor:Z}:{name:J,hint:re,disabled:!0}),onCancel:()=>process.exit(130),result(Z){return this.find(Z,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let j=i.manifest[b].get(S.identHash);(typeof j=="undefined"||j.descriptorHash!==S.descriptorHash)&&(i.manifest[b].set(S.identHash,S),this.optional&&(b==="dependencies"?i.manifest.ensureDependencyMeta(ie(N({},S),{range:"unknown"})).optional=!0:b==="peerDependencies"&&(i.manifest.ensurePeerDependencyMeta(ie(N({},S),{range:"unknown"})).optional=!0)),typeof j=="undefined"?f.push([i,b,S,a]):h.push([i,b,j,S]))}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyAddition,f),await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),g&&this.context.stdout.write(` +`),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async y=>{await r.install({cache:n,report:y,mode:this.mode})})).exitCode()}};im.paths=[["add"]],im.usage=Re.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var Lse=im;function kJe(t,e,{dev:r,peer:i,preferDev:n,optional:s}){let o=t.manifest[Hr.REGULAR].has(e.identHash),a=t.manifest[Hr.DEVELOPMENT].has(e.identHash),l=t.manifest[Hr.PEER].has(e.identHash);if((r||i)&&o)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!i&&l)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||n)&&s)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?Hr.PEER:r||n?Hr.DEVELOPMENT:o?Hr.REGULAR:a?Hr.DEVELOPMENT:Hr.REGULAR}var nm=class extends Le{constructor(){super(...arguments);this.verbose=W.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=W.String({required:!1})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await ze.find(e,this.context.cwd);if(await r.restoreInstallState(),this.name){let o=(await Zt.getPackageAccessibleBinaries(i,{project:r})).get(this.name);if(!o)throw new Pe(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} +`),0}return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async s=>{let o=await Zt.getPackageAccessibleBinaries(i,{project:r}),l=Array.from(o.keys()).reduce((c,u)=>Math.max(c,u.length),0);for(let[c,[u,g]]of o)s.reportJson({name:c,source:P.stringifyIdent(u),path:g});if(this.verbose)for(let[c,[u]]of o)s.reportInfo(null,`${c.padEnd(l," ")} ${P.prettyLocator(e,u)}`);else for(let c of o.keys())s.reportInfo(null,c)})).exitCode()}};nm.paths=[["bin"]],nm.usage=Re.Usage({description:"get the path to a binary script",details:` + When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. + + When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var Tse=nm;var sm=class extends Le{constructor(){super(...arguments);this.mirror=W.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=W.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=await Nt.find(e);return(await Je.start({configuration:e,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&r.mirrorCwd!==null,s=!this.mirror;n&&(await K.removePromise(r.mirrorCwd),await e.triggerHook(o=>o.cleanGlobalArtifacts,e)),s&&await K.removePromise(r.cwd)})).exitCode()}};sm.paths=[["cache","clean"],["cache","clear"]],sm.usage=Re.Usage({description:"remove the shared cache files",details:` + This command will remove all the files from the cache. + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Ose=sm;var Mse=ge(x0()),LN=ge(require("util")),om=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=W.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),i=this.name.replace(/^[^.[]*/,"");if(typeof e.settings.get(r)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${r}"`);let s=e.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),o=ve.convertMapsToIndexableObjects(s),a=i?(0,Mse.default)(o,i):o,l=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async c=>{c.reportJson(a)});if(!this.json){if(typeof a=="string")return this.context.stdout.write(`${a} +`),l.exitCode();LN.inspect.styles.name="cyan",this.context.stdout.write(`${(0,LN.inspect)(a,{depth:Infinity,colors:e.get("enableColors"),compact:!1})} +`)}return l.exitCode()}};om.paths=[["config","get"]],om.usage=Re.Usage({description:"read a configuration settings",details:` + This command will print a configuration setting. + + Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var Kse=om;var Xoe=ge(HN()),Zoe=ge(x0()),$oe=ge(Voe()),GN=ge(require("util")),Am=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=W.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=W.String();this.value=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);if(i==="enableStrictSettings")throw new Pe("This setting only affects the file it's in, and thus cannot be set from the CLI");let o=this.json?JSON.parse(this.value):this.value;await(this.home?h=>we.updateHomeConfiguration(h):h=>we.updateConfiguration(r(),h))(h=>{if(n){let p=(0,Xoe.default)(h);return(0,$oe.default)(p,this.name,o),p}else return ie(N({},h),{[i]:o})});let c=(await we.find(this.context.cwd,this.context.plugins)).getSpecial(i,{hideSecrets:!0,getNativePaths:!0}),u=ve.convertMapsToIndexableObjects(c),g=n?(0,Zoe.default)(u,n):u;return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async h=>{GN.inspect.styles.name="cyan",h.reportInfo($.UNNAMED,`Successfully set ${this.name} to ${(0,GN.inspect)(g,{depth:Infinity,colors:e.get("enableColors"),compact:!1})}`)})).exitCode()}};Am.paths=[["config","set"]],Am.usage=Re.Usage({description:"change a configuration settings",details:` + This command will set a configuration setting. + + When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). + + When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var eae=Am;var lae=ge(HN()),cae=ge(kC()),uae=ge(Aae()),lm=class extends Le{constructor(){super(...arguments);this.home=W.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);let o=this.home?l=>we.updateHomeConfiguration(l):l=>we.updateConfiguration(r(),l);return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async l=>{let c=!1;await o(u=>{if(!(0,cae.default)(u,this.name))return l.reportWarning($.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),c=!0,u;let g=n?(0,lae.default)(u):N({},u);return(0,uae.default)(g,this.name),g}),c||l.reportInfo($.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};lm.paths=[["config","unset"]],lm.usage=Re.Usage({description:"unset a configuration setting",details:` + This command will unset a configuration setting. + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var gae=lm;var jN=ge(require("util")),cm=class extends Le{constructor(){super(...arguments);this.verbose=W.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=W.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{if(e.invalid.size>0&&!this.json){for(let[n,s]of e.invalid)i.reportError($.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${n}" in ${s}`);i.reportSeparator()}if(this.json){let n=ve.sortMap(e.settings.keys(),s=>s);for(let s of n){let o=e.settings.get(s),a=e.getSpecial(s,{hideSecrets:!0,getNativePaths:!0}),l=e.sources.get(s);this.verbose?i.reportJson({key:s,effective:a,source:l}):i.reportJson(N({key:s,effective:a,source:l},o))}}else{let n=ve.sortMap(e.settings.keys(),a=>a),s=n.reduce((a,l)=>Math.max(a,l.length),0),o={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let a=n.map(c=>{let u=e.settings.get(c);if(!u)throw new Error(`Assertion failed: This settings ("${c}") should have been registered`);let g=this.why?e.sources.get(c)||"":u.description;return[c,g]}),l=a.reduce((c,[,u])=>Math.max(c,u.length),0);for(let[c,u]of a)i.reportInfo(null,`${c.padEnd(s," ")} ${u.padEnd(l," ")} ${(0,jN.inspect)(e.getSpecial(c,{hideSecrets:!0,getNativePaths:!0}),o)}`)}else for(let a of n)i.reportInfo(null,`${a.padEnd(s," ")} ${(0,jN.inspect)(e.getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),o)}`)}})).exitCode()}};cm.paths=[["config"]],cm.usage=Re.Usage({description:"display the current configuration",details:` + This command prints the current active configuration settings. + `,examples:[["Print the active configuration settings","$0 config"]]});var fae=cm;Is();var YN={};ft(YN,{Strategy:()=>yu,acceptedStrategies:()=>D8e,dedupe:()=>qN});var hae=ge(rs()),yu;(function(e){e.HIGHEST="highest"})(yu||(yu={}));var D8e=new Set(Object.values(yu)),R8e={highest:async(t,e,{resolver:r,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of t.storedResolutions){let c=t.storedDescriptors.get(a);if(typeof c=="undefined")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);ve.getSetWithDefault(o,c.identHash).add(l)}return Array.from(t.storedDescriptors.values(),async a=>{if(e.length&&!hae.default.isMatch(P.stringifyIdent(a),e))return null;let l=t.storedResolutions.get(a.descriptorHash);if(typeof l=="undefined")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=t.originalPackages.get(l);if(typeof c=="undefined"||!r.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u=="undefined")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let b=t.originalPackages.get(y);if(typeof b=="undefined")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return b.reference}),f=await r.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h=="undefined")return null;let p=h.locatorHash,m=t.originalPackages.get(p);if(typeof m=="undefined")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function qN(t,{strategy:e,patterns:r,cache:i,report:n}){let{configuration:s}=t,o=new pi,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:t.storedChecksums,fetcher:l,project:t,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:t,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let f=await R8e[e](t,r,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=Ji.progressViaCounter(f.length);n.reportProgress(h);let p=0;await Promise.all(f.map(b=>b.then(S=>{if(S===null)return;p++;let{descriptor:k,currentPackage:T,updatedPackage:Y}=S;n.reportInfo($.UNNAMED,`${P.prettyDescriptor(s,k)} can be deduped from ${P.prettyLocator(s,T)} to ${P.prettyLocator(s,Y)}`),n.reportJson({descriptor:P.stringifyDescriptor(k),currentResolution:P.stringifyLocator(T),updatedResolution:P.stringifyLocator(Y)}),t.storedResolutions.set(k.descriptorHash,Y.locatorHash)}).finally(()=>h.tick())));let m;switch(p){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${p} packages`}let y=Ae.pretty(s,e,Ae.Type.CODE);return n.reportInfo($.UNNAMED,`${m} can be deduped using the ${y} strategy`),p})}var um=class extends Le{constructor(){super(...arguments);this.strategy=W.String("-s,--strategy",yu.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:nn(yu)});this.check=W.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd),i=await Nt.find(e);await r.restoreInstallState({restoreResolutions:!1});let n=0,s=await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout,json:this.json},async o=>{n=await qN(r,{strategy:this.strategy,patterns:this.patterns,cache:i,report:o})});return s.hasErrors()?s.exitCode():this.check?n?1:0:(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async a=>{await r.install({cache:i,report:a,mode:this.mode})})).exitCode()}};um.paths=[["dedupe"]],um.usage=Re.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var pae=um;var nb=class extends Le{async execute(){let{plugins:e}=await we.find(this.context.cwd,this.context.plugins),r=[];for(let o of e){let{commands:a}=o[1];if(a){let c=ys.from(a).definitions();r.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=Cae()["@yarnpkg/builder"].bundles.standard;for(let o of r){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} +`)}};nb.paths=[["--clipanion=definitions"]];var mae=nb;var sb=class extends Le{async execute(){this.context.stdout.write(this.cli.usage(null))}};sb.paths=[["help"],["--help"],["-h"]];var Eae=sb;var JN=class extends Le{constructor(){super(...arguments);this.leadingArgument=W.String();this.args=W.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let e=x.resolve(this.context.cwd,H.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}},Iae=JN;var ob=class extends Le{async execute(){this.context.stdout.write(`${Kr||""} +`)}};ob.paths=[["-v"],["--version"]];var yae=ob;var gm=class extends Le{constructor(){super(...arguments);this.commandName=W.String();this.args=W.Proxy()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await ze.find(e,this.context.cwd);return await r.restoreInstallState(),await Zt.executePackageShellcode(i,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};gm.paths=[["exec"]],gm.usage=Re.Usage({description:"execute a shell script",details:` + This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. + + It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});var wae=gm;Is();var fm=class extends Le{constructor(){super(...arguments);this.hash=W.String({required:!1,validator:hp(fp(),[pp(/^p[0-9a-f]{5}$/)])})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash!="undefined"?await F8e(this.hash,r,{stdout:this.context.stdout}):(await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async n=>{var o;let s=[([,a])=>P.stringifyLocator(r.storedPackages.get(a.subject)),([,a])=>P.stringifyIdent(a.requested)];for(let[a,l]of ve.sortMap(r.peerRequirements,s)){let c=r.storedPackages.get(l.subject);if(typeof c=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let u=r.storedPackages.get(l.rootRequester);if(typeof u=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let g=(o=c.dependencies.get(l.requested.identHash))!=null?o:null,f=Ae.pretty(e,a,Ae.Type.CODE),h=P.prettyLocator(e,c),p=P.prettyIdent(e,l.requested),m=P.prettyIdent(e,u),y=l.allRequesters.length-1,b=`descendant${y===1?"":"s"}`,S=y>0?` and ${y} ${b}`:"",k=g!==null?"provides":"doesn't provide";n.reportInfo(null,`${f} \u2192 ${h} ${k} ${p} to ${m}${S}`)}})).exitCode()}};fm.paths=[["explain","peer-requirements"]],fm.usage=Re.Usage({description:"explain a set of peer requirements",details:` + A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. + + When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. + + When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. + + **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});var Bae=fm;async function F8e(t,e,r){let{configuration:i}=e,n=e.peerRequirements.get(t);if(typeof n=="undefined")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Je.start({configuration:i,stdout:r.stdout,includeFooter:!1},async o=>{var b,S;let a=e.storedPackages.get(n.subject);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(b=a.dependencies.get(n.requested.identHash))!=null?b:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g=="undefined")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(k=>{let T=e.storedPackages.get(k);if(typeof T=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let Y=P.devirtualizeLocator(T),j=e.storedPackages.get(Y.locatorHash);if(typeof j=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let Z=j.peerDependencies.get(n.requested.identHash);if(typeof Z=="undefined")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:T,peerDependency:Z}});if(g!==null){let k=f.every(({peerDependency:T})=>Wt.satisfiesWithPrereleases(g.version,T.range));o.reportInfo($.UNNAMED,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(S=g.version)!=null?S:"")}, which ${k?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo($.UNNAMED,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=Ae.mark(i),p=[];for(let{pkg:k,peerDependency:T}of ve.sortMap(f,Y=>P.stringifyLocator(Y.pkg))){let j=(g!==null?Wt.satisfiesWithPrereleases(g.version,T.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(k),prettyLocator:P.prettyLocator(i,k),prettyRange:P.prettyRange(i,T.range),mark:j})}let m=Math.max(...p.map(({stringifiedLocator:k})=>k.length)),y=Math.max(...p.map(({prettyRange:k})=>k.length));for(let{stringifiedLocator:k,prettyLocator:T,prettyRange:Y,mark:j}of ve.sortMap(p,({stringifiedLocator:Z})=>Z))o.reportInfo(null,`${T.padEnd(m+(T.length-k.length)," ")} \u2192 ${Y.padEnd(y," ")} ${j}`);p.length>1&&(o.reportSeparator(),o.reportInfo($.UNNAMED,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}Is();var bae=ge(ri()),hm=class extends Le{constructor(){super(...arguments);this.onlyIfNeeded=W.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let r=()=>{if(typeof Kr=="undefined")throw new Pe("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},i;if(this.version==="self")i=r();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")i=`https://repo.yarnpkg.com/${await pm(e,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")i=`https://repo.yarnpkg.com/${await pm(e,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")i="https://nightly.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))i=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.version))i=`file://${H.resolve(this.version)}`;else if(Wt.satisfiesWithPrereleases(this.version,">=2.0.0"))i=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Wt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))i=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Wt.validRange(this.version))i=`https://repo.yarnpkg.com/${await N8e(e,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new Pe(`Invalid version descriptor "${this.version}"`);return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async s=>{let o="file://",a;i.startsWith(o)?(s.reportInfo($.UNNAMED,`Downloading ${Ae.pretty(e,i,Di.URL)}`),a=await K.readFilePromise(H.toPortablePath(i.slice(o.length)))):(s.reportInfo($.UNNAMED,`Retrieving ${Ae.pretty(e,i,Di.PATH)}`),a=await ir.get(i,{configuration:e})),await WN(e,null,a,{report:s})})).exitCode()}};hm.paths=[["set","version"]],hm.usage=Re.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});var Qae=hm;async function N8e(t,e){let i=(await ir.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(n=>Wt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new Pe(`No matching release found for range ${Ae.pretty(t,e,Ae.Type.RANGE)}.`);return i[0]}async function pm(t,e){let r=await ir.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new Pe(`Tag ${Ae.pretty(t,e,Ae.Type.RANGE)} not found`);return r.latest[e]}async function WN(t,e,r,{report:i}){var g;e===null&&await K.mktempPromise(async f=>{let h=x.join(f,"yarn.cjs");await K.writeFilePromise(h,r);let{stdout:p}=await Fr.execvp(process.execPath,[H.fromPortablePath(h),"--version"],{cwd:f,env:ie(N({},process.env),{YARN_IGNORE_PATH:"1"})});if(e=p.trim(),!bae.default.valid(e))throw new Error(`Invalid semver version. ${Ae.pretty(t,"yarn --version",Ae.Type.CODE)} returned: +${e}`)});let n=(g=t.projectCwd)!=null?g:t.startingCwd,s=x.resolve(n,".yarn/releases"),o=x.resolve(s,`yarn-${e}.cjs`),a=x.relative(t.startingCwd,o),l=x.relative(n,o),c=t.get("yarnPath"),u=c===null||c.startsWith(`${s}/`);if(i.reportInfo($.UNNAMED,`Saving the new release in ${Ae.pretty(t,a,"magenta")}`),await K.removePromise(x.dirname(o)),await K.mkdirPromise(x.dirname(o),{recursive:!0}),await K.writeFilePromise(o,r,{mode:493}),u){await we.updateConfiguration(n,{yarnPath:l});let f=await At.tryFind(n)||new At;f.packageManager=`yarn@${e&&ve.isTaggedYarnVersion(e)?e:await pm(t,"stable")}`;let h={};f.exportTo(h);let p=x.join(n,At.fileName),m=`${JSON.stringify(h,null,f.indent)} +`;await K.changeFilePromise(p,m,{automaticNewlines:!0})}}function vae(t){return $[bI(t)]}var L8e=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function T8e(t){let r=`https://repo.yarnpkg.com/${ve.isTaggedYarnVersion(Kr)?Kr:await pm(t,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await ir.get(r,{configuration:t});return new Map(Array.from(i.toString().matchAll(L8e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=vae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var dm=class extends Le{constructor(){super(...arguments);this.code=W.String({required:!1,validator:hp(fp(),[pp(/^YN[0-9]{4}$/)])});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);if(typeof this.code!="undefined"){let r=vae(this.code),i=Ae.pretty(e,r,Ae.Type.CODE),n=this.cli.format().header(`${this.code} - ${i}`),o=(await T8e(e)).get(this.code),a=typeof o!="undefined"?Ae.jsonOrPretty(this.json,e,Ae.tuple(Ae.Type.MARKDOWN,{text:o,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. + +You can help us by editing this page on GitHub \u{1F642}: +${Ae.jsonOrPretty(this.json,e,Ae.tuple(Ae.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} +`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:r,details:a})} +`):this.context.stdout.write(`${n} + +${a} +`)}else{let r={children:ve.mapAndFilter(Object.entries($),([i,n])=>Number.isNaN(Number(i))?ve.mapAndFilter.skip:{label:qA(Number(i)),value:Ae.tuple(Ae.Type.CODE,n)})};As.emitTree(r,{configuration:e,stdout:this.context.stdout,json:this.json})}}};dm.paths=[["explain"]],dm.usage=Re.Usage({description:"explain an error code",details:` + When the code argument is specified, this command prints its name and its details. + + When used without arguments, this command lists all error codes and their names. + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Sae=dm;var kae=ge(rs()),Cm=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=W.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=W.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=W.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=W.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=W.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=W.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i&&!this.all)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let s=new Set(this.extra);this.cache&&s.add("cache"),this.dependents&&s.add("dependents"),this.manifest&&s.add("manifest");let o=(k,{recursive:T})=>{let Y=k.anchoredLocator.locatorHash,j=new Map,Z=[Y];for(;Z.length>0;){let J=Z.shift();if(j.has(J))continue;let re=r.storedPackages.get(J);if(typeof re=="undefined")throw new Error("Assertion failed: Expected the package to be registered");if(j.set(J,re),P.isVirtualLocator(re)&&Z.push(P.devirtualizeLocator(re).locatorHash),!(!T&&J!==Y))for(let ee of re.dependencies.values()){let A=r.storedResolutions.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");Z.push(A)}}return j.values()},a=({recursive:k})=>{let T=new Map;for(let Y of r.workspaces)for(let j of o(Y,{recursive:k}))T.set(j.locatorHash,j);return T.values()},l=({all:k,recursive:T})=>k&&T?r.storedPackages.values():k?a({recursive:T}):o(i,{recursive:T}),c=({all:k,recursive:T})=>{let Y=l({all:k,recursive:T}),j=this.patterns.map(re=>{let ee=P.parseLocator(re),A=kae.default.makeRe(P.stringifyIdent(ee)),oe=P.isVirtualLocator(ee),le=oe?P.devirtualizeLocator(ee):ee;return X=>{let O=P.stringifyIdent(X);if(!A.test(O))return!1;if(ee.reference==="unknown")return!0;let L=P.isVirtualLocator(X),pe=L?P.devirtualizeLocator(X):X;return!(oe&&L&&ee.reference!==X.reference||le.reference!==pe.reference)}}),Z=ve.sortMap([...Y],re=>P.stringifyLocator(re));return{selection:Z.filter(re=>j.length===0||j.some(ee=>ee(re))),sortedLookup:Z}},{selection:u,sortedLookup:g}=c({all:this.all,recursive:this.recursive});if(u.length===0)throw new Pe("No package matched your request");let f=new Map;if(this.dependents)for(let k of g)for(let T of k.dependencies.values()){let Y=r.storedResolutions.get(T.descriptorHash);if(typeof Y=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");ve.getArrayWithDefault(f,Y).push(k)}let h=new Map;for(let k of g){if(!P.isVirtualLocator(k))continue;let T=P.devirtualizeLocator(k);ve.getArrayWithDefault(h,T.locatorHash).push(k)}let p={},m={children:p},y=e.makeFetcher(),b={project:r,fetcher:y,cache:n,checksums:r.storedChecksums,report:new pi,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},S=[async(k,T,Y)=>{var J,re;if(!T.has("manifest"))return;let j=await y.fetch(k,b),Z;try{Z=await At.find(j.prefixPath,{baseFs:j.packageFs})}finally{(J=j.releaseFs)==null||J.call(j)}Y("Manifest",{License:Ae.tuple(Ae.Type.NO_HINT,Z.license),Homepage:Ae.tuple(Ae.Type.URL,(re=Z.raw.homepage)!=null?re:null)})},async(k,T,Y)=>{var A;if(!T.has("cache"))return;let j={mockedPackages:r.disabledLocators,unstablePackages:r.conditionalLocators},Z=(A=r.storedChecksums.get(k.locatorHash))!=null?A:null,J=n.getLocatorPath(k,Z,j),re;if(J!==null)try{re=K.statSync(J)}catch{}let ee=typeof re!="undefined"?[re.size,Ae.Type.SIZE]:void 0;Y("Cache",{Checksum:Ae.tuple(Ae.Type.NO_HINT,Z),Path:Ae.tuple(Ae.Type.PATH,J),Size:ee})}];for(let k of u){let T=P.isVirtualLocator(k);if(!this.virtuals&&T)continue;let Y={},j={value:[k,Ae.Type.LOCATOR],children:Y};if(p[P.stringifyLocator(k)]=j,this.nameOnly){delete j.children;continue}let Z=h.get(k.locatorHash);typeof Z!="undefined"&&(Y.Instances={label:"Instances",value:Ae.tuple(Ae.Type.NUMBER,Z.length)}),Y.Version={label:"Version",value:Ae.tuple(Ae.Type.NO_HINT,k.version)};let J=(ee,A)=>{let oe={};if(Y[ee]=oe,Array.isArray(A))oe.children=A.map(le=>({value:le}));else{let le={};oe.children=le;for(let[X,O]of Object.entries(A))typeof O!="undefined"&&(le[X]={label:X,value:O})}};if(!T){for(let ee of S)await ee(k,s,J);await e.triggerHook(ee=>ee.fetchPackageInfo,k,s,J)}k.bin.size>0&&!T&&J("Exported Binaries",[...k.bin.keys()].map(ee=>Ae.tuple(Ae.Type.PATH,ee)));let re=f.get(k.locatorHash);typeof re!="undefined"&&re.length>0&&J("Dependents",re.map(ee=>Ae.tuple(Ae.Type.LOCATOR,ee))),k.dependencies.size>0&&!T&&J("Dependencies",[...k.dependencies.values()].map(ee=>{var le;let A=r.storedResolutions.get(ee.descriptorHash),oe=typeof A!="undefined"&&(le=r.storedPackages.get(A))!=null?le:null;return Ae.tuple(Ae.Type.RESOLUTION,{descriptor:ee,locator:oe})})),k.peerDependencies.size>0&&T&&J("Peer dependencies",[...k.peerDependencies.values()].map(ee=>{var X,O;let A=k.dependencies.get(ee.identHash),oe=typeof A!="undefined"&&(X=r.storedResolutions.get(A.descriptorHash))!=null?X:null,le=oe!==null&&(O=r.storedPackages.get(oe))!=null?O:null;return Ae.tuple(Ae.Type.RESOLUTION,{descriptor:ee,locator:le})}))}As.emitTree(m,{configuration:e,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Cm.paths=[["info"]],Cm.usage=Re.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var xae=Cm;var ab=ge(pc());Is();var mm=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=W.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=W.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=W.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=W.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.cacheFolder=W.String("--cache-folder",{hidden:!0});this.frozenLockfile=W.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=W.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=W.Boolean("--non-interactive",{hidden:!0});this.preferOffline=W.Boolean("--prefer-offline",{hidden:!0});this.production=W.Boolean("--production",{hidden:!0});this.registry=W.String("--registry",{hidden:!0});this.silent=W.Boolean("--silent",{hidden:!0});this.networkTimeout=W.String("--network-timeout",{hidden:!0})}async execute(){var g;let e=await we.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds!="undefined"&&e.useWithSource("",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,i=async(f,{error:h})=>{let p=await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async m=>{h?m.reportError($.DEPRECATED_CLI_SETTINGS,f):m.reportWarning($.DEPRECATED_CLI_SETTINGS,f)});return p.hasErrors()?p.exitCode():null};if(typeof this.ignoreEngines!="undefined"){let f=await i("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!ab.default.VERCEL});if(f!==null)return f}if(typeof this.registry!="undefined"){let f=await i("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(f!==null)return f}if(typeof this.preferOffline!="undefined"){let f=await i("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!ab.default.VERCEL});if(f!==null)return f}if(typeof this.production!="undefined"){let f=await i("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(f!==null)return f}if(typeof this.nonInteractive!="undefined"){let f=await i("The --non-interactive option is deprecated",{error:!r});if(f!==null)return f}if(typeof this.frozenLockfile!="undefined"&&(await i("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder!="undefined"){let f=await i("The cache-folder option has been deprecated; use rc settings instead",{error:!ab.default.NETLIFY});if(f!==null)return f}let n=this.mode===di.UpdateLockfile;if(n&&(this.immutable||this.immutableCache))throw new Pe(`${Ae.pretty(e,"--immutable",Ae.Type.CODE)} and ${Ae.pretty(e,"--immutable-cache",Ae.Type.CODE)} cannot be used with ${Ae.pretty(e,"--mode=update-lockfile",Ae.Type.CODE)}`);let s=((g=this.immutable)!=null?g:e.get("enableImmutableInstalls"))&&!n,o=this.immutableCache&&!n;if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{await O8e(e,s)&&(h.reportInfo($.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}if(e.projectCwd!==null&&typeof e.sources.get("nodeLinker")=="undefined"){let f=e.projectCwd,h;try{h=await K.readFilePromise(x.join(f,Pt.lockfile),"utf8")}catch{}if(h==null?void 0:h.includes("yarn lockfile v1")){let p=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async m=>{m.reportInfo($.AUTO_NM_SUCCESS,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),m.reportSeparator(),e.use("",{nodeLinker:"node-modules"},f,{overwrite:!0}),await we.updateConfiguration(f,{nodeLinker:"node-modules"})});if(p.hasErrors())return p.exitCode()}}if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{var p;((p=we.telemetry)==null?void 0:p.isNew)&&(h.reportInfo($.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),h.reportInfo($.TELEMETRY_NOTICE,`Run ${Ae.pretty(e,"yarn config set --home enableTelemetry 0",Ae.Type.CODE)} to disable`),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}let{project:a,workspace:l}=await ze.find(e,this.context.cwd),c=await Nt.find(e,{immutable:o,check:this.checkCache});if(!l)throw new ht(a.cwd,this.context.cwd);return await a.restoreInstallState({restoreResolutions:!1}),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async f=>{await a.install({cache:c,report:f,immutable:s,mode:this.mode})})).exitCode()}};mm.paths=[["install"],Re.Default],mm.usage=Re.Usage({description:"install the project dependencies",details:` + This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: + + - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). + + - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored). + + - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know). + + - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail. + + Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches. + + If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release. + + If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed). + + If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them. + + If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var Pae=mm,M8e="|||||||",K8e=">>>>>>>",U8e="=======",Dae="<<<<<<<";async function O8e(t,e){if(!t.projectCwd)return!1;let r=x.join(t.projectCwd,t.get("lockfileFilename"));if(!await K.existsPromise(r))return!1;let i=await K.readFilePromise(r,"utf8");if(!i.includes(Dae))return!1;if(e)throw new ct($.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let[n,s]=H8e(i),o,a;try{o=Qi(n),a=Qi(s)}catch(c){throw new ct($.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}let l=N(N({},o),a);for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await K.changeFilePromise(r,La(l),{automaticNewlines:!0}),!0}function H8e(t){let e=[[],[]],r=t.split(/\r?\n/g),i=!1;for(;r.length>0;){let n=r.shift();if(typeof n=="undefined")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(Dae)){for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s===U8e){i=!1;break}else if(i||s.startsWith(M8e)){i=!0;continue}else e[0].push(s)}for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(K8e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` +`),e[1].join(` +`)]}var Em=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=W.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=W.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=x.resolve(this.context.cwd,H.toPortablePath(this.destination)),o=await we.find(s,this.context.plugins,{useRc:!1,strict:!1}),{project:a,workspace:l}=await ze.find(o,s);if(r.cwd===a.cwd)throw new Pe("Invalid destination; Can't link the project to itself");if(!l)throw new ht(a.cwd,s);let c=r.topLevelWorkspace,u=[];if(this.all){for(let f of a.workspaces)f.manifest.name&&(!f.manifest.private||this.private)&&u.push(f);if(u.length===0)throw new Pe("No workspace found to be linked in the target project")}else{if(!l.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be linked");if(l.manifest.private&&!this.private)throw new Pe("The target workspace is marked private - use the --private flag to link it anyway");u.push(l)}for(let f of u){let h=P.stringifyIdent(f.locator),p=this.relative?x.relative(r.cwd,f.cwd):f.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${p}`})}return(await Je.start({configuration:e,stdout:this.context.stdout},async f=>{await r.install({cache:n,report:f})})).exitCode()}};Em.paths=[["link"]],Em.usage=Re.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Rae=Em;var Im=class extends Le{constructor(){super(...arguments);this.args=W.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Im.paths=[["node"]],Im.usage=Re.Usage({description:"run node with the hook already setup",details:` + This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + + The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Fae=Im;var Gae=ge(require("os"));var Lae=ge(require("os"));var G8e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function wu(t){let e=await ir.get(G8e,{configuration:t});return Qi(e.toString())}var ym=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{let n=await wu(e);for(let s of Object.entries(n)){let[l,o]=s,a=o,{experimental:c}=a,u=Tr(a,["experimental"]);let g=l;c&&(g+=" [experimental]"),i.reportJson(N({name:l,experimental:c},u)),i.reportInfo(null,g)}})).exitCode()}};ym.paths=[["plugin","list"]],ym.usage=Re.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var Nae=ym;var j8e=/^[0-9]+$/;function Tae(t){return j8e.test(t)?`pull/${t}/head`:t}var Y8e=({repository:t,branch:e},r)=>[["git","init",H.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",Tae(e)],["git","reset","--hard","FETCH_HEAD"]],q8e=({branch:t})=>[["git","fetch","origin","--depth=1",Tae(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],J8e=({plugins:t,noMinify:e},r)=>[["yarn","build:cli",...new Array().concat(...t.map(i=>["--plugin",x.resolve(r,i)])),...e?["--no-minify"]:[],"|"]],wm=class extends Le{constructor(){super(...arguments);this.installPath=W.String("--path",{description:"The path where the repository should be cloned to"});this.repository=W.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=W.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=W.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=W.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=W.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=W.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd),i=typeof this.installPath!="undefined"?x.resolve(this.context.cwd,H.toPortablePath(this.installPath)):x.resolve(H.toPortablePath((0,Lae.tmpdir)()),"yarnpkg-sources",Dn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{await _N(this,{configuration:e,report:s,target:i}),s.reportSeparator(),s.reportInfo($.UNNAMED,"Building a fresh bundle"),s.reportSeparator(),await Bm(J8e(this,i),{configuration:e,context:this.context,target:i}),s.reportSeparator();let o=x.resolve(i,"packages/yarnpkg-cli/bundles/yarn.js"),a=await K.readFilePromise(o);await WN(e,"sources",a,{report:s}),this.skipPlugins||await W8e(this,{project:r,report:s,target:i})})).exitCode()}};wm.paths=[["set","version","from","sources"]],wm.usage=Re.Usage({description:"build Yarn from master",details:` + This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. + + By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. + `,examples:[["Build Yarn from master","$0 set version from sources"]]});var Oae=wm;async function Bm(t,{configuration:e,context:r,target:i}){for(let[n,...s]of t){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await Fr.pipevp(n,s,{cwd:i,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${Ae.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} +`);try{await Fr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw r.stdout.write(a.stdout||a.stack),a}}}}async function _N(t,{configuration:e,report:r,target:i}){let n=!1;if(!t.force&&K.existsSync(x.join(i,".git"))){r.reportInfo($.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await Bm(q8e(t),{configuration:e,context:t.context,target:i}),n=!0}catch(s){r.reportSeparator(),r.reportWarning($.UNNAMED,"Repository update failed; we'll try to regenerate it")}}n||(r.reportInfo($.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await K.removePromise(i),await K.mkdirPromise(i,{recursive:!0}),await Bm(Y8e(t,i),{configuration:e,context:t.context,target:i}))}async function W8e(t,{project:e,report:r,target:i}){let n=await wu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await zN(o,t,{project:e,report:r,target:i})}var Mae=ge(ri()),Kae=ge(require("url")),Uae=ge(require("vm"));var bm=class extends Le{constructor(){super(...arguments);this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,stdout:this.context.stdout},async i=>{let{project:n}=await ze.find(e,this.context.cwd),s,o;if(this.name.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.name)){let a=x.resolve(this.context.cwd,H.toPortablePath(this.name));i.reportInfo($.UNNAMED,`Reading ${Ae.pretty(e,a,Ae.Type.PATH)}`),s=x.relative(n.cwd,a),o=await K.readFilePromise(a)}else{let a;if(this.name.match(/^https?:/)){try{new Kae.URL(this.name)}catch{throw new ct($.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}s=this.name,a=this.name}else{let l=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(l.reference!=="unknown"&&!Mae.default.valid(l.reference))throw new ct($.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let c=P.stringifyIdent(l),u=await wu(e);if(!Object.prototype.hasOwnProperty.call(u,c))throw new ct($.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${c}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);s=c,a=u[c].url,l.reference!=="unknown"?a=a.replace(/\/master\//,`/${c}/${l.reference}/`):Kr!==null&&(a=a.replace(/\/master\//,`/@yarnpkg/cli/${Kr}/`))}i.reportInfo($.UNNAMED,`Downloading ${Ae.pretty(e,a,"green")}`),o=await ir.get(a,{configuration:e})}await VN(s,o,{project:n,report:i})})).exitCode()}};bm.paths=[["plugin","import"]],bm.usage=Re.Usage({category:"Plugin-related commands",description:"download a plugin",details:` + This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. + + Three types of plugin references are accepted: + + - If the plugin is stored within the Yarn repository, it can be referenced by name. + - Third-party plugins can be referenced directly through their public urls. + - Local plugins can be referenced by their path on the disk. + + Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});var Hae=bm;async function VN(t,e,{project:r,report:i}){let{configuration:n}=r,s={},o={exports:s};(0,Uae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=x.resolve(r.cwd,l);i.reportInfo($.UNNAMED,`Saving the new plugin in ${Ae.pretty(n,l,"magenta")}`),await K.mkdirPromise(x.dirname(c),{recursive:!0}),await K.writeFilePromise(c,e);let u={path:l,spec:t};await we.updateConfiguration(r.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let m=typeof p!="string"?p.path:p,y=x.resolve(r.cwd,H.toPortablePath(m)),{name:b}=ve.dynamicRequire(y);b!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),ie(N({},g),{plugins:f})})}var z8e=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],Qm=class extends Le{constructor(){super(...arguments);this.installPath=W.String("--path",{description:"The path where the repository should be cloned to"});this.repository=W.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=W.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=W.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=W.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=typeof this.installPath!="undefined"?x.resolve(this.context.cwd,H.toPortablePath(this.installPath)):x.resolve(H.toPortablePath((0,Gae.tmpdir)()),"yarnpkg-sources",Dn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let{project:s}=await ze.find(e,this.context.cwd),o=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),a=P.stringifyIdent(o),l=await wu(e);if(!Object.prototype.hasOwnProperty.call(l,a))throw new ct($.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${a}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let c=a;await _N(this,{configuration:e,report:n,target:r}),await zN(c,this,{project:s,report:n,target:r})})).exitCode()}};Qm.paths=[["plugin","import","from","sources"]],Qm.usage=Re.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. + + The plugins can be referenced by their short name if sourced from the official Yarn repository. + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});var jae=Qm;async function zN(t,{context:e,noMinify:r},{project:i,report:n,target:s}){let o=t.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo($.UNNAMED,`Building a fresh ${o}`),n.reportSeparator(),await Bm(z8e({pluginName:o,noMinify:r},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=x.resolve(s,`packages/${o}/bundles/${t}.js`),c=await K.readFilePromise(l);await VN(t,c,{project:i,report:n})}var vm=class extends Le{constructor(){super(...arguments);this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=this.name,o=P.parseIdent(s);if(!e.plugins.has(s))throw new Pe(`${P.prettyIdent(e,o)} isn't referenced by the current configuration`);let a=`.yarn/plugins/${s}.cjs`,l=x.resolve(r.cwd,a);K.existsSync(l)&&(n.reportInfo($.UNNAMED,`Removing ${Ae.pretty(e,a,Ae.Type.PATH)}...`),await K.removePromise(l)),n.reportInfo($.UNNAMED,"Updating the configuration..."),await we.updateConfiguration(r.cwd,c=>{if(!Array.isArray(c.plugins))return c;let u=c.plugins.filter(g=>g.path!==a);return c.plugins.length===u.length?c:ie(N({},c),{plugins:u})})})).exitCode()}};vm.paths=[["plugin","remove"]],vm.usage=Re.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. + + **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Yae=vm;var Sm=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{for(let n of e.plugins.keys()){let s=this.context.plugins.plugins.has(n),o=n;s&&(o+=" [builtin]"),i.reportJson({name:n,builtin:s}),i.reportInfo(null,`${o}`)}})).exitCode()}};Sm.paths=[["plugin","runtime"]],Sm.usage=Re.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var qae=Sm;var km=class extends Le{constructor(){super(...arguments);this.idents=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);let s=new Set;for(let a of this.idents)s.add(P.parseIdent(a).identHash);if(await r.restoreInstallState({restoreResolutions:!1}),await r.resolveEverything({cache:n,report:new pi}),s.size>0)for(let a of r.storedPackages.values())s.has(a.identHash)&&r.storedBuildState.delete(a.locatorHash);else r.storedBuildState.clear();return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{await r.install({cache:n,report:a})})).exitCode()}};km.paths=[["rebuild"]],km.usage=Re.Usage({description:"rebuild the project's native packages",details:` + This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. + + Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). + + By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var Jae=km;var XN=ge(rs());Is();var xm=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=this.all?r.workspaces:[i],o=[Hr.REGULAR,Hr.DEVELOPMENT,Hr.PEER],a=[],l=!1,c=[];for(let h of this.patterns){let p=!1,m=P.parseIdent(h);for(let y of s){let b=[...y.manifest.peerDependenciesMeta.keys()];for(let S of(0,XN.default)(b,h))y.manifest.peerDependenciesMeta.delete(S),l=!0,p=!0;for(let S of o){let k=y.manifest.getForScope(S),T=[...k.values()].map(Y=>P.stringifyIdent(Y));for(let Y of(0,XN.default)(T,P.stringifyIdent(m))){let{identHash:j}=P.parseIdent(Y),Z=k.get(j);if(typeof Z=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");y.manifest[S].delete(j),c.push([y,S,Z]),l=!0,p=!0}}}p||a.push(h)}let u=a.length>1?"Patterns":"Pattern",g=a.length>1?"don't":"doesn't",f=this.all?"any":"this";if(a.length>0)throw new Pe(`${u} ${Ae.prettyList(e,a,Di.CODE)} ${g} match any packages referenced by ${f} workspace`);return l?(await e.triggerMultipleHooks(p=>p.afterWorkspaceDependencyRemoval,c),(await Je.start({configuration:e,stdout:this.context.stdout},async p=>{await r.install({cache:n,report:p,mode:this.mode})})).exitCode()):0}};xm.paths=[["remove"]],xm.usage=Re.Usage({description:"remove dependencies from the project",details:` + This command will remove the packages matching the specified patterns from the current workspace. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + + This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Wae=xm;var zae=ge(require("util")),Ab=class extends Le{async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=ve.sortMap(o.keys(),u=>u),l={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,zae.inspect)(g,l)}`)})).exitCode()}};Ab.paths=[["run"]];var _ae=Ab;var Pm=class extends Le{constructor(){super(...arguments);this.inspect=W.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=W.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=W.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=W.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=W.Boolean("--silent",{hidden:!0});this.scriptName=W.String();this.args=W.Proxy()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i,locator:n}=await ze.find(e,this.context.cwd);await r.restoreInstallState();let s=this.topLevel?r.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await Zt.hasPackageScript(s,this.scriptName,{project:r}))return await Zt.executePackageScript(s,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let o=await Zt.getPackageAccessibleBinaries(s,{project:r});if(o.get(this.scriptName)){let l=[];return this.inspect&&(typeof this.inspect=="string"?l.push(`--inspect=${this.inspect}`):l.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?l.push(`--inspect-brk=${this.inspectBrk}`):l.push("--inspect-brk")),await Zt.executePackageAccessibleBinary(s,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:l,packageAccessibleBinaries:o})}if(!this.topLevel&&!this.binariesOnly&&i&&this.scriptName.includes(":")){let c=(await Promise.all(r.workspaces.map(async u=>u.manifest.scripts.has(this.scriptName)?u:null))).filter(u=>u!==null);if(c.length===1)return await Zt.executeWorkspaceScript(c[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}).`);{if(this.scriptName==="global")throw new Pe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let l=[this.scriptName].concat(this.args);for(let[c,u]of Tf)for(let g of u)if(l.length>=g.length&&JSON.stringify(l.slice(0,g.length))===JSON.stringify(g))throw new Pe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${c} plugin. You can install it with "yarn plugin import ${c}".`);throw new Pe(`Couldn't find a script named "${this.scriptName}".`)}}};Pm.paths=[["run"]],Pm.usage=Re.Usage({description:"run a script defined in the package.json",details:` + This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: + + - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. + + - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. + + - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. + + Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Vae=Pm;var Dm=class extends Le{constructor(){super(...arguments);this.save=W.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=W.String();this.resolution=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(await r.restoreInstallState({restoreResolutions:!1}),!i)throw new ht(r.cwd,this.context.cwd);let s=P.parseDescriptor(this.descriptor,!0),o=P.makeDescriptor(s,this.resolution);return r.storedDescriptors.set(s.descriptorHash,s),r.storedDescriptors.set(o.descriptorHash,o),r.resolutionAliases.set(s.descriptorHash,o.descriptorHash),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};Dm.paths=[["set","resolution"]],Dm.usage=Re.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Xae=Dm;var Zae=ge(rs()),Rm=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);let s=r.topLevelWorkspace,o=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:l,reference:c}of s.manifest.resolutions)c.startsWith("portal:")&&o.add(l.descriptor.fullName);if(this.leadingArguments.length>0)for(let l of this.leadingArguments){let c=x.resolve(this.context.cwd,H.toPortablePath(l));if(ve.isPathLike(l)){let u=await we.find(c,this.context.plugins,{useRc:!1,strict:!1}),{project:g,workspace:f}=await ze.find(u,c);if(!f)throw new ht(g.cwd,c);if(this.all){for(let h of g.workspaces)h.manifest.name&&o.add(P.stringifyIdent(h.locator));if(o.size===0)throw new Pe("No workspace found to be unlinked in the target project")}else{if(!f.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be unlinked");o.add(P.stringifyIdent(f.locator))}}else{let u=[...s.manifest.resolutions.map(({pattern:g})=>g.descriptor.fullName)];for(let g of(0,Zae.default)(u,l))o.add(g)}}return s.manifest.resolutions=s.manifest.resolutions.filter(({pattern:l})=>!o.has(l.descriptor.fullName)),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};Rm.paths=[["unlink"]],Rm.usage=Re.Usage({description:"disconnect the local project from another one",details:` + This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var $ae=Rm;var eAe=ge(em()),ZN=ge(rs());Is();var rh=class extends Le{constructor(){super(...arguments);this.interactive=W.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=W.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=W.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=W.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.patterns=W.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=[...r.storedDescriptors.values()],o=s.map(u=>P.stringifyIdent(u)),a=new Set;for(let u of this.patterns){if(P.parseDescriptor(u).range!=="unknown")throw new Pe("Ranges aren't allowed when using --recursive");for(let g of(0,ZN.default)(o,u)){let f=P.parseIdent(g);a.add(f.identHash)}}let l=s.filter(u=>a.has(u.identHash));for(let u of l)r.storedDescriptors.delete(u.descriptorHash),r.storedResolutions.delete(u.descriptorHash);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{await r.install({cache:n,report:u})})).exitCode()}async executeUpClassic(){var m;let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=tm(this,r),a=s?[Vr.KEEP,Vr.REUSE,Vr.PROJECT,Vr.LATEST]:[Vr.PROJECT,Vr.LATEST],l=[],c=[];for(let y of this.patterns){let b=!1,S=P.parseDescriptor(y);for(let k of r.workspaces)for(let T of[Hr.REGULAR,Hr.DEVELOPMENT]){let j=[...k.manifest.getForScope(T).values()].map(Z=>P.stringifyIdent(Z));for(let Z of(0,ZN.default)(j,P.stringifyIdent(S))){let J=P.parseIdent(Z),re=k.manifest[T].get(J.identHash);if(typeof re=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");let ee=P.makeDescriptor(J,S.range);l.push(Promise.resolve().then(async()=>[k,T,re,await rm(ee,{project:r,workspace:k,cache:n,target:T,modifier:o,strategies:a})])),b=!0}}b||c.push(y)}if(c.length>1)throw new Pe(`Patterns ${Ae.prettyList(e,c,Di.CODE)} don't match any packages referenced by any workspace`);if(c.length>0)throw new Pe(`Pattern ${Ae.prettyList(e,c,Di.CODE)} doesn't match any packages referenced by any workspace`);let u=await Promise.all(l),g=await gA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[,,b,{suggestions:S,rejections:k}]of u){let T=S.filter(Y=>Y.descriptor!==null);if(T.length===0){let[Y]=k;if(typeof Y=="undefined")throw new Error("Assertion failed: Expected an error to have been set");let j=this.cli.error(Y);r.configuration.get("enableNetwork")?y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range + +${j}`):y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled) + +${j}`)}else T.length>1&&!s&&y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[];for(let[y,b,,{suggestions:S}]of u){let k,T=S.filter(J=>J.descriptor!==null),Y=T[0].descriptor,j=T.every(J=>P.areDescriptorsEqual(J.descriptor,Y));T.length===1||j?k=Y:(f=!0,{answer:k}=await(0,eAe.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${P.prettyWorkspace(e,y)} \u276F ${b}?`,choices:S.map(({descriptor:J,name:re,reason:ee})=>J?{name:re,hint:ee,descriptor:J}:{name:re,hint:ee,disabled:!0}),onCancel:()=>process.exit(130),result(J){return this.find(J,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Z=y.manifest[b].get(k.identHash);if(typeof Z=="undefined")throw new Error("Assertion failed: This descriptor should have a matching entry");if(Z.descriptorHash!==k.descriptorHash)y.manifest[b].set(k.identHash,k),h.push([y,b,Z,k]);else{let J=e.makeResolver(),re={project:r,resolver:J},ee=J.bindDescriptor(Z,y.anchoredLocator,re);r.forgetResolution(ee)}}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),f&&this.context.stdout.write(` +`),(await Je.start({configuration:e,stdout:this.context.stdout},async y=>{await r.install({cache:n,report:y,mode:this.mode})})).exitCode()}};rh.paths=[["up"]],rh.usage=Re.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),rh.schema=[gv("recursive",mc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var tAe=rh;var Fm=class extends Le{constructor(){super(...arguments);this.recursive=W.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=W.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let n=P.parseIdent(this.package).identHash,s=this.recursive?V8e(r,n,{configuration:e,peers:this.peers}):_8e(r,n,{configuration:e,peers:this.peers});As.emitTree(s,{configuration:e,stdout:this.context.stdout,json:this.json,separators:1})}};Fm.paths=[["why"]],Fm.usage=Re.Usage({description:"display the reason why a package is needed",details:` + This command prints the exact reasons why a package appears in the dependency tree. + + If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});var rAe=Fm;function _8e(t,e,{configuration:r,peers:i}){let n=ve.sortMap(t.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={},c=null;for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=t.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=t.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;if(c===null){let p=P.stringifyLocator(a);s[p]={value:[a,Ae.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},Ae.Type.DEPENDENT]}}}return o}function V8e(t,e,{configuration:r,peers:i}){let n=ve.sortMap(t.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let m=t.storedResolutions.get(p.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=t.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let m=p!==null?Ae.tuple(Ae.Type.DEPENDENT,{locator:f,descriptor:p}):Ae.tuple(Ae.Type.LOCATOR,f),y={},b={value:m,children:y},S=P.stringifyLocator(f);if(h[S]=b,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&t.tryWorkspaceByLocator(f))))for(let k of f.dependencies.values()){if(!i&&f.peerDependencies.has(k.identHash))continue;let T=t.storedResolutions.get(k.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let Y=t.storedPackages.get(T);if(!Y)throw new Error("Assertion failed: The package should have been registered");g(Y,y,k)}};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var cL={};ft(cL,{default:()=>C4e,gitUtils:()=>Bu});var Bu={};ft(Bu,{TreeishProtocols:()=>On,clone:()=>aL,fetchBase:()=>BAe,fetchChangedFiles:()=>bAe,fetchChangedWorkspaces:()=>p4e,fetchRoot:()=>wAe,isGitUrl:()=>nh,lsRemote:()=>yAe,normalizeLocator:()=>nL,normalizeRepoUrl:()=>Nm,resolveUrl:()=>oL,splitRepoUrl:()=>Lm});var rL=ge(CAe()),mAe=ge(rB()),ih=ge(require("querystring")),iL=ge(ri()),EAe=ge(require("url"));function IAe(){return ie(N({},process.env),{GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`})}var h4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],On;(function(n){n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver"})(On||(On={}));function nh(t){return t?h4e.some(e=>!!t.match(e)):!1}function Lm(t){t=Nm(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:On.Head,request:"HEAD"},extra:{}};let r=t.slice(0,e),i=t.slice(e+1);if(i.match(/^[a-z]+=/)){let n=ih.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(On).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s!="undefined"?(o=s,a=n[s]):(o=On.Head,a="HEAD");for(let l of Object.values(On))delete n[l];return{repo:r,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:r,treeish:{protocol:s,request:o},extra:{}}}}function Nm(t,{git:e=!1}={}){var r;if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){t=t.replace(/^git\+([^:]+):/,"$1:");let i;try{i=EAe.default.parse(t)}catch{i=null}i&&i.protocol==="ssh:"&&((r=i.path)==null?void 0:r.startsWith("/:"))&&(t=t.replace(/^ssh:\/\//,""))}return t}function nL(t){return P.makeLocator(t,Nm(t.reference))}async function yAe(t,e){let r=Nm(t,{git:!0});if(!ir.getNetworkSettings(`https://${(0,rL.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${r}' has been blocked because of your configuration settings`);let n=await sL("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:IAe()},{configuration:e,normalizedRepoUrl:r}),s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function oL(t,e){let{repo:r,treeish:{protocol:i,request:n},extra:s}=Lm(t),o=await yAe(r,e),a=(c,u)=>{switch(c){case On.Commit:{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return ih.default.stringify(ie(N({},s),{commit:u}))}case On.Head:{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g=="undefined")throw new Error(`Unknown head ("${u}")`);return ih.default.stringify(ie(N({},s),{commit:g}))}case On.Tag:{let g=o.get(`refs/tags/${u}`);if(typeof g=="undefined")throw new Error(`Unknown tag ("${u}")`);return ih.default.stringify(ie(N({},s),{commit:g}))}case On.Semver:{let g=Wt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,m])=>[iL.default.parse(p.slice(10)),m]).filter(p=>p[0]!==null)),h=iL.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return ih.default.stringify(ie(N({},s),{commit:f.get(h)}))}case null:{let g;if((g=l(On.Commit,u))!==null||(g=l(On.Tag,u))!==null||(g=l(On.Head,u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch(g){return null}};return`${r}#${a(i,n)}`}async function aL(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:i,request:n}}=Lm(t);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=Nm(r,{git:!0});if(ir.getNetworkSettings(`https://${(0,rL.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await K.mktempPromise(),a={cwd:o,env:IAe()};return await sL("cloning the repository",["clone","-c core.autocrlf=false",s,H.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await sL("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function wAe(t){let e=null,r,i=t;do r=i,await K.existsPromise(x.join(r,".git"))&&(e=r),i=x.dirname(r);while(e===null&&i!==r);return e}async function BAe(t,{baseRefs:e}){if(e.length===0)throw new Pe("Can't run this command with zero base refs specified.");let r=[];for(let a of e){let{code:l}=await Fr.execvp("git",["merge-base",a,"HEAD"],{cwd:t});l===0&&r.push(a)}if(r.length===0)throw new Pe(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await Fr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),n=i.trim(),{stdout:s}=await Fr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:t,strict:!0}),o=s.trim();return{hash:n,title:o}}async function bAe(t,{base:e,project:r}){let i=ve.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:n}=await Fr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(t,H.toPortablePath(c))),{stdout:o}=await Fr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(t,H.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!x.relative(r.cwd,c).match(i)):l}async function p4e({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new Pe("This command can only be run from within a Yarn project");let r=[x.resolve(e.cwd,e.configuration.get("cacheFolder")),x.resolve(e.cwd,e.configuration.get("installStatePath")),x.resolve(e.cwd,e.configuration.get("lockfileFilename")),x.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&r.push(o)});let i=await wAe(e.configuration.projectCwd);if(i==null)throw new Pe("This command can only be run on Git repositories");let n=await BAe(i,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),s=await bAe(i,{base:n.hash,project:e});return new Set(ve.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?ve.mapAndFilter.skip:r.some(l=>o.startsWith(l))?ve.mapAndFilter.skip:a}))}async function sL(t,e,r,{configuration:i,normalizedRepoUrl:n}){try{return await Fr.execvp("git",e,ie(N({},r),{strict:!0}))}catch(s){if(!(s instanceof Fr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new ct($.EXCEPTION,`Failed ${t}`,l=>{l.reportError($.EXCEPTION,` ${Ae.prettyField(i,{label:"Repository URL",value:Ae.tuple(Ae.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let f=u==="error"?"Error":`${(0,mAe.default)(u)} Error`;l.reportError($.EXCEPTION,` ${Ae.prettyField(i,{label:f,value:Ae.tuple(Ae.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var AL=class{supports(e,r){return nh(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,n=nL(e),s=new Map(r.checksums);s.set(n.locatorHash,i);let o=ie(N({},r),{checksums:s}),a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,r){return r.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let i=await aL(e.reference,r.project.configuration),n=Lm(e.reference),s=x.join(i,"package.tgz");await Zt.prepareExternalProject(i,s,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:e});let o=await K.readFilePromise(s);return await ve.releaseAfterUseAsync(async()=>await wi.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var lL=class{supportsDescriptor(e,r){return nh(e.range)}supportsLocator(e,r){return nh(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=await oL(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var d4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:ye.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:ye.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:ye.NUMBER,default:2}},fetchers:[AL],resolvers:[lL]};var C4e=d4e;var Tm=class extends Le{constructor(){super(...arguments);this.since=W.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.verbose=W.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{let s=this.since?await Bu.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,o=new Set(s);if(this.recursive)for(let a of[...s].map(l=>l.getRecursiveWorkspaceDependents()))for(let l of a)o.add(l);for(let a of o){let{manifest:l}=a,c;if(this.verbose){let u=new Set,g=new Set;for(let f of At.hardDependencies)for(let[h,p]of l.getForScope(f)){let m=r.tryWorkspaceByDescriptor(p);m===null?r.workspacesByIdent.has(h)&&g.add(p):u.add(m)}c={workspaceDependencies:Array.from(u).map(f=>f.relativeCwd),mismatchedWorkspaceDependencies:Array.from(g).map(f=>P.stringifyDescriptor(f))}}n.reportInfo(null,`${a.relativeCwd}`),n.reportJson(N({location:a.relativeCwd,name:l.name?P.stringifyIdent(l.name):null},c))}})).exitCode()}};Tm.paths=[["workspaces","list"]],Tm.usage=Re.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var QAe=Tm;var Om=class extends Le{constructor(){super(...arguments);this.workspaceName=W.String();this.commandName=W.String();this.args=W.Proxy()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);let n=r.workspaces,s=new Map(n.map(a=>{let l=P.convertToIdent(a.locator);return[P.stringifyIdent(l),a]})),o=s.get(this.workspaceName);if(o===void 0){let a=Array.from(s.keys()).sort();throw new Pe(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + - ${a.join(` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}};Om.paths=[["workspace"]],Om.usage=Re.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + This command will run a given sub-command on a single workspace. + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var vAe=Om;var m4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:ye.BOOLEAN,default:SAe.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:ye.STRING,values:["^","~",""],default:ga.CARET}},commands:[Ose,Kse,eae,gae,Xae,Oae,Qae,QAe,mae,Eae,Iae,yae,Lse,Tse,fae,pae,wae,Bae,Sae,xae,Pae,Rae,$ae,Fae,jae,Hae,Yae,Nae,qae,Jae,Wae,_ae,Vae,tAe,rAe,vAe]},E4e=m4e;var pL={};ft(pL,{default:()=>y4e});var qe={optional:!0},kAe=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:qe,zenObservable:qe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:qe,zenObservable:qe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:qe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:qe,["postcss-jsx"]:qe,["postcss-less"]:qe,["postcss-markdown"]:qe,["postcss-scss"]:qe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:qe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:qe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@*",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:qe,"vue-template-compiler":qe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:qe,"utf-8-validate":qe}}],["react-portal@*",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":qe,"vuetify-loader":qe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":qe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":qe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":qe}}],["consolidate@*",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:qe,tinyliquid:qe,"liquid-node":qe,jade:qe,"then-jade":qe,dust:qe,"dustjs-helpers":qe,"dustjs-linkedin":qe,swig:qe,"swig-templates":qe,"razor-tmpl":qe,atpl:qe,liquor:qe,twig:qe,ejs:qe,eco:qe,jazz:qe,jqtpl:qe,hamljs:qe,hamlet:qe,whiskers:qe,"haml-coffee":qe,"hogan.js":qe,templayed:qe,handlebars:qe,underscore:qe,lodash:qe,pug:qe,"then-pug":qe,qejs:qe,walrus:qe,mustache:qe,just:qe,ect:qe,mote:qe,toffee:qe,dot:qe,"bracket-template":qe,ractive:qe,nunjucks:qe,htmling:qe,"babel-core":qe,plates:qe,"react-dom":qe,react:qe,"arc-templates":qe,vash:qe,slm:qe,marko:qe,teacup:qe,"coffee-script":qe,squirrelly:qe,twing:qe}}],["vue-loader@<=16.3.1",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"}}],["scss-parser@*",{dependencies:{lodash:"^4.17.21"}}],["query-ast@*",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:qe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:qe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":qe,"webpack-command":qe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":qe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":qe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:qe,jimp:qe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":qe,"eslint-import-resolver-typescript":qe,"eslint-import-resolver-webpack":qe,"@typescript-eslint/parser":qe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":qe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":qe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:qe}}],["@vue/eslint-config-typescript@*",{peerDependenciesMeta:{typescript:qe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}]];var gL;function xAe(){return typeof gL=="undefined"&&(gL=require("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),gL}var fL;function PAe(){return typeof fL=="undefined"&&(fL=require("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),fL}var hL;function DAe(){return typeof hL=="undefined"&&(hL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),hL}var RAe=new Map([[P.makeIdent(null,"fsevents").identHash,xAe],[P.makeIdent(null,"resolve").identHash,PAe],[P.makeIdent(null,"typescript").identHash,DAe]]),I4e={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,i]of kAe)e(P.parseDescriptor(r,!0),i)},getBuiltinPatch:async(t,e)=>{var s;let r="compat/";if(!e.startsWith(r))return;let i=P.parseIdent(e.slice(r.length)),n=(s=RAe.get(i.identHash))==null?void 0:s();return typeof n!="undefined"?n:null},reduceDependency:async(t,e,r,i)=>typeof RAe.get(t.identHash)=="undefined"?t:P.makeDescriptor(t,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(t),selector:`~builtin`,params:null}))}},y4e=I4e;var dL={};ft(dL,{default:()=>B4e});var lb=class extends Le{constructor(){super(...arguments);this.pkg=W.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=W.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=W.String();this.args=W.Proxy()}async execute(){let e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");let r=P.parseIdent(this.command),i=P.makeIdent(r.scope,`create-${r.name}`);return this.cli.run(["dlx",...e,P.stringifyIdent(i),...this.args])}};lb.paths=[["create"]];var FAe=lb;var Mm=class extends Le{constructor(){super(...arguments);this.packages=W.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=W.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=W.String();this.args=W.Proxy()}async execute(){return we.telemetry=null,await K.mktempPromise(async e=>{var p;let r=x.join(e,`dlx-${process.pid}`);await K.mkdirPromise(r),await K.writeFilePromise(x.join(r,"package.json"),`{} +`),await K.writeFilePromise(x.join(r,"yarn.lock"),"");let i=x.join(r,".yarnrc.yml"),n=await we.findProjectCwd(this.context.cwd,Pt.lockfile),s=!(await we.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),o=n!==null?x.join(n,".yarnrc.yml"):null;o!==null&&K.existsSync(o)?(await K.copyFilePromise(o,i),await we.updateConfiguration(r,m=>{let y=ie(N({},m),{enableGlobalCache:s,enableTelemetry:!1});return Array.isArray(m.plugins)&&(y.plugins=m.plugins.map(b=>{let S=typeof b=="string"?b:b.path,k=H.isAbsolute(S)?S:H.resolve(H.fromPortablePath(n),S);return typeof b=="string"?k:{path:k,spec:b.spec}})),y})):await K.writeFilePromise(i,`enableGlobalCache: ${s} +enableTelemetry: false +`);let a=(p=this.packages)!=null?p:[this.command],l=P.parseDescriptor(this.command).name,c=await this.cli.run(["add","--",...a],{cwd:r,quiet:this.quiet});if(c!==0)return c;this.quiet||this.context.stdout.write(` +`);let u=await we.find(r,this.context.plugins),{project:g,workspace:f}=await ze.find(u,r);if(f===null)throw new ht(g.cwd,r);await g.restoreInstallState();let h=await Zt.getWorkspaceAccessibleBinaries(f);return h.has(l)===!1&&h.size===1&&typeof this.packages=="undefined"&&(l=Array.from(h)[0][0]),await Zt.executeWorkspaceAccessibleBinary(f,l,this.args,{packageAccessibleBinaries:h,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Mm.paths=[["dlx"]],Mm.usage=Re.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var NAe=Mm;var w4e={commands:[FAe,NAe]},B4e=w4e;var QL={};ft(QL,{default:()=>v4e,fileUtils:()=>CL});var sh=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Km=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Xr="file:";var CL={};ft(CL,{makeArchiveFromLocator:()=>cb,makeBufferFromLocator:()=>IL,makeLocator:()=>EL,makeSpec:()=>LAe,parseSpec:()=>mL});function mL(t){let{params:e,selector:r}=P.parseRange(t),i=H.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function LAe({parentLocator:t,path:e,folderHash:r,protocol:i}){let n=t!==null?{locator:P.stringifyLocator(t)}:{},s=typeof r!="undefined"?{hash:r}:{};return P.makeRange({protocol:i,source:e,selector:e,params:N(N({},s),n)})}function EL(t,{parentLocator:e,path:r,folderHash:i,protocol:n}){return P.makeLocator(t,LAe({parentLocator:e,path:r,folderHash:i,protocol:n}))}async function cb(t,{protocol:e,fetchOptions:r,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(t.reference,{protocol:e}),o=x.isAbsolute(s)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(n,r),a=o.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await ve.releaseAfterUseAsync(async()=>await wi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function IL(t,{protocol:e,fetchOptions:r}){return(await cb(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var yL=class{supports(e,r){return!!e.reference.startsWith(Xr)}getLocalPath(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr});if(x.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:x.resolve(s,n)}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async fetchFromDisk(e,r){return cb(e,{protocol:Xr,fetchOptions:r})}};var b4e=2,wL=class{supportsDescriptor(e,r){return e.range.match(sh)?!0:!!e.range.startsWith(Xr)}supportsLocator(e,r){return!!e.reference.startsWith(Xr)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return sh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=mL(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await IL(P.makeLocator(e,P.makeRange({protocol:Xr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:Xr,fetchOptions:i.fetchOptions}),a=Dn.makeHash(`${b4e}`,o).slice(0,6);return[EL(e,{parentLocator:s,path:n,folderHash:a,protocol:Xr})]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var BL=class{supports(e,r){return Km.test(e.reference)?!!e.reference.startsWith(Xr):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr}),s=x.isAbsolute(n)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.join(o.prefixPath,n),c=await a.readFilePromise(l);return await ve.releaseAfterUseAsync(async()=>await wi.convertToZip(c,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var bL=class{supportsDescriptor(e,r){return Km.test(e.range)?!!(e.range.startsWith(Xr)||sh.test(e.range)):!1}supportsLocator(e,r){return Km.test(e.reference)?!!e.reference.startsWith(Xr):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return sh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range;return n.startsWith(Xr)&&(n=n.slice(Xr.length)),[P.makeLocator(e,`${Xr}${H.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var Q4e={fetchers:[BL,yL],resolvers:[bL,wL]},v4e=Q4e;var SL={};ft(SL,{default:()=>x4e});var TAe=ge(require("querystring")),OAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function MAe(t){return t?OAe.some(e=>!!t.match(e)):!1}function KAe(t){let e;for(let a of OAe)if(e=t.match(a),e)break;if(!e)throw new Error(S4e(t));let[,r,i,n,s="master"]=e,{commit:o}=TAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:r,username:i,reponame:n,treeish:s}}function S4e(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var vL=class{supports(e,r){return!!MAe(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await ir.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await K.mktempPromise(async n=>{let s=new _t(n);await wi.extractArchiveTo(i,s,{stripComponents:1});let o=Bu.splitRepoUrl(e.reference),a=x.join(n,"package.tgz");await Zt.prepareExternalProject(n,a,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let l=await K.readFilePromise(a);return await wi.convertToZip(l,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:i,username:n,reponame:s,treeish:o}=KAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var k4e={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let i=new vL;if(!i.supports(e,r))return null;try{return await i.fetch(e,r)}catch(n){return null}}}},x4e=k4e;var PL={};ft(PL,{default:()=>D4e});var Um=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,Hm=/^https?:/;var kL=class{supports(e,r){return Um.test(e.reference)?!!Hm.test(e.reference):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await ir.get(e.reference,{configuration:r.project.configuration});return await wi.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var xL=class{supportsDescriptor(e,r){return Um.test(e.range)?!!Hm.test(e.range):!1}supportsLocator(e,r){return Um.test(e.reference)?!!Hm.test(e.reference):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var P4e={fetchers:[kL],resolvers:[xL]},D4e=P4e;var NL={};ft(NL,{default:()=>Rze});var gle=ge(ule()),FL=ge(require("util")),Gm=class extends Le{constructor(){super(...arguments);this.private=W.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=W.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=W.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=W.Boolean("-2",!1,{hidden:!0});this.yes=W.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=W.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(e,r):await this.executeRegular(e)}async executeProxy(e,r){if(e.projectCwd!==null&&e.projectCwd!==this.context.cwd)throw new Pe("Cannot use the --install flag from within a project subdirectory");K.existsSync(this.context.cwd)||await K.mkdirPromise(this.context.cwd,{recursive:!0});let i=x.join(this.context.cwd,e.get("lockfileFilename"));K.existsSync(i)||await K.writeFilePromise(i,"");let n=await this.cli.run(["set","version",r],{quiet:!0});if(n!==0)return n;let s=[];return this.private&&s.push("-p"),this.workspace&&s.push("-w"),this.yes&&s.push("-y"),await K.mktempPromise(async o=>{let{code:a}=await Fr.pipevp("yarn",["init",...s],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Zt.makeScriptEnv({binFolder:o})});return a})}async executeRegular(e){var l;let r=null;try{r=(await ze.find(e,this.context.cwd)).project}catch{r=null}K.existsSync(this.context.cwd)||await K.mkdirPromise(this.context.cwd,{recursive:!0});let i=await At.tryFind(this.context.cwd)||new At,n=Object.fromEntries(e.get("initFields").entries());i.load(n),i.name=(l=i.name)!=null?l:P.makeIdent(e.get("initScope"),x.basename(this.context.cwd)),i.packageManager=Kr&&ve.isTaggedYarnVersion(Kr)?`yarn@${Kr}`:null,typeof i.raw.private=="undefined"&&(this.private||this.workspace&&i.workspaceDefinitions.length===0)&&(i.private=!0),this.workspace&&i.workspaceDefinitions.length===0&&(await K.mkdirPromise(x.join(this.context.cwd,"packages"),{recursive:!0}),i.workspaceDefinitions=[{pattern:"packages/*"}]);let s={};i.exportTo(s),FL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,FL.inspect)(s,{depth:Infinity,colors:!0,compact:!1})} +`);let o=x.join(this.context.cwd,At.fileName);await K.changeFilePromise(o,`${JSON.stringify(s,null,2)} +`,{automaticNewlines:!0});let a=x.join(this.context.cwd,"README.md");if(K.existsSync(a)||await K.writeFilePromise(a,`# ${P.stringifyIdent(i.name)} +`),!r||r.cwd===this.context.cwd){let c=x.join(this.context.cwd,Pt.lockfile);K.existsSync(c)||await K.writeFilePromise(c,"");let g=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(y=>`${y} +`).join(""),f=x.join(this.context.cwd,".gitignore");K.existsSync(f)||await K.writeFilePromise(f,g);let h={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,gle.default)(h,e.get("initEditorConfig"));let p=`root = true +`;for(let[y,b]of Object.entries(h)){p+=` +[${y}] +`;for(let[S,k]of Object.entries(b))p+=`${S.replace(/[A-Z]/g,Y=>`_${Y.toLowerCase()}`)} = ${k} +`}let m=x.join(this.context.cwd,".editorconfig");K.existsSync(m)||await K.writeFilePromise(m,p),K.existsSync(x.join(this.context.cwd,".git"))||await Fr.execvp("git",["init"],{cwd:this.context.cwd})}}};Gm.paths=[["init"]],Gm.usage=Re.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var fle=Gm;var Dze={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:ye.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:ye.MAP,valueDefinition:{description:"",type:ye.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:ye.MAP,valueDefinition:{description:"",type:ye.ANY}}},commands:[fle]},Rze=Dze;var KL={};ft(KL,{default:()=>Nze});var EA="portal:",IA="link:";var LL=class{supports(e,r){return!!e.reference.startsWith(EA)}getLocalPath(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:EA});if(x.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:x.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:EA}),s=x.isAbsolute(n)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,s.localPath),localPath:Ke.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot,localPath:l}:{packageFs:new Ra(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot}}};var TL=class{supportsDescriptor(e,r){return!!e.range.startsWith(EA)}supportsLocator(e,r){return!!e.reference.startsWith(EA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(EA.length);return[P.makeLocator(e,`${EA}${H.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var OL=class{supports(e,r){return!!e.reference.startsWith(IA)}getLocalPath(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:IA});if(x.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:x.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:IA}),s=x.isAbsolute(n)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,s.localPath),localPath:Ke.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot,discardFromLookup:!0,localPath:l}:{packageFs:new Ra(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot,discardFromLookup:!0}}};var ML=class{supportsDescriptor(e,r){return!!e.range.startsWith(IA)}supportsLocator(e,r){return!!e.reference.startsWith(IA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(IA.length);return[P.makeLocator(e,`${IA}${H.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){return ie(N({},e),{version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map})}};var Fze={fetchers:[OL,LL],resolvers:[ML,TL]},Nze=Fze;var fT={};ft(fT,{default:()=>j5e});var Mn;(function(i){i[i.REGULAR=0]="REGULAR",i[i.WORKSPACE=1]="WORKSPACE",i[i.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(Mn||(Mn={}));var yA;(function(i){i[i.YES=0]="YES",i[i.NO=1]="NO",i[i.DEPENDS=2]="DEPENDS"})(yA||(yA={}));var UL=(t,e)=>`${t}@${e}`,hle=(t,e)=>{let r=e.indexOf("#"),i=r>=0?e.substring(r+1):e;return UL(t,i)},Io;(function(s){s[s.NONE=-1]="NONE",s[s.PERF=0]="PERF",s[s.CHECK=1]="CHECK",s[s.REASONS=2]="REASONS",s[s.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(Io||(Io={}));var dle=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||r>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:r,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Lze(t,s),l=!1,c=0;do l=HL(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=jm(a);if(HL(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +${u}, next tree: +${jm(a)}`);let f=ple(a);if(f)throw new Error(`${f}, after hoisting finished: +${jm(a)}`)}return s.debugLevel>=2&&console.log(jm(a)),Tze(a)},Oze=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())r.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),r},Mze=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of t)u=g.dependencies.get(c.name),u&&r.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),r},Cle=(t,e)=>{if(e.decoupled)return e;let{name:r,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:m}=e,y={name:r,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(m)},b=y.dependencies.get(r);return b&&b.ident==y.ident&&y.dependencies.set(r,y),t.dependencies.set(y.name,y),y},Kze=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let n of t.dependencies.values())t.peerNames.has(n.name)||r.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!t.peerNames.has(s)){let a=r.get(s);a||(a=[],r.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return r},GL=t=>{let e=new Set,r=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!t.peerNames.has(s)){let o=t.dependencies.get(s);o&&!e.has(o)&&r(o,n)}e.add(i)}};for(let i of t.dependencies.values())t.peerNames.has(i.name)||r(i);return e},HL=(t,e,r,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=Hze(o),l=Kze(o,a),c=t==o?new Map:n.fastLookupPossible?Oze(e):Mze(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),p=new Map;do{let m=Uze(t,e,r,c,h,l,i,p,n);m.isGraphChanged&&(f=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,b]of l)b.length>1&&!o.dependencies.has(y)&&(h.delete(y),b.shift(),h.set(y,b[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!r.has(m.locator)){r.add(m.locator);let y=HL(t,[...e,m],r,p,n);y.isGraphChanged&&(f=!0),y.anotherRoundNeeded&&(g=!0),r.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},Gze=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},jze=(t,e,r,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(y=>Ni(y)).join("\u2192")}`);let h=r[r.length-1],m=!(i.ident===h.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!Gze(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=h.reasons.get(i.name))),m&&(m=!t.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Ni(t.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,b=n.get(i.name);if(y=!b||b.ident===i.ident,l&&!y&&(g=`- filled by: ${Ni(b.locator)} at ${u}`),y)for(let S=r.length-1;S>=1;S--){let T=r[S].dependencies.get(i.name);if(T&&T.ident!==i.ident){y=!1;let Y=a.get(h);Y||(Y=new Set,a.set(h,Y)),Y.add(i.name),l&&(g=`- filled by ${Ni(T.locator)} at ${r.slice(0,S).map(j=>Ni(j.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Ni(o.get(i.name)[0])} at ${u}`)),m){let y=!0,b=new Set(i.peerNames);for(let S=r.length-1;S>=1;S--){let k=r[S];for(let T of b){if(k.peerNames.has(T)&&k.originalDependencies.has(T))continue;let Y=k.dependencies.get(T);Y&&t.dependencies.get(T)!==Y&&(S===r.length-1?f.add(Y):(f=null,y=!1,l&&(g=`- peer dependency ${Ni(Y.locator)} from parent ${Ni(k.locator)} was not hoisted to ${u}`))),b.delete(T)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let b=n.get(y.name)||t.dependencies.get(y.name);if(!b||y.ident!==b.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Ni(y.locator)}, available: ${Ni(b==null?void 0:b.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:m?0:1,reason:g}},ub=t=>`${t.name}@${t.locator}`,Uze=(t,e,r,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(b,S,k,T,Y)=>{if(u.has(T))return;let j=[...S,ub(T)],Z=[...k,ub(T)],J=new Map,re=new Map;for(let X of GL(T)){let O=jze(c,r,[c,...b,T],X,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(re.set(X,O),O.isHoistable===2)for(let L of O.dependsOn){let pe=J.get(L.name)||new Set;pe.add(X.name),J.set(L.name,pe)}}let ee=new Set,A=(X,O,L)=>{if(!ee.has(X)){ee.add(X),re.set(X,{isHoistable:1,reason:L});for(let pe of J.get(X.name)||[])A(T.dependencies.get(pe),O,l.debugLevel>=2?`- peer dependency ${Ni(X.locator)} from parent ${Ni(T.locator)} was not hoisted`:"")}};for(let[X,O]of re)O.isHoistable===1&&A(X,O,O.reason);let oe=!1;for(let X of re.keys())if(!ee.has(X)){f=!0;let O=o.get(T);O&&O.has(X.name)&&(g=!0),oe=!0,T.dependencies.delete(X.name),T.hoistedDependencies.set(X.name,X),T.reasons.delete(X.name);let L=c.dependencies.get(X.name);if(l.debugLevel>=2){let pe=Array.from(S).concat([T.locator]).map(Oe=>Ni(Oe)).join("\u2192"),Ce=c.hoistedFrom.get(X.name);Ce||(Ce=[],c.hoistedFrom.set(X.name,Ce)),Ce.push(pe),T.hoistedTo.set(X.name,Array.from(e).map(Oe=>Ni(Oe.locator)).join("\u2192"))}if(!L)c.ident!==X.ident&&(c.dependencies.set(X.name,X),Y.add(X));else for(let pe of X.references)L.references.add(pe)}if(T.dependencyKind===2&&oe&&(g=!0),l.check){let X=ple(t);if(X)throw new Error(`${X}, after hoisting dependencies of ${[c,...b,T].map(O=>Ni(O.locator)).join("\u2192")}: +${jm(t)}`)}let le=GL(T);for(let X of le)if(ee.has(X)){let O=re.get(X);if((n.get(X.name)===X.ident||!T.reasons.has(X.name))&&O.isHoistable!==0&&T.reasons.set(X.name,O.reason),!X.isHoistBorder&&Z.indexOf(ub(X))<0){u.add(T);let pe=Cle(T,X);h([...b,T],j,Z,pe,m),u.delete(T)}}},p,m=new Set(GL(c)),y=Array.from(e).map(b=>ub(b));do{p=m,m=new Set;for(let b of p){if(b.locator===c.locator||b.isHoistBorder)continue;let S=Cle(c,b);h([],Array.from(r),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},ple=t=>{let e=[],r=new Set,i=new Set,n=(s,o,a)=>{if(r.has(s)||(r.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>Ni(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,m=`${h?` hoisted to ${h}`:""}`,y=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(t,t.dependencies,t),e.join(` +`)},Lze=(t,e)=>{let{identName:r,name:i,reference:n,peerNames:s}=t,o={name:i,references:new Set([n]),locator:UL(r,n),ident:hle(r,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[t,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:m,peerNames:y,hoistPriority:b,dependencyKind:S}=c,k=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([m]),locator:UL(p,m),ident:hle(p,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:k?k.has(h):!1,hoistPriority:b||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=m=>{if(!h.has(m)){h.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||p(y)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of t.dependencies)l(c,o);return o},jL=t=>t.substring(0,t.indexOf("@",1)),Tze=t=>{let e={name:t.name,identName:jL(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),i=(n,s,o)=>{let a=r.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:jL(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){r.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);r.delete(n)}};for(let n of t.dependencies.values())i(n,t,e);return e},Hze=t=>{let e=new Map,r=new Set([t]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!r.has(a);if(n(a).dependents.add(o.ident),!l){r.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||s(t,o);return e},Ni=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let i=t.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(r=`v:${r}`),n.startsWith("workspace")&&(r=`w:${r}`,n=""),`${r}${n?`@${n}`:""}`}else return`${r}`},mle=5e4,jm=t=>{let e=0,r=(n,s,o="")=>{if(e>mle||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+Ni(u.locator)+(g?` ${g}`:"")} +`,l+=r(u,s,`${o}${cmle?` +Tree is too large, part of the tree has been dunped +`:"")};var yo;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(yo||(yo={}));var Kn;(function(i){i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none"})(Kn||(Kn={}));var Ele="node_modules",bu="$wsroot$";var Ym=(t,e)=>{let{packageTree:r,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=Yze(t,e),o=null;if(n.length===0){let a=dle(r,{hoistingLimits:i});o=qze(t,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},fa=t=>`${t.name}@${t.reference}`,YL=t=>{let e=new Map;for(let[r,i]of t.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((i,n)=>{let s=i.split(x.delimiter).length,o=n.split(x.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},Ile=(t,e)=>{let r=P.isVirtualLocator(t)?P.devirtualizeLocator(t):t,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(r,i)},qL=(t,e,r,i)=>{if(t.linkType!==yo.SOFT)return!1;let n=H.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return x.contains(i,n)===null},Jze=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=H.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=t.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=fa(f);if(l.has(p))return;l.add(p);let m=t.getPackageInformation(f);if(m){let y=h?fa(h):"";if(fa(f)!==y&&m.linkType===yo.SOFT&&!qL(m,f,t,i)){let b=yle(m,f,t);(!a.get(b)||f.reference.startsWith("workspace:"))&&a.set(b,f)}for(let[b,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(b)||c(t.getLocator(b,S),f))}};for(let f of o)c(f,null);let u=i.split(x.sep);for(let f of a.values()){let h=t.getPackageInformation(f),m=H.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),y=s;for(let b of m){let S=y.children.get(b);S||(S={children:new Map},y.children.set(b,S)),y=S}y.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=fa(h),m=n.get(p);m||(m=new Set,n.set(p,m)),m.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},Yze=(t,e)=>{let r=[],i=!1,n=new Map,s=Jze(t),o=t.getPackageInformation(t.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=t.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=H.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:Mn.WORKSPACE},u=new Map,g=(h,p)=>`${fa(p)}:${h}`,f=(h,p,m,y,b,S,k,T)=>{var X,O;let Y=g(h,m),j=u.get(Y),Z=!!j;!Z&&m.name===a.name&&m.reference===a.reference&&(j=c,u.set(Y,c));let J=qL(p,m,t,l);if(!j){let L=Mn.REGULAR;J?L=Mn.EXTERNAL_SOFT_LINK:p.linkType===yo.SOFT&&m.name.endsWith(bu)&&(L=Mn.WORKSPACE),j={name:h,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:L===Mn.WORKSPACE?new Set:p.packagePeers,dependencyKind:L},u.set(Y,j)}let re;if(J?re=2:b.linkType===yo.SOFT?re=1:re=0,j.hoistPriority=Math.max(j.hoistPriority||0,re),T&&!J){let L=fa({name:y.identName,reference:y.reference}),pe=n.get(L)||new Set;n.set(L,pe),pe.add(j.name)}let ee=new Map(p.packageDependencies);if(e.project){let L=e.project.workspacesByCwd.get(H.toPortablePath(p.packageLocation.slice(0,-1)));if(L){let pe=new Set([...Array.from(L.manifest.peerDependencies.values(),Ce=>P.stringifyIdent(Ce)),...Array.from(L.manifest.peerDependenciesMeta.keys())]);for(let Ce of pe)ee.has(Ce)||(ee.set(Ce,S.get(Ce)||null),j.peerNames.add(Ce))}}let A=fa({name:m.name.replace(bu,""),reference:m.reference}),oe=s.get(A);if(oe)for(let L of oe)ee.set(`${L.name}${bu}`,L.reference);(p!==b||p.linkType!==yo.SOFT||!J&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(k)))&&y.dependencies.add(j);let le=m!==a&&p.linkType===yo.SOFT&&!m.name.endsWith(bu)&&!J;if(!Z&&!le){let L=new Map;for(let[pe,Ce]of ee)if(Ce!==null){let Oe=t.getLocator(pe,Ce),te=t.getLocator(pe.replace(bu,""),Ce),se=t.getPackageInformation(te);if(se===null)throw new Error("Assertion failed: Expected the package to have been registered");let be=qL(se,Oe,t,l);if(e.validateExternalSoftLinks&&e.project&&be){se.packageDependencies.size>0&&(i=!0);for(let[Se,de]of se.packageDependencies)if(de!==null){let V=P.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Se}@${de}`);if(fa(V)!==fa(Oe)){let Qe=ee.get(Se);if(Qe){let ce=P.parseLocator(Array.isArray(Qe)?`${Qe[0]}@${Qe[1]}`:`${Se}@${Qe}`);Ile(ce,V)||r.push({messageName:$.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Oe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,ce)}`})}else{let ce=L.get(Se);if(ce){let fe=ce.target,gt=P.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Se}@${fe}`);Ile(gt,V)||r.push({messageName:$.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Oe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with dependency ${P.prettyLocator(e.project.configuration,gt)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(ce.portal.name))}`})}else L.set(Se,{target:V.reference,portal:Oe})}}}}let he=(X=e.hoistingLimitsByCwd)==null?void 0:X.get(k),Fe=be?k:x.relative(l,H.toPortablePath(se.packageLocation))||Ke.dot,Ue=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(Fe),xe=he===Kn.DEPENDENCIES||Ue===Kn.DEPENDENCIES||Ue===Kn.WORKSPACES;f(pe,se,Oe,j,p,ee,Fe,xe)}}};return f(a.name,o,a,c,o,o.packageDependencies,Ke.dot,!1),{packageTree:c,hoistingLimits:n,errors:r,preserveSymlinksRequired:i}};function yle(t,e,r){let i=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return H.toPortablePath(i||t.packageLocation)}function Wze(t,e,r){let i=e.getLocator(t.name.replace(bu,""),t.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return r.pnpifyFs?(o=H.toPortablePath(n.packageLocation),s=yo.SOFT):(o=yle(n,t,e),s=n.linkType),{linkType:s,target:o}}var qze=(t,e,r)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=Wze(u,t,r);return{locator:fa(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:Jr(g),name:Jr(f)}:{scope:null,name:Jr(g)}},o=new Set,a=(u,g,f)=>{if(!o.has(u)){o.add(u);for(let h of u.dependencies){if(h===u)continue;let p=Array.from(h.references).sort(),m={name:h.identName,reference:p[0]},{name:y,scope:b}=s(h.name),S=b?[b,y]:[y],k=x.join(g,Ele),T=x.join(k,...S),Y=`${f}/${m.name}`,j=n(m,f,p.slice(1)),Z=!1;if(j.linkType===yo.SOFT&&r.project){let J=r.project.workspacesByCwd.get(j.target.slice(0,-1));Z=!!(J&&!J.manifest.name)}if(!h.name.endsWith(bu)&&!Z){let J=i.get(T);if(J){if(J.dirList)throw new Error(`Assertion failed: ${T} cannot merge dir node with leaf node`);{let oe=P.parseLocator(J.locator),le=P.parseLocator(j.locator);if(J.linkType!==j.linkType)throw new Error(`Assertion failed: ${T} cannot merge nodes with different link types ${J.nodePath}/${P.stringifyLocator(oe)} and ${f}/${P.stringifyLocator(le)}`);if(oe.identHash!==le.identHash)throw new Error(`Assertion failed: ${T} cannot merge nodes with different idents ${J.nodePath}/${P.stringifyLocator(oe)} and ${f}/s${P.stringifyLocator(le)}`);j.aliases=[...j.aliases,...J.aliases,P.parseLocator(J.locator).reference]}}i.set(T,j);let re=T.split("/"),ee=re.indexOf(Ele),A=re.length-1;for(;ee>=0&&A>ee;){let oe=H.toPortablePath(re.slice(0,A).join(x.sep)),le=Jr(re[A]),X=i.get(oe);if(!X)i.set(oe,{dirList:new Set([le])});else if(X.dirList){if(X.dirList.has(le))break;X.dirList.add(le)}A--}}a(h,j.linkType===yo.SOFT?j.target:T,Y)}}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var rT={};ft(rT,{PnpInstaller:()=>ah,PnpLinker:()=>vu,default:()=>C5e,getPnpPath:()=>Dl,jsInstallUtils:()=>ha,pnpUtils:()=>eT,quotePathIfNeeded:()=>qle});var jle=ge(ri()),Yle=ge(require("url"));var wle;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(wle||(wle={}));var er;(function(f){f.DEFAULT="DEFAULT",f.TOP_LEVEL="TOP_LEVEL",f.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",f.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",f.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",f.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",f.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",f.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",f.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",f.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",f.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",f.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"})(er||(er={}));var Ble={[er.DEFAULT]:{collapsed:!1,next:{["*"]:er.DEFAULT}},[er.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:er.FALLBACK_EXCLUSION_LIST,packageRegistryData:er.PACKAGE_REGISTRY_DATA,["*"]:er.DEFAULT}},[er.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{["*"]:er.FALLBACK_EXCLUSION_ENTRIES}},[er.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{["*"]:er.FALLBACK_EXCLUSION_DATA}},[er.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{["*"]:er.DEFAULT}},[er.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_REGISTRY_ENTRIES}},[er.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_STORE_DATA}},[er.PACKAGE_STORE_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_STORE_ENTRIES}},[er.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_INFORMATION_DATA}},[er.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:er.PACKAGE_DEPENDENCIES,["*"]:er.DEFAULT}},[er.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{["*"]:er.PACKAGE_DEPENDENCY}},[er.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{["*"]:er.DEFAULT}}};function zze(t,e,r){let i="";i+="[";for(let n=0,s=t.length;ns(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function Zze(t){let e=new Map,r=qm(t.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of r){let s=e.get(i);typeof s=="undefined"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function $ze(t){return qm(t.fallbackPool||[],([e])=>e)}function e5e(t){let e=[];for(let[r,i]of qm(t.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([r,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of qm(i,([g])=>g===null?"0":`1${g}`)){let g=[];r!==null&&s!==null&&!a.has(r)&&g.push([r,s]);for(let[p,m]of qm(a.entries(),([y])=>y))g.push([p,m]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function Jm(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:Zze(t),fallbackPool:$ze(t),packageRegistryData:e5e(t)}}var kle=ge(Sle());function xle(t,e){return[t?`${t} +`:"",`/* eslint-disable */ + +`,`try { +`,` Object.freeze({}).detectStrictMode = true; +`,`} catch (error) { +`," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n",`} +`,` +`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,e.replace(/^/gm," "),`} +`,` +`,(0,kle.default)()].join("")}function t5e(t){return JSON.stringify(t,null,2)}function r5e(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function i5e(t){return[`return hydrateRuntimeState(JSON.parse(${r5e(Qle(t))}), {basePath: basePath || __dirname}); +`].join("")}function n5e(t){return[`var path = require('path'); +`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(t)}); +`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); +`].join("")}function Ple(t){let e=Jm(t),r=i5e(e);return xle(t.shebang,r)}function Dle(t){let e=Jm(t),r=n5e(t.dataLocation),i=xle(t.shebang,r);return{dataFile:t5e(e),loaderFile:i}}var Nle=ge(require("fs")),c5e=ge(require("path")),Lle=ge(require("util"));function WL(t,{basePath:e}){let r=H.toPortablePath(e),i=x.resolve(r),n=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,s=new Map,o=new Map(t.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var k;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(k=p.discardFromLookup)!=null?k:!1,y={name:g,reference:h},b=s.get(p.packageLocation);b?(b.discardFromLookup=b.discardFromLookup&&m,m||(b.locator=y)):s.set(p.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:m,get packageLocation(){return S||(S=x.join(i,p.packageLocation))}}]}))])),a=new Map(t.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(t.fallbackPool),c=t.dependencyTreeRoots,u=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var Wm=ge(require("module"));function oh(t,e){if(typeof t=="string")return t;if(t){let r,i;if(Array.isArray(t)){for(r=0;r0)return(f=oh(n[g],u))?f.replace("*",c.substring(g.length-1)):Qu(i,c,1)}return Qu(i,c)}}var zL=ge(require("util"));var ur;(function(c){c.API_ERROR="API_ERROR",c.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",c.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",c.MISSING_DEPENDENCY="MISSING_DEPENDENCY",c.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",c.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",c.INTERNAL="INTERNAL",c.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",c.UNSUPPORTED="UNSUPPORTED"})(ur||(ur={}));var o5e=new Set([ur.BUILTIN_NODE_RESOLUTION_FAILED,ur.MISSING_DEPENDENCY,ur.MISSING_PEER_DEPENDENCY,ur.QUALIFIED_PATH_RESOLUTION_FAILED,ur.UNDECLARED_DEPENDENCY]);function ai(t,e,r={},i){i!=null||(i=o5e.has(t)?"MODULE_NOT_FOUND":t);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:ie(N({},n),{value:i}),pnpCode:ie(N({},n),{value:t}),data:ie(N({},n),{value:r})})}function wo(t){return H.normalize(H.fromPortablePath(t))}var a5e=ge(require("fs")),Fle=ge(require("module")),A5e=ge(require("path")),l5e=new Set(Fle.Module.builtinModules||Object.keys(process.binding("natives"))),fb=t=>t.startsWith("node:")||l5e.has(t);function _L(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(t.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let te of["react-scripts","gatsby"]){let se=t.packageRegistry.get(te);if(se)for(let be of se.keys()){if(be===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:te,reference:be})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=t;function p(te,se){return{fn:te,args:se,error:null,result:null}}function m(te){var Ue,xe,Se,de,V,Qe;let se=(Se=(xe=(Ue=process.stderr)==null?void 0:Ue.hasColors)==null?void 0:xe.call(Ue))!=null?Se:process.stdout.isTTY,be=(ce,fe)=>`[${ce}m${fe}`,he=te.error;console.error(he?be("31;1",`\u2716 ${(de=te.error)==null?void 0:de.message.replace(/\n.*/s,"")}`):be("33;1","\u203C Resolution")),te.args.length>0&&console.error();for(let ce of te.args)console.error(` ${be("37;1","In \u2190")} ${(0,zL.inspect)(ce,{colors:se,compact:!0})}`);te.result&&(console.error(),console.error(` ${be("37;1","Out \u2192")} ${(0,zL.inspect)(te.result,{colors:se,compact:!0})}`));let Fe=(Qe=(V=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:V.slice(2))!=null?Qe:[];if(Fe.length>0){console.error();for(let ce of Fe)console.error(` ${be("38;5;244",ce)}`)}console.error()}function y(te,se){if(e.allowDebug===!1)return se;if(Number.isFinite(i)){if(i>=2)return(...be)=>{let he=p(te,be);try{return he.result=se(...be)}catch(Fe){throw he.error=Fe}finally{m(he)}};if(i>=1)return(...be)=>{try{return se(...be)}catch(he){let Fe=p(te,be);throw Fe.error=he,m(Fe),he}}}return se}function b(te){let se=A(te);if(!se)throw ai(ur.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return se}function S(te){if(te.name===null)return!0;for(let se of t.dependencyTreeRoots)if(se.name===te.name&&se.reference===te.reference)return!0;return!1}let k=new Set(["default","node","require"]);function T(te,se=k){let be=X(x.join(te,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(be===null)throw ai(ur.INTERNAL,`The locator that owns the "${te}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:he}=b(be),Fe=x.join(he,Pt.manifest);if(!e.fakeFs.existsSync(Fe))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(Fe,"utf8")),xe=x.contains(he,te);if(xe===null)throw ai(ur.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");a.test(xe)||(xe=`./${xe}`);let Se;try{Se=Rle(Ue,x.normalize(xe),{conditions:se,unsafe:!0})}catch(de){throw ai(ur.EXPORTS_RESOLUTION_FAILED,de.message,{unqualifiedPath:wo(te),locator:be,pkgJson:Ue,subpath:wo(xe),conditions:se},"ERR_PACKAGE_PATH_NOT_EXPORTED")}return typeof Se=="string"?x.join(he,Se):null}function Y(te,se,{extensions:be}){let he;try{se.push(te),he=e.fakeFs.statSync(te)}catch(Fe){}if(he&&!he.isDirectory())return e.fakeFs.realpathSync(te);if(he&&he.isDirectory()){let Fe;try{Fe=JSON.parse(e.fakeFs.readFileSync(x.join(te,Pt.manifest),"utf8"))}catch(xe){}let Ue;if(Fe&&Fe.main&&(Ue=x.resolve(te,Fe.main)),Ue&&Ue!==te){let xe=Y(Ue,se,{extensions:be});if(xe!==null)return xe}}for(let Fe=0,Ue=be.length;Fe{let Se=JSON.stringify(xe.name);if(he.has(Se))return;he.add(Se);let de=oe(xe);for(let V of de)if(b(V).packagePeers.has(te))Fe(V);else{let ce=be.get(V.name);typeof ce=="undefined"&&be.set(V.name,ce=new Set),ce.add(V.reference)}};Fe(se);let Ue=[];for(let xe of[...be.keys()].sort())for(let Se of[...be.get(xe)].sort())Ue.push({name:xe,reference:Se});return Ue}function X(te,{resolveIgnored:se=!1,includeDiscardFromLookup:be=!1}={}){if(J(te)&&!se)return null;let he=x.relative(t.basePath,te);he.match(s)||(he=`./${he}`),he.endsWith("/")||(he=`${he}/`);do{let Fe=h.get(he);if(typeof Fe=="undefined"||Fe.discardFromLookup&&!be){he=he.substring(0,he.lastIndexOf("/",he.length-2)+1);continue}return Fe.locator}while(he!=="");return null}function O(te,se,{considerBuiltins:be=!0}={}){if(te==="pnpapi")return H.toPortablePath(e.pnpapiResolution);if(be&&fb(te))return null;let he=wo(te),Fe=se&&wo(se);if(se&&J(se)&&(!x.isAbsolute(te)||X(te)===null)){let Se=Z(te,se);if(Se===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${he}" +Required by: ${Fe} +`,{request:he,issuer:Fe});return H.toPortablePath(Se)}let Ue,xe=te.match(n);if(xe){if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let[,Se,de]=xe,V=X(se);if(!V){let Gt=Z(te,se);if(Gt===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${he}" +Required by: ${Fe} +`,{request:he,issuer:Fe});return H.toPortablePath(Gt)}let ce=b(V).packageDependencies.get(Se),fe=null;if(ce==null&&V.name!==null){let Gt=t.fallbackExclusionList.get(V.name);if(!Gt||!Gt.has(V.reference)){for(let Ti=0,Vs=c.length;TiS(Qr))?gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${Se} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${Se}${Se!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) +${Gt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} +`).join("")} +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se,brokenAncestors:Gt}):gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${Se} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${Se}${Se!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) + +${Gt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} +`).join("")} +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se,brokenAncestors:Gt})}else ce===void 0&&(!be&&fb(te)?S(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${Se}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Se} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${Se}${Se!==he?` (via "${he}")`:""} +Required by: ${Fe} +`,{request:he,issuer:Fe,dependencyName:Se}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${Se}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Se} isn't otherwise declared in ${V.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${Se}${Se!==he?` (via "${he}")`:""} +Required by: ${Fe} +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se}):S(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${Se}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${Se}${Se!==he?` (via "${he}")`:""} +Required by: ${Fe} +`,{request:he,issuer:Fe,dependencyName:Se}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${Se}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${Se}${Se!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se}));if(ce==null){if(fe===null||gt===null)throw gt||new Error("Assertion failed: Expected an error to have been set");ce=fe;let Gt=gt.message.replace(/\n.*/g,"");gt.message=Gt,!u.has(Gt)&&i!==0&&(u.add(Gt),process.emitWarning(gt))}let Ht=Array.isArray(ce)?{name:ce[0],reference:ce[1]}:{name:Se,reference:ce},Mt=b(Ht);if(!Mt.packageLocation)throw ai(ur.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${Ht.name}@${Ht.reference}${Ht.name!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) +`,{request:he,issuer:Fe,dependencyLocator:Object.assign({},Ht)});let mi=Mt.packageLocation;de?Ue=x.join(mi,de):Ue=mi}else if(x.isAbsolute(te))Ue=x.normalize(te);else{if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let Se=x.resolve(se);se.match(o)?Ue=x.normalize(x.join(Se,te)):Ue=x.normalize(x.join(x.dirname(Se),te))}return x.normalize(Ue)}function L(te,se,be=k){if(s.test(te))return se;let he=T(se,be);return he?x.normalize(he):se}function pe(te,{extensions:se=Object.keys(Wm.Module._extensions)}={}){var Fe,Ue;let be=[],he=Y(te,be,{extensions:se});if(he)return x.normalize(he);{let xe=wo(te),Se=X(te);if(Se){let{packageLocation:de}=b(Se),V=!0;try{e.fakeFs.accessSync(de)}catch(Qe){if((Qe==null?void 0:Qe.code)==="ENOENT")V=!1;else{let ce=((Ue=(Fe=Qe==null?void 0:Qe.message)!=null?Fe:Qe)!=null?Ue:"empty exception thrown").replace(/^[A-Z]/,fe=>fe.toLowerCase());throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Required package exists but could not be accessed (${ce}). + +Missing package: ${Se.name}@${Se.reference} +Expected package location: ${wo(de)} +`,{unqualifiedPath:xe,extensions:se})}}if(!V){let Qe=de.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`${Qe} + +Missing package: ${Se.name}@${Se.reference} +Expected package location: ${wo(de)} +`,{unqualifiedPath:xe,extensions:se})}}throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${xe} +${be.map(de=>`Not found: ${wo(de)} +`).join("")}`,{unqualifiedPath:xe,extensions:se})}}function Ce(te,se,{considerBuiltins:be,extensions:he,conditions:Fe}={}){try{let Ue=O(te,se,{considerBuiltins:be});if(te==="pnpapi")return Ue;if(Ue===null)return null;let xe=()=>se!==null?J(se):!1,Se=(!be||!fb(te))&&!xe()?L(te,Ue,Fe):Ue;return pe(Se,{extensions:he})}catch(Ue){throw Object.prototype.hasOwnProperty.call(Ue,"pnpCode")&&Object.assign(Ue.data,{request:wo(te),issuer:se&&wo(se)}),Ue}}function Oe(te){let se=x.normalize(te),be=Wr.resolveVirtual(se);return be!==se?be:null}return{VERSIONS:re,topLevel:ee,getLocator:(te,se)=>Array.isArray(se)?{name:se[0],reference:se[1]}:{name:te,reference:se},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let te=[];for(let[se,be]of f)for(let he of be.keys())se!==null&&he!==null&&te.push({name:se,reference:he});return te},getPackageInformation:te=>{let se=A(te);if(se===null)return null;let be=H.fromPortablePath(se.packageLocation);return ie(N({},se),{packageLocation:be})},findPackageLocator:te=>X(H.toPortablePath(te)),resolveToUnqualified:y("resolveToUnqualified",(te,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=O(H.toPortablePath(te),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveUnqualified:y("resolveUnqualified",(te,se)=>H.fromPortablePath(pe(H.toPortablePath(te),se))),resolveRequest:y("resolveRequest",(te,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=Ce(H.toPortablePath(te),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveVirtual:y("resolveVirtual",te=>{let se=Oe(H.toPortablePath(te));return se!==null?H.fromPortablePath(se):null})}}var YQt=(0,Lle.promisify)(Nle.readFile);var Tle=(t,e,r)=>{let i=Jm(t),n=WL(i,{basePath:e}),s=H.join(e,Pt.pnpCjs);return _L(n,{fakeFs:r,pnpapiResolution:s})};var XL=ge(Mle());var ha={};ft(ha,{checkAndReportManifestCompatibility:()=>Ule,checkManifestCompatibility:()=>Kle,extractBuildScripts:()=>hb,getExtractHint:()=>ZL,hasBindingGyp:()=>$L});function Kle(t){return P.isPackageCompatible(t,Wg.getArchitectureSet())}function Ule(t,e,{configuration:r,report:i}){return Kle(t)?!0:(i==null||i.reportWarningOnce($.INCOMPATIBLE_ARCHITECTURE,`${P.prettyLocator(r,t)} The ${Wg.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function hb(t,e,r,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([ls.SCRIPT,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([ls.SHELLCODE,"node-gyp rebuild"]),s.length===0?[]:t.linkType!==Qt.HARD?(n==null||n.reportWarningOnce($.SOFT_LINK_BUILD,`${P.prettyLocator(i,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):r&&r.built===!1?(n==null||n.reportInfoOnce($.BUILD_DISABLED,`${P.prettyLocator(i,t)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!r.built?(n==null||n.reportWarningOnce($.DISABLED_BUILD_SCRIPTS,`${P.prettyLocator(i,t)} lists build scripts, but all build scripts have been disabled.`),[]):Ule(t,"build",{configuration:i,report:n})?s:[]}var u5e=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function ZL(t){return t.packageFs.getExtractHint({relevantExtensions:u5e})}function $L(t){let e=x.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var eT={};ft(eT,{getUnpluggedPath:()=>zm});function zm(t,{configuration:e}){return x.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(t))}var g5e=new Set([P.makeIdent(null,"nan").identHash,P.makeIdent(null,"node-gyp").identHash,P.makeIdent(null,"node-pre-gyp").identHash,P.makeIdent(null,"node-addon-api").identHash,P.makeIdent(null,"fsevents").identHash]),vu=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=Dl(r.project).cjs;if(!K.existsSync(i))throw new Pe(`The project in ${Ae.pretty(r.project.configuration,`${r.project.cwd}/package.json`,Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=ve.getFactoryWithDefault(this.pnpCache,i,()=>ve.dynamicRequire(i,{cachingStrategy:ve.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return H.toPortablePath(o.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let i=Dl(r.project).cjs;if(!K.existsSync(i))return null;let s=ve.getFactoryWithDefault(this.pnpCache,i,()=>ve.dynamicRequire(i,{cachingStrategy:ve.CachingStrategy.FsTime})).findPackageLocator(H.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new ah(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},ah=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new ve.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,r,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!==Qt.SOFT,g,f;if(c||u){let k=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(k.locatorHash),typeof g=="undefined"&&(g=await f5e(r),e.linkType===Qt.HARD&&this.customData.store.set(k.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),f=this.opts.project.getDependencyMeta(k,e.version)}let h=c?hb(e,g,f,{configuration:this.opts.project.configuration,report:this.opts.report}):[],p=u?await this.unplugPackageIfNeeded(e,g,r,f,i):r.packageFs;if(x.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let m=x.resolve(p.getRealPath(),r.prefixPath),y=tT(this.opts.project.cwd,m),b=new Map,S=new Set;if(a){for(let k of e.peerDependencies.values())b.set(P.stringifyIdent(k),null),S.add(P.stringifyIdent(k));if(!o){let k=P.devirtualizeLocator(e);this.virtualTemplates.set(k.locatorHash,{location:tT(this.opts.project.cwd,Wr.resolveVirtual(m)),locator:k})}}return ve.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:b,packagePeers:S,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:m,buildDirective:h.length>0?h:null}}async attachInternalDependencies(e,r){let i=this.getPackageInformation(e);for(let[n,s]of r){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,r){for(let i of r)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Dl(this.opts.project);if(K.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning($.UNNAMED,`Removing the old ${Ae.pretty(this.opts.project.configuration,Pt.pnpJs,Ae.Type.PATH)} file. You might need to manually update existing references to reference the new ${Ae.pretty(this.opts.project.configuration,Pt.pnpCjs,Ae.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${Ae.pretty(this.opts.project.configuration,"yarn sdks",Ae.Type.CODE)}.`),await K.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await K.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await K.removePromise(e.cjs),await K.removePromise(this.opts.project.configuration.get("pnpDataPath")),await K.removePromise(e.esmLoader);return}for(let{locator:u,location:g}of this.virtualTemplates.values())ve.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=r!=="none",s=[],o=new Map,a=ve.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=Dl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning($.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await K.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=Ple(e);await K.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await K.removePromise(i)}else{let o=x.relative(x.dirname(r.cjs),i),{dataFile:a,loaderFile:l}=Dle(ie(N({},e),{dataLocation:o}));await K.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await K.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning($.UNNAMED,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await K.changeFilePromise(r.esmLoader,(0,XL.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await K.removePromise(s);else for(let o of await K.readdirPromise(s)){let a=x.resolve(s,o);this.unpluggedPaths.has(a)||await K.removePromise(a)}}async locateNodeModules(e){let r=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=x.join(n.cwd,"node_modules");if(i&&i.test(x.relative(this.opts.project.cwd,n.cwd))||!K.existsSync(s))continue;let o=await K.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)r.push(s);else for(let l of a)r.push(x.join(s,l.name))}return r}async unplugPackageIfNeeded(e,r,i,n,s){return this.shouldBeUnplugged(e,r,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,r,i){return typeof i.unplugged!="undefined"?i.unplugged:g5e.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(hb(e,r,i,{configuration:this.opts.project.configuration}).length>0||r.misc.extractHint)}async unplugPackage(e,r,i){let n=zm(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Da(n,{baseFs:r.packageFs,pathUtils:x}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=x.join(n,r.prefixPath,".ready");await K.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await K.mkdirPromise(n,{recursive:!0}),await K.copyPromise(n,Ke.dot,{baseFs:r.packageFs,overwrite:!1}),await K.writeFilePromise(s,""))})),new _t(n))}getPackageInformation(e){let r=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(r);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let r=ve.getMapWithDefault(this.packageRegistry,"@@disk"),i=tT(this.opts.project.cwd,e);return ve.getFactoryWithDefault(r,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1}))}};function tT(t,e){let r=x.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function f5e(t){var i;let e=(i=await At.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?i:new At,r=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())r.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:ZL(t),hasBindingGyp:$L(t)}}}var Hle=ge(rs());var _m=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);if(e.get("nodeLinker")!=="pnp")throw new Pe("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let s=new Set(this.patterns),o=this.patterns.map(f=>{let h=P.parseDescriptor(f),p=h.range!=="unknown"?h:P.makeDescriptor(h,"*");if(!Wt.validRange(p.range))throw new Pe(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(e,p)})`);return m=>{let y=P.stringifyIdent(m);return!Hle.default.isMatch(y,P.stringifyIdent(p))||m.version&&!Wt.satisfiesWithPrereleases(m.version,p.range)?!1:(s.delete(f),!0)}}),a=()=>{let f=[];for(let h of r.storedPackages.values())!r.tryWorkspaceByLocator(h)&&!P.isVirtualLocator(h)&&o.some(p=>p(h))&&f.push(h);return f},l=f=>{let h=new Set,p=[],m=(y,b)=>{if(!h.has(y.locatorHash)&&(h.add(y.locatorHash),!r.tryWorkspaceByLocator(y)&&o.some(S=>S(y))&&p.push(y),!(b>0&&!this.recursive)))for(let S of y.dependencies.values()){let k=r.storedResolutions.get(S.descriptorHash);if(!k)throw new Error("Assertion failed: The resolution should have been registered");let T=r.storedPackages.get(k);if(!T)throw new Error("Assertion failed: The package should have been registered");m(T,b+1)}};for(let y of f){let b=r.storedPackages.get(y.anchoredLocator.locatorHash);if(!b)throw new Error("Assertion failed: The package should have been registered");m(b,0)}return p},c,u;if(this.all&&this.recursive?(c=a(),u="the project"):this.all?(c=l(r.workspaces),u="any workspace"):(c=l([i]),u="this workspace"),s.size>1)throw new Pe(`Patterns ${Ae.prettyList(e,s,Ae.Type.CODE)} don't match any packages referenced by ${u}`);if(s.size>0)throw new Pe(`Pattern ${Ae.prettyList(e,s,Ae.Type.CODE)} doesn't match any packages referenced by ${u}`);return c=ve.sortMap(c,f=>P.stringifyLocator(f)),(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async f=>{var h;for(let p of c){let m=(h=p.version)!=null?h:"unknown",y=r.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(p,m));y.unplugged=!0,f.reportInfo($.UNNAMED,`Will unpack ${P.prettyLocator(e,p)} to ${Ae.pretty(e,zm(p,{configuration:e}),Ae.Type.PATH)}`),f.reportJson({locator:P.stringifyLocator(p),version:m})}await r.topLevelWorkspace.persistManifest(),f.reportSeparator(),await r.install({cache:n,report:f})})).exitCode()}};_m.paths=[["unplug"]],_m.usage=Re.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var Gle=_m;var Dl=t=>({cjs:x.join(t.cwd,Pt.pnpCjs),cjsLegacy:x.join(t.cwd,Pt.pnpJs),esmLoader:x.join(t.cwd,".pnp.loader.mjs")}),qle=t=>/\s/.test(t)?JSON.stringify(t):t;async function h5e(t,e,r){let i=Dl(t),n=`--require ${qle(H.fromPortablePath(i.cjs))}`;if(K.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,Yle.pathToFileURL)(H.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&jle.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(K.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function p5e(t,e){let r=Dl(t);e(r.cjs),e(r.esmLoader),e(t.configuration.get("pnpDataPath")),e(t.configuration.get("pnpUnpluggedFolder"))}var d5e={hooks:{populateYarnPaths:p5e,setupScriptEnvironment:h5e},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:ye.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:ye.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:ye.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:ye.STRING,default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:ye.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:ye.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:ye.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:ye.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:ye.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[vu],commands:[Gle]},C5e=d5e;var Xle=ge(Vle());var aT=ge(require("crypto")),Zle=ge(require("fs")),$le=1,Gr="node_modules",pb=".bin",ece=".yarn-state.yml",Li;(function(i){i.CLASSIC="classic",i.HARDLINKS_LOCAL="hardlinks-local",i.HARDLINKS_GLOBAL="hardlinks-global"})(Li||(Li={}));var AT=class{constructor(){this.installStateCache=new Map}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=r.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await ve.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lT(r.project,{unrollAliases:!0}));if(n===null)throw new Pe("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let a=new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw a.code="LOCATOR_NOT_INSTALLED",a}let o=r.project.configuration.startingCwd;return s.locations.find(a=>x.contains(o,a))||s.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let i=await ve.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lT(r.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=db(x.resolve(e),{skipPrefix:r.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new tce(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},tce=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,r){var u;let i=x.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n=="undefined"&&(n=await N5e(e,r),e.linkType===Qt.HARD&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${H.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=r.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,r){let i=this.localStore.get(e.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of r){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Wr({baseFs:new Es({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),r=await lT(this.opts.project),i=this.opts.project.configuration.get("nmMode");(r===null||i!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=ve.validateEnum(Kn,(m=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?m:h)}catch(y){let b=P.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning($.INVALID_MANIFEST,`${b}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Kn).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(m=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?m:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:P.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(H.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:P.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>H.fromPortablePath(Wr.resolveVirtual(H.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=Ym(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=YL(a);await L5e(r,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=P.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(rce(f))continue;let p=P.parseLocator(f),m=this.localStore.get(p.locatorHash);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=ha.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning($.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${Ae.pretty(this.opts.project.configuration,"--preserve-symlinks",Ae.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function N5e(t,e){var n;let r=(n=await At.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new At,i=new Set(["preinstall","install","postinstall"]);for(let s of r.scripts.keys())i.has(s)||r.scripts.delete(s);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{extractHint:ha.getExtractHint(e),hasBindingGyp:ha.hasBindingGyp(e)}}}async function T5e(t,e,r,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,s+=`# cause your node_modules installation to become invalidated. +`,s+=` +`,s+=`__metadata: +`,s+=` version: ${$le} +`,s+=` nmMode: ${i.value} +`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` +`,s+=`${JSON.stringify(u)}: +`,s+=` locations: +`;for(let f of g.locations){let h=x.contains(t.cwd,f);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` - ${JSON.stringify(h)} +`}if(g.aliases.length>0){s+=` aliases: +`;for(let f of g.aliases)s+=` - ${JSON.stringify(f)} +`}if(u===a&&r.size>0){s+=` bin: +`;for(let[f,h]of r){let p=x.contains(t.cwd,f);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` ${JSON.stringify(p)}: +`;for(let[m,y]of h){let b=x.relative(x.join(f,Gr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(b)} +`}}}}let l=t.cwd,c=x.join(l,Gr,ece);n&&await K.removePromise(c),await K.changeFilePromise(c,s,{automaticNewlines:!0})}async function lT(t,{unrollAliases:e=!1}={}){let r=t.cwd,i=x.join(r,Gr,ece),n;try{n=await K.statPromise(i)}catch(c){}if(!n)return null;let s=Qi(await K.readFilePromise(i,"utf8"));if(s.__metadata.version>$le)return null;let o=s.__metadata.nmMode||Li.CLASSIC,a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>x.join(r,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let m=x.join(r,H.toPortablePath(h)),y=ve.getMapWithDefault(l,m);for(let[b,S]of Object.entries(p))y.set(Jr(b),H.toPortablePath([m,Gr,S].join(x.sep)))}if(a.set(c,{target:Ke.dot,linkType:Qt.HARD,locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:m}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(p,m),h),b=P.stringifyLocator(y);a.set(b,{target:Ke.dot,linkType:Qt.HARD,locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:ice(a,{skipPrefix:t.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var lh=async(t,e)=>{if(t.split(x.sep).indexOf(Gr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop){let i=e.allowSymlink?await K.statPromise(t):await K.lstatPromise(t);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await K.unlinkPromise(t);return}}let r=await K.readdirPromise(t,{withFileTypes:!0});for(let i of r){let n=x.join(t,Jr(i.name));i.isDirectory()?(i.name!==Gr||e&&e.innerLoop)&&await lh(n,{innerLoop:!0,contentsOnly:!1}):await K.unlinkPromise(n)}e.contentsOnly||await K.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},nce=4,db=(t,{skipPrefix:e})=>{let r=x.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let i=r.split(x.sep).filter(l=>l!==""),n=i.indexOf(Gr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},ice=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let i=()=>({children:new Map,linkType:Qt.HARD});for(let[n,s]of t.entries()){if(s.linkType===Qt.SOFT&&x.contains(e,s.target)!==null){let a=ve.getFactoryWithDefault(r,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=db(o,{skipPrefix:e}),c=ve.getFactoryWithDefault(r,a,i);for(let u=0;u{let r;try{process.platform==="win32"&&(r=await K.lstatPromise(t))}catch(i){}process.platform=="win32"&&(!r||r.isDirectory())?await K.symlinkPromise(t,e,"junction"):await K.symlinkPromise(x.relative(x.dirname(e),t),e)};async function sce(t,e,r){let i=x.join(t,Jr(`${aT.default.randomBytes(16).toString("hex")}.tmp`));try{await K.writeFilePromise(i,r);try{await K.linkPromise(i,e)}catch(n){}}finally{await K.unlinkPromise(i)}}async function O5e({srcPath:t,dstPath:e,srcMode:r,globalHardlinksStore:i,baseFs:n,nmMode:s,digest:o}){if(s.value===Li.HARDLINKS_GLOBAL&&i&&o){let l=x.join(i,o.substring(0,2),`${o.substring(2)}.dat`),c;try{if(await Dn.checksumFile(l,{baseFs:K,algorithm:"sha1"})!==o){let g=x.join(i,Jr(`${aT.default.randomBytes(16).toString("hex")}.tmp`));await K.renamePromise(l,g);let f=await n.readFilePromise(t);await K.writeFilePromise(g,f);try{await K.linkPromise(g,l),await K.unlinkPromise(g)}catch(h){}}await K.linkPromise(l,e),c=!0}catch(u){c=!1}if(!c){let u=await n.readFilePromise(t);await sce(i,l,u);try{await K.linkPromise(l,e)}catch(g){g&&g.code&&g.code=="EXDEV"&&(s.value=Li.HARDLINKS_LOCAL,await n.copyFilePromise(t,e))}}}else await n.copyFilePromise(t,e);let a=r&511;a!==420&&await K.chmodPromise(e,a)}var Rl;(function(i){i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink"})(Rl||(Rl={}));var M5e=async(t,e,{baseFs:r,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await K.mkdirPromise(t,{recursive:!0});let o=async(l=Ke.dot)=>{let c=x.join(e,l),u=await r.readdirPromise(c,{withFileTypes:!0}),g=new Map;for(let f of u){let h=x.join(l,f.name),p,m=x.join(c,f.name);if(f.isFile()){if(p={kind:Rl.FILE,mode:(await r.lstatPromise(m)).mode},n.value===Li.HARDLINKS_GLOBAL){let y=await Dn.checksumFile(m,{baseFs:r,algorithm:"sha1"});p.digest=y}}else if(f.isDirectory())p={kind:Rl.DIRECTORY};else if(f.isSymbolicLink())p={kind:Rl.SYMLINK,symlinkTo:await r.readlinkPromise(m)};else throw new Error(`Unsupported file type (file: ${m}, mode: 0o${await r.statSync(m).mode.toString(8).padStart(6,"0")})`);if(g.set(h,p),f.isDirectory()&&h!==Gr){let y=await o(h);for(let[b,S]of y)g.set(b,S)}}return g},a;if(n.value===Li.HARDLINKS_GLOBAL&&i&&s){let l=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await K.readFilePromise(l,"utf8"))))}catch(c){a=await o(),await sce(i,l,Buffer.from(JSON.stringify(Object.fromEntries(a))))}}else a=await o();for(let[l,c]of a){let u=x.join(e,l),g=x.join(t,l);c.kind===Rl.DIRECTORY?await K.mkdirPromise(g,{recursive:!0}):c.kind===Rl.FILE?await O5e({srcPath:u,dstPath:g,srcMode:c.mode,digest:c.digest,nmMode:n,baseFs:r,globalHardlinksStore:i}):c.kind===Rl.SYMLINK&&await cT(x.resolve(x.dirname(g),c.symlinkTo),g)}};function K5e(t,e,r,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,f,h)=>{let p=!0,m=x.join(c,u),y=new Set;if(u===Gr||u.startsWith("@")){let S;try{S=K.statSync(m)}catch(T){}p=!!S,S?S.mtimeMs>r?(a=!0,y=new Set(K.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let k=e.get(c);if(k){let T=x.join(c,Gr,pb),Y;try{Y=K.statSync(T)}catch(j){}if(!Y)a=!0;else if(Y.mtimeMs>r){a=!0;let j=new Set(K.readdirSync(T)),Z=new Map;s.set(c,Z);for(let[J,re]of k)j.has(J)&&Z.set(J,re)}else s.set(c,k)}}else p=h.has(u);let b=g.children.get(u);if(p){let{linkType:S,locator:k}=b,T={children:new Map,linkType:S,locator:k};if(f.children.set(u,T),k){let Y=ve.getSetWithDefault(o,k);Y.add(m),o.set(k,Y)}for(let Y of b.children.keys())l(m,Y,b,T,y)}else b.locator&&i.storedBuildState.delete(P.parseLocator(b.locator).locatorHash)};for(let[c,u]of t){let{linkType:g,locator:f}=u,h={children:new Map,linkType:g,locator:f};if(n.set(c,h),f){let p=ve.getSetWithDefault(o,u.locator);p.add(c),o.set(u.locator,p)}u.children.has(Gr)&&l(c,Gr,u,h,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function rce(t){let e=P.parseDescriptor(t);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function U5e(t,e,r,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of t){let c=rce(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=x.join(l[0],f);f!==""&&K.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=x.contains(r,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let m=x.join(a,H.toPortablePath(p));u.set(Jr(h),m)}for(let[h,p]of c.children){let m=x.join(a,h),y=o(m,m,p);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[f,h]of c.children){let p=o(x.join(a,f),l,h);for(let[m,y]of p)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var oce=(t,e)=>{if(!t||!e)return t===e;let r=P.parseLocator(t);P.isVirtualLocator(r)&&(r=P.devirtualizeLocator(r));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(r,i)};function uT(t){return x.join(t.get("globalFolder"),"store")}async function L5e(t,e,{baseFs:r,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=x.join(i.cwd,Gr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=K5e(t.locationTree,t.binSymlinks,t.mtimeMs,i),f=ice(e,{skipPrefix:i.cwd}),h=[],p=async({srcDir:J,dstDir:re,linkType:ee,globalHardlinksStore:A,nmMode:oe,packageChecksum:le})=>{let X=(async()=>{try{ee===Qt.SOFT?(await K.mkdirPromise(x.dirname(re),{recursive:!0}),await cT(x.resolve(J),re)):await M5e(re,J,{baseFs:r,globalHardlinksStore:A,nmMode:oe,packageChecksum:le})}catch(O){throw O.message=`While persisting ${J} -> ${re} ${O.message}`,O}finally{T.tick()}})().then(()=>h.splice(h.indexOf(X),1));h.push(X),h.length>nce&&await Promise.race(h)},m=async(J,re,ee)=>{let A=(async()=>{let oe=async(le,X,O)=>{try{O.innerLoop||await K.mkdirPromise(X,{recursive:!0});let L=await K.readdirPromise(le,{withFileTypes:!0});for(let pe of L){if(!O.innerLoop&&pe.name===pb)continue;let Ce=x.join(le,pe.name),Oe=x.join(X,pe.name);pe.isDirectory()?(pe.name!==Gr||O&&O.innerLoop)&&(await K.mkdirPromise(Oe,{recursive:!0}),await oe(Ce,Oe,ie(N({},O),{innerLoop:!0}))):Z.value===Li.HARDLINKS_LOCAL||Z.value===Li.HARDLINKS_GLOBAL?await K.linkPromise(Ce,Oe):await K.copyFilePromise(Ce,Oe,Zle.default.constants.COPYFILE_FICLONE)}}catch(L){throw O.innerLoop||(L.message=`While cloning ${le} -> ${X} ${L.message}`),L}finally{O.innerLoop||T.tick()}};await oe(J,re,ee)})().then(()=>h.splice(h.indexOf(A),1));h.push(A),h.length>nce&&await Promise.race(h)},y=async(J,re,ee)=>{if(ee)for(let[A,oe]of re.children){let le=ee.children.get(A);await y(x.join(J,A),oe,le)}else{re.children.has(Gr)&&await lh(x.join(J,Gr),{contentsOnly:!1});let A=x.basename(J)===Gr&&f.has(x.join(x.dirname(J),x.sep));await lh(J,{contentsOnly:J===a,allowSymlink:A})}};for(let[J,re]of l){let ee=f.get(J);for(let[A,oe]of re.children){if(A===".")continue;let le=ee&&ee.children.get(A),X=x.join(J,A);await y(X,oe,le)}}let b=async(J,re,ee)=>{if(ee){oce(re.locator,ee.locator)||await lh(J,{contentsOnly:re.linkType===Qt.HARD});for(let[A,oe]of re.children){let le=ee.children.get(A);await b(x.join(J,A),oe,le)}}else{re.children.has(Gr)&&await lh(x.join(J,Gr),{contentsOnly:!0});let A=x.basename(J)===Gr&&f.has(x.join(x.dirname(J),x.sep));await lh(J,{contentsOnly:re.linkType===Qt.HARD,allowSymlink:A})}};for(let[J,re]of f){let ee=l.get(J);for(let[A,oe]of re.children){if(A===".")continue;let le=ee&&ee.children.get(A);await b(x.join(J,A),oe,le)}}let S=new Map,k=[];for(let[J,re]of u)for(let ee of re){let{locationRoot:A,segments:oe}=db(ee,{skipPrefix:i.cwd}),le=f.get(A),X=A;if(le){for(let O of oe)if(X=x.join(X,O),le=le.children.get(O),!le)break;if(le){let O=oce(le.locator,J),L=e.get(le.locator),pe=L.target,Ce=X,Oe=L.linkType;if(O)S.has(pe)||S.set(pe,Ce);else if(pe!==Ce){let te=P.parseLocator(le.locator);P.isVirtualLocator(te)&&(te=P.devirtualizeLocator(te)),k.push({srcDir:pe,dstDir:Ce,linkType:Oe,realLocatorHash:te.locatorHash})}}}}for(let[J,{locations:re}]of e.entries())for(let ee of re){let{locationRoot:A,segments:oe}=db(ee,{skipPrefix:i.cwd}),le=l.get(A),X=f.get(A),O=A,L=e.get(J),pe=P.parseLocator(J);P.isVirtualLocator(pe)&&(pe=P.devirtualizeLocator(pe));let Ce=pe.locatorHash,Oe=L.target,te=ee;if(Oe===te)continue;let se=L.linkType;for(let be of oe)X=X.children.get(be);if(!le)k.push({srcDir:Oe,dstDir:te,linkType:se,realLocatorHash:Ce});else for(let be of oe)if(O=x.join(O,be),le=le.children.get(be),!le){k.push({srcDir:Oe,dstDir:te,linkType:se,realLocatorHash:Ce});break}}let T=Ji.progressViaCounter(k.length),Y=n.reportProgress(T),j=i.configuration.get("nmMode"),Z={value:j};try{let J=Z.value===Li.HARDLINKS_GLOBAL?`${uT(i.configuration)}/v1`:null;if(J&&!await K.existsPromise(J)){await K.mkdirpPromise(J);for(let ee=0;ee<256;ee++)await K.mkdirPromise(x.join(J,ee.toString(16).padStart(2,"0")))}for(let ee of k)(ee.linkType===Qt.SOFT||!S.has(ee.srcDir))&&(S.set(ee.srcDir,ee.dstDir),await p(ie(N({},ee),{globalHardlinksStore:J,nmMode:Z,packageChecksum:o.get(ee.realLocatorHash)||null})));await Promise.all(h),h.length=0;for(let ee of k){let A=S.get(ee.srcDir);ee.linkType!==Qt.SOFT&&ee.dstDir!==A&&await m(A,ee.dstDir,{nmMode:Z})}await Promise.all(h),await K.mkdirPromise(a,{recursive:!0});let re=await U5e(e,f,i.cwd,{loadManifest:s});await H5e(c,re,i.cwd),await T5e(i,e,re,Z,{installChangedByUser:g}),j==Li.HARDLINKS_GLOBAL&&Z.value==Li.HARDLINKS_LOCAL&&n.reportWarningOnce($.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{Y.stop()}}async function H5e(t,e,r){for(let i of t.keys()){if(x.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=x.join(i,Gr,pb);await K.removePromise(n)}}for(let[i,n]of e){if(x.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=x.join(i,Gr,pb),o=t.get(i)||new Map;await K.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await K.removePromise(x.join(s,a)),process.platform==="win32"&&await K.removePromise(x.join(s,Jr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=x.join(s,a);c!==l&&(process.platform==="win32"?await(0,Xle.default)(H.fromPortablePath(l),H.fromPortablePath(u),{createPwshFile:!1}):(await K.removePromise(u),await cT(l,u),x.contains(r,await K.realpathPromise(l))!==null&&await K.chmodPromise(l,493)))}}}var gT=class extends vu{constructor(){super(...arguments);this.mode="loose"}makeInstaller(e){return new ace(e)}},ace=class extends ah{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(e){let r=new Wr({baseFs:new Es({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),i=Tle(e,this.opts.project.cwd,r),{tree:n,errors:s}=Ym(i,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:u,text:g}of s)this.opts.report.reportError(u,g);return}let o=new Map;e.fallbackPool=o;let a=(u,g)=>{let f=P.parseLocator(g.locator),h=P.stringifyIdent(f);h===u?o.set(u,f.reference):o.set(u,[h,f.reference])},l=x.join(this.opts.project.cwd,Pt.nodeModules),c=n.get(l);if(typeof c!="undefined"){if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let u of c.dirList){let g=x.join(l,u),f=n.get(g);if(typeof f=="undefined")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in f)a(u,f);else for(let h of f.dirList){let p=x.join(g,h),m=n.get(p);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in m)a(`${u}/${h}`,m);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var G5e={hooks:{cleanGlobalArtifacts:async t=>{let e=uT(t);await K.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:ye.STRING,values:[Kn.WORKSPACES,Kn.DEPENDENCIES,Kn.NONE],default:Kn.NONE},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:ye.STRING,values:[Li.CLASSIC,Li.HARDLINKS_LOCAL,Li.HARDLINKS_GLOBAL],default:Li.CLASSIC},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:ye.BOOLEAN,default:!0}},linkers:[AT,gT]},j5e=G5e;var gO={};ft(gO,{default:()=>XVe,npmConfigUtils:()=>br,npmHttpUtils:()=>zt,npmPublishUtils:()=>Bh});var gce=ge(ri());var Cr="npm:";var zt={};ft(zt,{AuthType:()=>cs,customPackageError:()=>J5e,del:()=>_5e,get:()=>Bo,getIdentUrl:()=>Nl,handleInvalidAuthenticationError:()=>Fl,post:()=>W5e,put:()=>z5e});var cce=ge(em()),uce=ge(require("url"));var br={};ft(br,{RegistryType:()=>wA,getAuditRegistry:()=>Y5e,getAuthConfiguration:()=>pT,getDefaultRegistry:()=>Cb,getPublishRegistry:()=>Ace,getRegistryConfiguration:()=>lce,getScopeConfiguration:()=>hT,getScopeRegistry:()=>BA,normalizeRegistry:()=>pa});var wA;(function(i){i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry"})(wA||(wA={}));function pa(t){return t.replace(/\/$/,"")}function Y5e(t,{configuration:e}){let r=e.get(wA.AUDIT_REGISTRY);return r!==null?pa(r):Ace(t,{configuration:e})}function Ace(t,{configuration:e}){var r;return((r=t.publishConfig)==null?void 0:r.registry)?pa(t.publishConfig.registry):t.name?BA(t.name.scope,{configuration:e,type:wA.PUBLISH_REGISTRY}):Cb({configuration:e,type:wA.PUBLISH_REGISTRY})}function BA(t,{configuration:e,type:r=wA.FETCH_REGISTRY}){let i=hT(t,{configuration:e});if(i===null)return Cb({configuration:e,type:r});let n=i.get(r);return n===null?Cb({configuration:e,type:r}):pa(n)}function Cb({configuration:t,type:e=wA.FETCH_REGISTRY}){let r=t.get(e);return pa(r!==null?r:t.get(wA.FETCH_REGISTRY))}function lce(t,{configuration:e}){let r=e.get("npmRegistries"),i=pa(t),n=r.get(i);if(typeof n!="undefined")return n;let s=r.get(i.replace(/^[a-z]+:/,""));return typeof s!="undefined"?s:null}function hT(t,{configuration:e}){if(t===null)return null;let i=e.get("npmScopes").get(t);return i||null}function pT(t,{configuration:e,ident:r}){let i=r&&hT(r.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:lce(t,{configuration:e})||e}var cs;(function(n){n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(cs||(cs={}));async function Fl(t,{attemptedAs:e,registry:r,headers:i,configuration:n}){var s,o;if(mb(t))throw new ct($.AUTHENTICATION_INVALID,"Invalid OTP token");if(((s=t.originalError)==null?void 0:s.name)==="HTTPError"&&((o=t.originalError)==null?void 0:o.response.statusCode)===401)throw new ct($.AUTHENTICATION_INVALID,`Invalid authentication (${typeof e!="string"?`as ${await q5e(r,i,{configuration:n})}`:`attempted as ${e}`})`)}function J5e(t){var e;return((e=t.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Nl(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}async function Bo(t,a){var l=a,{configuration:e,headers:r,ident:i,authType:n,registry:s}=l,o=Tr(l,["configuration","headers","ident","authType","registry"]);if(i&&typeof s=="undefined"&&(s=BA(i.scope,{configuration:e})),i&&i.scope&&typeof n=="undefined"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Eb(s,{authType:n,configuration:e,ident:i});c&&(r=ie(N({},r),{authorization:c}));try{return await ir.get(t.charAt(0)==="/"?`${s}${t}`:t,N({configuration:e,headers:r},o))}catch(u){throw await Fl(u,{registry:s,configuration:e,headers:r}),u}}async function W5e(t,e,u){var g=u,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Tr(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=BA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await Eb(a,{authType:o,configuration:i,ident:s});f&&(n=ie(N({},n),{authorization:f})),l&&(n=N(N({},n),ch(l)));try{return await ir.post(a+t,e,N({configuration:i,headers:n},c))}catch(h){if(!mb(h)||l)throw await Fl(h,{attemptedAs:r,registry:a,configuration:i,headers:n}),h;l=await dT();let p=N(N({},n),ch(l));try{return await ir.post(`${a}${t}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Fl(m,{attemptedAs:r,registry:a,configuration:i,headers:n}),m}}}async function z5e(t,e,u){var g=u,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Tr(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=BA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await Eb(a,{authType:o,configuration:i,ident:s});f&&(n=ie(N({},n),{authorization:f})),l&&(n=N(N({},n),ch(l)));try{return await ir.put(a+t,e,N({configuration:i,headers:n},c))}catch(h){if(!mb(h))throw await Fl(h,{attemptedAs:r,registry:a,configuration:i,headers:n}),h;l=await dT();let p=N(N({},n),ch(l));try{return await ir.put(`${a}${t}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Fl(m,{attemptedAs:r,registry:a,configuration:i,headers:n}),m}}}async function _5e(t,c){var u=c,{attemptedAs:e,configuration:r,headers:i,ident:n,authType:s=3,registry:o,otp:a}=u,l=Tr(u,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(n&&typeof o=="undefined"&&(o=BA(n.scope,{configuration:r})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let g=await Eb(o,{authType:s,configuration:r,ident:n});g&&(i=ie(N({},i),{authorization:g})),a&&(i=N(N({},i),ch(a)));try{return await ir.del(o+t,N({configuration:r,headers:i},l))}catch(f){if(!mb(f)||a)throw await Fl(f,{attemptedAs:e,registry:o,configuration:r,headers:i}),f;a=await dT();let h=N(N({},i),ch(a));try{return await ir.del(`${o}${t}`,N({configuration:r,headers:h},l))}catch(p){throw await Fl(p,{attemptedAs:e,registry:o,configuration:r,headers:i}),p}}}async function Eb(t,{authType:e=2,configuration:r,ident:i}){let n=pT(t,{configuration:r,ident:i}),s=V5e(n,e);if(!s)return null;let o=await r.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new ct($.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function V5e(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function q5e(t,e,{configuration:r}){var i;if(typeof e=="undefined"||typeof e.authorization=="undefined")return"an anonymous user";try{return(i=(await ir.get(new uce.URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function dT(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";let{otp:t}=await(0,cce.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return t}function mb(t){var e,r;if(((e=t.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((r=t.originalError)==null?void 0:r.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch(i){return!1}}function ch(t){return{["npm-otp"]:t}}var CT=class{supports(e,r){if(!e.reference.startsWith(Cr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!gce.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await Bo(i.__archiveUrl,{configuration:r.project.configuration,ident:e});return await wi.convertToZip(n,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var mT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Cr)||!P.tryParseDescriptor(e.range.slice(Cr.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){let i=P.parseDescriptor(e.range.slice(Cr.length),!0);return r.resolver.getResolutionDependencies(i,r)}async getCandidates(e,r,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return await i.resolver.getCandidates(n,r,i)}async getSatisfying(e,r,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return i.resolver.getSatisfying(n,r,i)}resolve(e,r){throw new Error("Unreachable")}};var fce=ge(ri()),hce=ge(require("url"));var bo=class{supports(e,r){if(!e.reference.startsWith(Cr))return!1;let i=new hce.URL(e.reference);return!(!fce.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i;try{i=await Bo(bo.getLocatorUrl(e),{configuration:r.project.configuration,ident:e})}catch(n){i=await Bo(bo.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:r.project.configuration,ident:e})}return await wi.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:i}){let n=BA(e.scope,{configuration:i}),s=bo.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===n+s||r===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Wt.clean(e.reference.slice(Cr.length));if(r===null)throw new ct($.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${Nl(e)}/-/${e.name}-${r}.tgz`}};var pce=ge(ri());var Ib=P.makeIdent(null,"node-gyp"),X5e=/\b(node-gyp|prebuild-install)\b/,ET=class{supportsDescriptor(e,r){return e.range.startsWith(Cr)?!!Wt.validRange(e.range.slice(Cr.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Cr))return!1;let{selector:i}=P.parseRange(e.reference);return!!pce.default.valid(i)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);let s=await Bo(Nl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=ve.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Wt.SemVer(c);if(n.test(u))return u}catch{}return ve.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${Cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return bo.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,r,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);return ve.mapAndFilter(r,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:Cr}),a=new Wt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return ve.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,r){let{selector:i}=P.parseRange(e.reference),n=Wt.clean(i);if(n===null)throw new ct($.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let s=await Bo(Nl(e),{configuration:r.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new ct($.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new ct($.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);let o=new At;if(o.load(s.versions[n]),!o.dependencies.has(Ib.identHash)&&!o.peerDependencies.has(Ib.identHash)){for(let a of o.scripts.values())if(a.match(X5e)){o.dependencies.set(Ib.identHash,P.makeDescriptor(Ib,"latest")),r.report.reportWarningOnce($.NODE_GYP_INJECTED,`${P.prettyLocator(r.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(r.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;r.report.reportWarningOnce($.DEPRECATED_PACKAGE,l)}return ie(N({},e),{version:n,languageName:"node",linkType:Qt.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var IT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Cr)||!qg.test(e.range.slice(Cr.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(Cr.length),s=await Bo(Nl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new ct($.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new ct($.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${Cr}${a}`),c=s.versions[a].dist.tarball;return bo.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Unreachable")}};var Bh={};ft(Bh,{getGitHead:()=>_Ve,makePublishBody:()=>zVe});var AO={};ft(AO,{default:()=>PVe,packUtils:()=>SA});var SA={};ft(SA,{genPackList:()=>Gb,genPackStream:()=>aO,genPackageManifest:()=>jue,hasPackScripts:()=>sO,prepareForPack:()=>oO});var nO=ge(rs()),Hue=ge(Uue()),Gue=ge(require("zlib")),EVe=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],IVe=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function sO(t){return!!(Zt.hasWorkspaceScript(t,"prepack")||Zt.hasWorkspaceScript(t,"postpack"))}async function oO(t,{report:e},r){await Zt.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let i=x.join(t.cwd,At.fileName);await K.existsPromise(i)&&await t.manifest.loadFile(i,{baseFs:K}),await r()}finally{await Zt.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function aO(t,e){var s,o;typeof e=="undefined"&&(e=await Gb(t));let r=new Set;for(let a of(o=(s=t.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)r.add(x.normalize(a));for(let a of t.manifest.bin.values())r.add(x.normalize(a));let i=Hue.default.pack();process.nextTick(async()=>{for(let a of e){let l=x.normalize(a),c=x.resolve(t.cwd,l),u=x.join("package",l),g=await K.lstatPromise(c),f={name:u,mtime:new Date(Dr.SAFE_TIME*1e3)},h=r.has(l)?493:420,p,m,y=new Promise((S,k)=>{p=S,m=k}),b=S=>{S?m(S):p()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await jue(t),null,2)):S=await K.readFilePromise(c),i.entry(ie(N({},f),{mode:h,type:"file"}),S,b)}else g.isSymbolicLink()?i.entry(ie(N({},f),{mode:h,type:"symlink",linkname:await K.readlinkPromise(c)}),b):b(new Error(`Unsupported file type ${g.mode} for ${H.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Gue.createGzip)();return i.pipe(n),n}async function jue(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function Gb(t){var g,f,h,p,m,y,b,S;let e=t.project,r=e.configuration,i={accept:[],reject:[]};for(let k of IVe)i.reject.push(k);for(let k of EVe)i.accept.push(k);i.reject.push(r.get("rcFilename"));let n=k=>{if(k===null||!k.startsWith(`${t.cwd}/`))return;let T=x.relative(t.cwd,k),Y=x.resolve(Ke.root,T);i.reject.push(Y)};n(x.resolve(e.cwd,r.get("lockfileFilename"))),n(r.get("cacheFolder")),n(r.get("globalFolder")),n(r.get("installStatePath")),n(r.get("virtualFolder")),n(r.get("yarnPath")),await r.triggerHook(k=>k.populateYarnPaths,e,k=>{n(k)});for(let k of e.workspaces){let T=x.relative(t.cwd,k.cwd);T!==""&&!T.match(/^(\.\.)?\//)&&i.reject.push(`/${T}`)}let s={accept:[],reject:[]},o=(f=(g=t.manifest.publishConfig)==null?void 0:g.main)!=null?f:t.manifest.main,a=(p=(h=t.manifest.publishConfig)==null?void 0:h.module)!=null?p:t.manifest.module,l=(y=(m=t.manifest.publishConfig)==null?void 0:m.browser)!=null?y:t.manifest.browser,c=(S=(b=t.manifest.publishConfig)==null?void 0:b.bin)!=null?S:t.manifest.bin;o!=null&&s.accept.push(x.resolve(Ke.root,o)),a!=null&&s.accept.push(x.resolve(Ke.root,a)),typeof l=="string"&&s.accept.push(x.resolve(Ke.root,l));for(let k of c.values())s.accept.push(x.resolve(Ke.root,k));if(l instanceof Map)for(let[k,T]of l.entries())s.accept.push(x.resolve(Ke.root,k)),typeof T=="string"&&s.accept.push(x.resolve(Ke.root,T));let u=t.manifest.files!==null;if(u){s.reject.push("/*");for(let k of t.manifest.files)Yue(s.accept,k,{cwd:Ke.root})}return await yVe(t.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function yVe(t,{hasExplicitFileList:e,globalList:r,ignoreList:i}){let n=[],s=new Ra(t),o=[[Ke.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!Jue(a,{globalList:r,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Ke.root)for(let m of u)g=g||m===".gitignore",f=f||m===".npmignore";let h=f?await que(s,a,".npmignore"):g?await que(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;Jue(a,{globalList:r,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([x.resolve(a,m),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(x.relative(Ke.root,a))}return n.sort()}async function que(t,e,r){let i={accept:[],reject:[]},n=await t.readFilePromise(x.join(e,r),"utf8");for(let s of n.split(/\n/g))Yue(i.reject,s,{cwd:e});return i}function wVe(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=x.resolve(e,t)),r&&(t=`!${t}`),t}function Yue(t,e,{cwd:r}){let i=e.trim();i===""||i[0]==="#"||t.push(wVe(i,{cwd:r}))}var us;(function(i){i[i.None=0]="None",i[i.Match=1]="Match",i[i.NegatedMatch=2]="NegatedMatch"})(us||(us={}));function Jue(t,{globalList:e,ignoreLists:r}){let i=jb(t,e.accept);if(i!==0)return i===2;let n=jb(t,e.reject);if(n!==0)return n===1;if(r!==null)for(let s of r){let o=jb(t,s.accept);if(o!==0)return o===2;let a=jb(t,s.reject);if(a!==0)return a===1}return!1}function jb(t,e){let r=e,i=[];for(let n=0;n{await oO(i,{report:l},async()=>{l.reportJson({base:H.fromPortablePath(i.cwd)});let c=await Gb(i);for(let u of c)l.reportInfo(null,H.fromPortablePath(u)),l.reportJson({location:H.fromPortablePath(u)});if(!this.dryRun){let u=await aO(i,c),g=K.createWriteStream(s);u.pipe(g),await new Promise(f=>{g.on("finish",f)})}}),this.dryRun||(l.reportInfo($.UNNAMED,`Package archive generated in ${Ae.pretty(e,s,Ae.Type.PATH)}`),l.reportJson({output:H.fromPortablePath(s)}))})).exitCode()}};lE.paths=[["pack"]],lE.usage=Re.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});var zue=lE;function BVe(t,{workspace:e}){let r=t.replace("%s",bVe(e)).replace("%v",QVe(e));return H.toPortablePath(r)}function bVe(t){return t.manifest.name!==null?P.slugifyIdent(t.manifest.name):"package"}function QVe(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var vVe=["dependencies","devDependencies","peerDependencies"],SVe="workspace:",kVe=(t,e)=>{var i,n;e.publishConfig&&(e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let s of vVe)for(let o of t.manifest.getForScope(s).values()){let a=r.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===SVe)if(a===null){if(r.tryWorkspaceByIdent(o)===null)throw new ct($.WORKSPACE_NOT_FOUND,`${P.prettyDescriptor(r.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&t.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},xVe={hooks:{beforeWorkspacePacking:kVe},commands:[zue]},PVe=xVe;var ige=ge(require("crypto")),nge=ge(rge()),sge=ge(require("url"));async function zVe(t,e,{access:r,tag:i,registry:n,gitHead:s}){let o=t.project.configuration,a=t.manifest.name,l=t.manifest.version,c=P.stringifyIdent(a),u=(0,ige.createHash)("sha1").update(e).digest("hex"),g=nge.default.fromData(e).toString();typeof r=="undefined"&&(t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?r=t.manifest.publishConfig.access:o.get("npmPublishAccess")!==null?r=o.get("npmPublishAccess"):a.scope?r="restricted":r="public");let f=await SA.genPackageManifest(t),h=`${c}-${l}.tgz`,p=new sge.URL(`${pa(n)}/${c}/-/${h}`);return{_id:c,_attachments:{[h]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:c,access:r,["dist-tags"]:{[i]:l},versions:{[l]:ie(N({},f),{_id:`${c}@${l}`,name:c,version:l,gitHead:s,dist:{shasum:u,integrity:g,tarball:p.toString()}})}}}async function _Ve(t){try{let{stdout:e}=await Fr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}var fO={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ye.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:ye.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:ye.SECRET,default:null}},oge={npmAuditRegistry:{description:"Registry to query for audit reports",type:ye.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:ye.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ye.STRING,default:"https://registry.yarnpkg.com"}},VVe={configuration:ie(N(N({},fO),oge),{npmScopes:{description:"Settings per package scope",type:ye.MAP,valueDefinition:{description:"",type:ye.SHAPE,properties:N(N({},fO),oge)}},npmRegistries:{description:"Settings per registry",type:ye.MAP,normalizeKeys:pa,valueDefinition:{description:"",type:ye.SHAPE,properties:N({},fO)}}}),fetchers:[CT,bo],resolvers:[mT,ET,IT]},XVe=VVe;var CO={};ft(CO,{default:()=>o9e});Is();var Ia;(function(i){i.All="all",i.Production="production",i.Development="development"})(Ia||(Ia={}));var vo;(function(s){s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical"})(vo||(vo={}));var Yb=[vo.Info,vo.Low,vo.Moderate,vo.High,vo.Critical];function age(t,e){let r=[],i=new Set,n=o=>{i.has(o)||(i.add(o),r.push(o))};for(let o of e)n(o);let s=new Set;for(;r.length>0;){let o=r.shift(),a=t.storedResolutions.get(o);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=t.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function ZVe(t,e){return new Set([...t].filter(r=>!e.has(r)))}function $Ve(t,e,{all:r}){let i=r?t.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=age(t,l),g=age(t,c);return ZVe(g,u)}function Age(t){let e={};for(let r of t)e[P.stringifyIdent(r)]=P.parseRange(r.range).selector;return e}function lge(t){if(typeof t=="undefined")return new Set;let e=Yb.indexOf(t),r=Yb.slice(e);return new Set(r)}function e9e(t,e){let r=lge(e),i={};for(let n of r)i[n]=t[n];return i}function cge(t,e){var i;let r=e9e(t,e);for(let n of Object.keys(r))if((i=r[n])!=null?i:0>0)return!0;return!1}function uge(t,e){var s;let r={},i={children:r},n=Object.values(t.advisories);if(e!=null){let o=lge(e);n=n.filter(a=>o.has(a.severity))}for(let o of ve.sortMap(n,a=>a.module_name))r[o.module_name]={label:o.module_name,value:Ae.tuple(Ae.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{Issue:{label:"Issue",value:Ae.tuple(Ae.Type.NO_HINT,o.title)},URL:{label:"URL",value:Ae.tuple(Ae.Type.URL,o.url)},Severity:{label:"Severity",value:Ae.tuple(Ae.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:Ae.tuple(Ae.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:Ae.tuple(Ae.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:Ae.tuple(Ae.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:Ae.tuple(Ae.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function gge(t,e,{all:r,environment:i}){let n=r?t.workspaces:[e],s=[Ia.All,Ia.Production].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=[Ia.All,Ia.Development].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Age([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function fge(t,e,{all:r}){var s;let i=$Ve(t,e,{all:r}),n={};for(let o of t.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Age(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var gE=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=W.String("--environment",Ia.All,{description:"Which environments to cover",validator:nn(Ia)});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=W.String("--severity",vo.Info,{description:"Minimal severity requested for packages to be displayed",validator:nn(vo)})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let n=gge(r,i,{all:this.all,environment:this.environment}),s=fge(r,i,{all:this.all});if(!this.recursive)for(let f of Object.keys(s))Object.prototype.hasOwnProperty.call(n,f)?s[f].requires={}:delete s[f];let o={requires:n,dependencies:s},a=br.getAuditRegistry(i.manifest,{configuration:e}),l,c=await gA.start({configuration:e,stdout:this.context.stdout},async()=>{l=await zt.post("/-/npm/v1/security/audits/quick",o,{authType:zt.AuthType.BEST_EFFORT,configuration:e,jsonResponse:!0,registry:a})});if(c.hasErrors())return c.exitCode();let u=cge(l.metadata.vulnerabilities,this.severity);return!this.json&&u?(As.emitTree(uge(l,this.severity),{configuration:e,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async f=>{f.reportJson(l),u||f.reportInfo($.EXCEPTION,"No audit suggestions")})).exitCode()}};gE.paths=[["npm","audit"]],gE.usage=Re.Usage({description:"perform a vulnerability audit against the installed packages",details:` + This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). + + For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. + + Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${Yb.map(e=>`\`${e}\``).join(", ")}. + + If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. + + To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"]]});var hge=gE;var hO=ge(ri()),pO=ge(require("util")),fE=class extends Le{constructor(){super(...arguments);this.fields=W.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd),i=typeof this.fields!="undefined"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],s=!1,o=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async a=>{for(let l of this.packages){let c;if(l==="."){let k=r.topLevelWorkspace;if(!k.manifest.name)throw new Pe(`Missing ${Ae.pretty(e,"name",Ae.Type.CODE)} field in ${H.fromPortablePath(x.join(k.cwd,Pt.manifest))}`);c=P.makeDescriptor(k.manifest.name,"unknown")}else c=P.parseDescriptor(l);let u=zt.getIdentUrl(c),g=dO(await zt.get(u,{configuration:e,ident:c,jsonResponse:!0,customErrorMessage:zt.customPackageError})),f=Object.keys(g.versions).sort(hO.default.compareLoose),p=g["dist-tags"].latest||f[f.length-1],m=Wt.validRange(c.range);if(m){let k=hO.default.maxSatisfying(f,m);k!==null?p=k:(a.reportWarning($.UNNAMED,`Unmet range ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0)}else Object.prototype.hasOwnProperty.call(g["dist-tags"],c.range)?p=g["dist-tags"][c.range]:c.range!=="unknown"&&(a.reportWarning($.UNNAMED,`Unknown tag ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0);let y=g.versions[p],b=ie(N(N({},g),y),{version:p,versions:f}),S;if(i!==null){S={};for(let k of i){let T=b[k];if(typeof T!="undefined")S[k]=T;else{a.reportWarning($.EXCEPTION,`The ${Ae.pretty(e,k,Ae.Type.CODE)} field doesn't exist inside ${P.prettyIdent(e,c)}'s information`),s=!0;continue}}}else this.json||(delete b.dist,delete b.readme,delete b.users),S=b;a.reportJson(S),this.json||n.push(S)}});pO.inspect.styles.name="cyan";for(let a of n)(a!==n[0]||s)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,pO.inspect)(a,{depth:Infinity,colors:!0,compact:!1})} +`);return o.exitCode()}};fE.paths=[["npm","info"]],fE.usage=Re.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var pge=fE;function dO(t){if(Array.isArray(t)){let e=[];for(let r of t)r=dO(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let i=dO(t[r]);i&&(e[r]=i)}return e}else return t||null}var dge=ge(em()),hE=class extends Le{constructor(){super(...arguments);this.scope=W.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=W.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=await qb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await r9e({registry:r,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await zt.put(o,s,{attemptedAs:s.name,configuration:e,registry:r,jsonResponse:!0,authType:zt.AuthType.NO_AUTH});return await t9e(r,a.token,{configuration:e,scope:this.scope}),n.reportInfo($.UNNAMED,"Successfully logged in")})).exitCode()}};hE.paths=[["npm","login"]],hE.usage=Re.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var Cge=hE;async function qb({scope:t,publish:e,configuration:r,cwd:i}){return t&&e?br.getScopeRegistry(t,{configuration:r,type:br.RegistryType.PUBLISH_REGISTRY}):t?br.getScopeRegistry(t,{configuration:r}):e?br.getPublishRegistry((await zf(r,i)).manifest,{configuration:r}):br.getDefaultRegistry({configuration:r})}async function t9e(t,e,{configuration:r,scope:i}){let n=o=>a=>{let l=ve.isIndexableObject(a)?a:{},c=l[o],u=ve.isIndexableObject(c)?c:{};return ie(N({},l),{[o]:ie(N({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(t)};return await we.updateHomeConfiguration(s)}async function r9e({registry:t,report:e,stdin:r,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo($.UNNAMED,`Logging in to ${t}`);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo($.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,dge.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var bh=new Set(["npmAuthIdent","npmAuthToken"]),pE=class extends Le{constructor(){super(...arguments);this.scope=W.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=W.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=W.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=async()=>{var l;let n=await qb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await we.find(this.context.cwd,this.context.plugins),o=P.makeIdent((l=this.scope)!=null?l:null,"pkg");return!br.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await i9e(),n.reportInfo($.UNNAMED,"Successfully logged out from everything")),this.scope){await mge("npmScopes",this.scope),await r()?n.reportInfo($.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning($.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await qb({configuration:e,cwd:this.context.cwd,publish:this.publish});await mge("npmRegistries",s),await r()?n.reportInfo($.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning($.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};pE.paths=[["npm","logout"]],pE.usage=Re.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var Ege=pE;function n9e(t,e){let r=t[e];if(!ve.isIndexableObject(r))return!1;let i=new Set(Object.keys(r));if([...bh].every(s=>!i.has(s)))return!1;for(let s of bh)i.delete(s);if(i.size===0)return t[e]=void 0,!0;let n=N({},r);for(let s of bh)delete n[s];return t[e]=n,!0}async function i9e(){let t=e=>{let r=!1,i=ve.isIndexableObject(e)?N({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,r=!0);for(let n of Object.keys(i))n9e(i,n)&&(r=!0);if(Object.keys(i).length!==0)return r?i:e};return await we.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function mge(t,e){return await we.updateHomeConfiguration({[t]:r=>{let i=ve.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(i,e))return r;let n=i[e],s=ve.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...bh].every(l=>!o.has(l)))return r;for(let l of bh)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:ie(N({},i),{[e]:void 0});let a={};for(let l of bh)a[l]=void 0;return ie(N({},i),{[e]:N(N({},s),a)})}})}var dE=class extends Le{constructor(){super(...arguments);this.access=W.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=W.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=W.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=W.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);if(i.manifest.private)throw new Pe("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new Pe("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=br.getPublishRegistry(i.manifest,{configuration:e});return(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await zt.get(zt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new ct($.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning($.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Zt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await SA.prepareForPack(i,{report:l},async()=>{let g=await SA.genPackList(i);for(let y of g)l.reportInfo(null,y);let f=await SA.genPackStream(i,g),h=await ve.bufferStream(f),p=await Bh.getGitHead(i.cwd),m=await Bh.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await zt.put(zt.getIdentUrl(n),m,{configuration:e,registry:o,ident:n,otp:this.otp,jsonResponse:!0})}),l.reportInfo($.UNNAMED,"Package archive published")})).exitCode()}};dE.paths=[["npm","publish"]],dE.usage=Re.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var Ige=dE;var wge=ge(ri());var CE=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=W.String({required:!1})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=P.parseIdent(this.package);else{if(!i)throw new ht(r.cwd,this.context.cwd);if(!i.manifest.name)throw new Pe(`Missing 'name' field in ${H.fromPortablePath(x.join(i.cwd,Pt.manifest))}`);n=i.manifest.name}let s=await mE(n,e),a={children:ve.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:Ae.tuple(Ae.Type.RESOLUTION,{descriptor:P.makeDescriptor(n,l),locator:P.makeLocator(n,c)})}))};return As.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};CE.paths=[["npm","tag","list"]],CE.usage=Re.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + This command will list all tags of a package from the npm registry. + + If the package is not specified, Yarn will default to the current workspace. + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});var yge=CE;async function mE(t,e){let r=`/-/package${zt.getIdentUrl(t)}/dist-tags`;return zt.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:zt.customPackageError})}var EE=class extends Le{constructor(){super(...arguments);this.package=W.String();this.tag=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);let n=P.parseDescriptor(this.package,!0),s=n.range;if(!wge.default.valid(s))throw new Pe(`The range ${Ae.pretty(e,n.range,Ae.Type.RANGE)} must be a valid semver version`);let o=br.getPublishRegistry(i.manifest,{configuration:e}),a=Ae.pretty(e,n,Ae.Type.IDENT),l=Ae.pretty(e,s,Ae.Type.RANGE),c=Ae.pretty(e,this.tag,Ae.Type.CODE);return(await Je.start({configuration:e,stdout:this.context.stdout},async g=>{let f=await mE(n,e);Object.prototype.hasOwnProperty.call(f,this.tag)&&f[this.tag]===s&&g.reportWarning($.UNNAMED,`Tag ${c} is already set to version ${l}`);let h=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.put(h,s,{configuration:e,registry:o,ident:n,jsonRequest:!0,jsonResponse:!0}),g.reportInfo($.UNNAMED,`Tag ${c} added to version ${l} of package ${a}`)})).exitCode()}};EE.paths=[["npm","tag","add"]],EE.usage=Re.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var Bge=EE;var IE=class extends Le{constructor(){super(...arguments);this.package=W.String();this.tag=W.String()}async execute(){if(this.tag==="latest")throw new Pe("The 'latest' tag cannot be removed.");let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);let n=P.parseIdent(this.package),s=br.getPublishRegistry(i.manifest,{configuration:e}),o=Ae.pretty(e,this.tag,Ae.Type.CODE),a=Ae.pretty(e,n,Ae.Type.IDENT),l=await mE(n,e);if(!Object.prototype.hasOwnProperty.call(l,this.tag))throw new Pe(`${o} is not a tag of package ${a}`);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{let g=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.del(g,{configuration:e,registry:s,ident:n,jsonResponse:!0}),u.reportInfo($.UNNAMED,`Tag ${o} removed from package ${a}`)})).exitCode()}};IE.paths=[["npm","tag","remove"]],IE.usage=Re.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + This command will remove a tag from a package from the npm registry. + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var bge=IE;var yE=class extends Le{constructor(){super(...arguments);this.scope=W.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=W.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=br.getScopeRegistry(this.scope,{configuration:e,type:br.RegistryType.PUBLISH_REGISTRY}):this.scope?r=br.getScopeRegistry(this.scope,{configuration:e}):this.publish?r=br.getPublishRegistry((await zf(e,this.context.cwd)).manifest,{configuration:e}):r=br.getDefaultRegistry({configuration:e}),(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await zt.get("/-/whoami",{configuration:e,registry:r,authType:zt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError($.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo($.UNNAMED,s.username)})).exitCode()}};yE.paths=[["npm","whoami"]],yE.usage=Re.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var Qge=yE;var s9e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:ye.STRING,default:null}},commands:[hge,pge,Cge,Ege,Ige,Bge,yge,bge,Qge]},o9e=s9e;var QO={};ft(QO,{default:()=>w9e,patchUtils:()=>mO});var mO={};ft(mO,{applyPatchFile:()=>zb,diffFolders:()=>wO,extractPackageToDisk:()=>yO,extractPatchFlags:()=>Fge,isParentRequired:()=>IO,loadPatchFiles:()=>QE,makeDescriptor:()=>E9e,makeLocator:()=>EO,parseDescriptor:()=>BE,parseLocator:()=>bE,parsePatchFile:()=>Wb});var wE=class extends Error{constructor(e,r){super(`Cannot apply hunk #${e+1}`);this.hunk=r}};var a9e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Qh(t){return x.relative(Ke.root,x.resolve(Ke.root,H.toPortablePath(t)))}function A9e(t){let e=t.trim().match(a9e);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var l9e=420,c9e=493,Zr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Zr||(Zr={}));var vge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),u9e=t=>({header:A9e(t),parts:[]}),g9e={["@"]:"header",["-"]:Zr.Deletion,["+"]:Zr.Insertion,[" "]:Zr.Context,["\\"]:"pragma",undefined:Zr.Context};function h9e(t){let e=[],r=vge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),r.hunks.push(n),n=null)}function a(){o(),e.push(r),r=vge()}for(let l=0;l0?"patch":"mode change",S=null;switch(b){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Qh(u),toPath:Qh(g)}),S=g}break;case"file deletion":{let k=n||p;if(!k)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Qh(k),mode:Jb(l),hash:f})}break;case"file creation":{let k=s||m;if(!k)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Qh(k),mode:Jb(c),hash:h})}break;case"patch":case"mode change":S=m||s;break;default:ve.assertNever(b);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Qh(S),oldMode:Jb(o),newMode:Jb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Qh(S),hunks:y,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Jb(t){let e=parseInt(t,8)&511;if(e!==l9e&&e!==c9e)throw new Error(`Unexpected file mode string: ${t}`);return e}function Wb(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),p9e(h9e(e))}function f9e(t){let e=0,r=0;for(let{type:i,lines:n}of t.parts)switch(i){case Zr.Context:r+=n.length,e+=n.length;break;case Zr.Deletion:e+=n.length;break;case Zr.Insertion:r+=n.length;break;default:ve.assertNever(i);break}if(e!==t.header.original.length||r!==t.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(t.header.original.length)} ${i(t.header.patched.length)} @@, got @@ ${i(e)} ${i(r)} @@)`)}}async function vh(t,e,r){let i=await t.lstatPromise(e),n=await r();if(typeof n!="undefined"&&(e=n),t.lutimesPromise)await t.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await t.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function zb(t,{baseFs:e=new ar,dryRun:r=!1,version:i=null}={}){for(let n of t)if(!(n.semverExclusivity!==null&&i!==null&&!Wt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(r){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await vh(e,x.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(r){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await vh(e,x.dirname(n.fromPath),async()=>{await vh(e,x.dirname(n.toPath),async()=>{await vh(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(r){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` +`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` +`):"";await e.mkdirpPromise(x.dirname(n.path),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,Dr.SAFE_TIME,Dr.SAFE_TIME)}break;case"patch":await vh(e,n.path,async()=>{await d9e(n,{baseFs:e,dryRun:r})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(Sge(n.newMode)!==Sge(o))continue;await vh(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:ve.assertNever(n);break}}function Sge(t){return(t&64)>0}function kge(t){return t.replace(/\s+$/,"")}function C9e(t,e){return kge(t)===kge(e)}async function d9e({hunks:t,path:e},{baseFs:r,dryRun:i=!1}){let n=await r.statSync(e).mode,o=(await r.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of t){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),m=Math.max(h,p),y=0,b=0,S=null;for(;y<=m;){if(y<=h&&(b=f-y,S=xge(g,o,b),S!==null)){y=-y;break}if(y<=p&&(b=f+y,S=xge(g,o,b),S!==null))break;y+=1}if(S===null)throw new wE(t.indexOf(g),g);a.push(S),l+=y,c=b+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:ve.assertNever(f);break}await r.writeFilePromise(e,o.join(` +`),{mode:n})}function xge(t,e,r){let i=[];for(let n of t.parts)switch(n.type){case Zr.Context:case Zr.Deletion:{for(let s of n.lines){let o=e[r];if(o==null||!C9e(o,s))return null;r+=1}n.type===Zr.Deletion&&(i.push({type:"splice",index:r-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case Zr.Insertion:i.push({type:"splice",index:r,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:ve.assertNever(n.type);break}return i}var m9e=/^builtin<([^>]+)>$/;function Pge(t,e){let{source:r,selector:i,params:n}=P.parseRange(t);if(r===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>H.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(r);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function BE(t){let i=Pge(t.range,P.parseDescriptor),{sourceItem:e}=i,r=Tr(i,["sourceItem"]);return ie(N({},r),{sourceDescriptor:e})}function bE(t){let i=Pge(t.reference,P.parseLocator),{sourceItem:e}=i,r=Tr(i,["sourceItem"]);return ie(N({},r),{sourceLocator:e})}function Dge({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:i,patchHash:n},s){let o=t!==null?{locator:P.stringifyLocator(t)}:{},a=typeof i!="undefined"?{version:i}:{},l=typeof n!="undefined"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:r.join("&"),params:N(N(N({},a),l),o)})}function E9e(t,{parentLocator:e,sourceDescriptor:r,patchPaths:i}){return P.makeLocator(t,Dge({parentLocator:e,sourceItem:r,patchPaths:i},P.stringifyDescriptor))}function EO(t,{parentLocator:e,sourcePackage:r,patchPaths:i,patchHash:n}){return P.makeLocator(t,Dge({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function Rge({onAbsolute:t,onRelative:e,onBuiltin:r},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(m9e);return s!==null?r(s[1]):x.isAbsolute(i)?t(i):e(i)}function Fge(t){let e=t.startsWith("~");return e&&(t=t.slice(1)),{optional:e}}function IO(t){return Rge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},t)}async function QE(t,e,r){let i=t!==null?await r.fetcher.fetch(t,r):null,n=i&&i.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await ve.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Fge(o),l=await Rge({onAbsolute:async()=>await K.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(x.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await r.project.configuration.firstHook(u=>u.getBuiltinPatch,r.project,c)},o);return ie(N({},a),{source:l})})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`));return s}async function yO(t,{cache:e,project:r}){let i=r.storedPackages.get(t.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let n=r.storedChecksums,s=new pi,o=r.configuration.makeFetcher(),a=await o.fetch(t,{cache:e,project:r,fetcher:o,checksums:n,report:s}),l=await K.mktempPromise(),c=x.join(l,"source"),u=x.join(l,"user"),g=x.join(l,".yarn-patch.json");return await Promise.all([K.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),K.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),K.writeJsonPromise(g,{locator:P.stringifyLocator(t),version:i.version})]),K.detachTemp(l),u}async function wO(t,e){let r=H.fromPortablePath(t).replace(/\\/g,"/"),i=H.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await Fr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--text",r,i],{cwd:H.toPortablePath(process.cwd()),env:ie(N({},process.env),{GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""})});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +The following error was reported by 'git': +${s}`);let o=r.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${ve.escapeRegExp(`/${o(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${ve.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(ve.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(ve.escapeRegExp(`${i}/`),"g"),"")}function Nge(t,{configuration:e,report:r}){for(let i of t.parts)for(let n of i.lines)switch(i.type){case Zr.Context:r.reportInfo(null,` ${Ae.pretty(e,n,"grey")}`);break;case Zr.Deletion:r.reportError($.FROZEN_LOCKFILE_EXCEPTION,`- ${Ae.pretty(e,n,Ae.Type.REMOVED)}`);break;case Zr.Insertion:r.reportError($.FROZEN_LOCKFILE_EXCEPTION,`+ ${Ae.pretty(e,n,Ae.Type.ADDED)}`);break;default:ve.assertNever(i.type)}}var BO=class{supports(e,r){return!!e.reference.startsWith("patch:")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async patchPackage(e,r){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=bE(e),a=await QE(i,o,r),l=await K.mktempPromise(),c=x.join(l,"current.zip"),u=await r.fetcher.fetch(n,r),g=P.getIdentVendorPath(e),f=await fn(),h=new Ai(c,{libzip:f,create:!0,level:r.project.configuration.get("compressionLevel")});await ve.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:m}of a){if(p===null)continue;let y=new Ai(c,{libzip:f,level:r.project.configuration.get("compressionLevel")}),b=new _t(x.resolve(Ke.root,g),{baseFs:y});try{await zb(Wb(p),{baseFs:b,version:s})}catch(S){if(!(S instanceof wE))throw S;let k=r.project.configuration.get("enableInlineHunks"),T=!k&&!m?" (set enableInlineHunks for details)":"",Y=`${P.prettyLocator(r.project.configuration,e)}: ${S.message}${T}`,j=Z=>{!k||Nge(S.hunk,{configuration:r.project.configuration,report:Z})};if(y.discardAndClose(),m){r.report.reportWarningOnce($.PATCH_HUNK_FAILED,Y,{reportExtra:j});continue}else throw new ct($.PATCH_HUNK_FAILED,Y,j)}y.saveAndClose()}return new Ai(c,{libzip:f,level:r.project.configuration.get("compressionLevel")})}};var I9e=3,bO=class{supportsDescriptor(e,r){return!!e.range.startsWith("patch:")}supportsLocator(e,r){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){let{patchPaths:n}=BE(e);return n.every(s=>!IO(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:i}=BE(e);return[i]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=BE(e),a=await QE(n,o,i.fetchOptions),l=r.get(s.descriptorHash);if(typeof l=="undefined")throw new Error("Assertion failed: The dependency should have been resolved");let c=Dn.makeHash(`${I9e}`,...a.map(u=>JSON.stringify(u))).slice(0,6);return[EO(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){let{sourceLocator:i}=bE(e),n=await r.resolver.resolve(i,r);return N(N({},n),e)}};var vE=class extends Le{constructor(){super(...arguments);this.save=W.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let n=x.resolve(this.context.cwd,H.toPortablePath(this.patchFolder)),s=x.join(n,"../source"),o=x.join(n,"../.yarn-patch.json");if(!K.existsSync(s))throw new Pe("The argument folder didn't get created by 'yarn patch'");let a=await wO(s,n),l=await K.readJsonPromise(o),c=P.parseLocator(l.locator,!0);if(!r.storedPackages.has(c.locatorHash))throw new Pe("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(a);return}let u=e.get("patchFolder"),g=x.join(u,`${P.slugifyLocator(c)}.patch`);await K.mkdirPromise(u,{recursive:!0}),await K.writeFilePromise(g,a);let f=x.relative(r.cwd,g);r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(c),description:l.version}},reference:`patch:${P.stringifyLocator(c)}#${f}`}),await r.persist()}};vE.paths=[["patch-commit"]],vE.usage=Re.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var Lge=vE;var SE=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let s=P.parseLocator(this.package);if(s.reference==="unknown"){let o=ve.mapAndFilter([...r.storedPackages.values()],a=>a.identHash!==s.identHash?ve.mapAndFilter.skip:P.isVirtualLocator(a)?ve.mapAndFilter.skip:a);if(o.length===0)throw new Pe("No package found in the project for the given locator");if(o.length>1)throw new Pe(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${o.map(a=>` +- ${P.prettyLocator(e,a)}`).join("")}`);s=o[0]}if(!r.storedPackages.has(s.locatorHash))throw new Pe("No package found in the project for the given locator");await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async o=>{let a=await yO(s,{cache:n,project:r});o.reportJson({locator:P.stringifyLocator(s),path:H.fromPortablePath(a)}),o.reportInfo($.UNNAMED,`Package ${P.prettyLocator(e,s)} got extracted with success!`),o.reportInfo($.UNNAMED,`You can now edit the following folder: ${Ae.pretty(e,H.fromPortablePath(a),"magenta")}`),o.reportInfo($.UNNAMED,`Once you are done run ${Ae.pretty(e,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${H.fromPortablePath(a)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};SE.paths=[["patch"]],SE.usage=Re.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var Tge=SE;var y9e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:ye.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:ye.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[Lge,Tge],fetchers:[BO],resolvers:[bO]},w9e=y9e;var xO={};ft(xO,{default:()=>Q9e});var vO=class{supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=SO(),n=r.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${Ae.pretty(r.project.configuration,`${r.project.cwd}/package.json`,Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s=="undefined")throw new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let i=SO(),n=r.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${Ae.pretty(r.project.configuration,`${r.project.cwd}/package.json`,Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=x.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new Oge(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},Oge=class{constructor(e){this.opts=e;this.asyncActions=new ve.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return SO()}attachCustomData(e){}async installPackage(e,r,i){switch(e.linkType){case Qt.SOFT:return this.installPackageSoft(e,r,i);case Qt.HARD:return this.installPackageHard(e,r,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,i){let n=x.resolve(r.packageFs.getRealPath(),r.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,r,i){var u;let n=B9e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await K.mkdirPromise(n,{recursive:!0}),await K.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await At.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?u:new At,misc:{hasBindingGyp:ha.hasBindingGyp(r)}},l=this.opts.project.getDependencyMeta(o,e.version),c=ha.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,r){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!Uge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=x.join(n,Pt.nodeModules),o=[],a=await Hge(s);for(let[l,c]of r){let u=c;Uge(c,{project:this.opts.project})||(this.opts.report.reportWarning($.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let f=P.stringifyIdent(l),h=x.join(s,f),p=x.relative(x.dirname(h),g),m=a.get(f);a.delete(f),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await K.readlinkPromise(h)===p)return;await K.removePromise(h)}await K.mkdirpPromise(x.dirname(h)),process.platform=="win32"?await K.symlinkPromise(g,h,"junction"):await K.symlinkPromise(p,h)}))}o.push(Gge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Kge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await K.removePromise(e);else{let r=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=x.contains(e,s);if(o!==null){let[a,,...l]=o.split(x.sep);i.add(a);let c=x.join(e,a);r.push(K.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let f=x.join(c,g);if(g===Pt.nodeModules){let h=await Hge(f);return h.delete(l.join(x.sep)),Gge(f,h)}else return K.removePromise(f)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await K.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||r.push(K.removePromise(x.join(e,s)));await Promise.all(r)}return await this.asyncActions.wait(),await kO(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await kO(Mge(this.opts.project)),{customData:this.customData}}};function SO(){return JSON.stringify({name:"PnpmInstaller",version:2})}function Mge(t){return x.join(t.cwd,Pt.nodeModules)}function Kge(t){return x.join(Mge(t),".store")}function B9e(t,{project:e}){let r=P.slugifyLocator(t),i=P.getIdentVendorPath(t);return x.join(Kge(e),r,i)}function Uge(t,{project:e}){return!P.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Hge(t){let e=new Map,r=[];try{r=await K.readdirPromise(t,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of r)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await K.readdirPromise(x.join(t,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function Gge(t,e){var n;let r=[],i=new Set;for(let s of e.keys()){r.push(K.removePromise(x.join(t,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(r).then(()=>Promise.all([...i].map(s=>kO(x.join(t,s)))))}async function kO(t){try{await K.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var b9e={linkers:[vO]},Q9e=b9e;var W0=()=>({modules:new Map([["@yarnpkg/cli",VC],["@yarnpkg/core",vC],["@yarnpkg/fslib",$h],["@yarnpkg/libzip",Kd],["@yarnpkg/parsers",ap],["@yarnpkg/shell",Hd],["clipanion",u$(mp)],["semver",v9e],["typanion",ag],["yup",S9e],["@yarnpkg/plugin-essentials",uL],["@yarnpkg/plugin-compat",pL],["@yarnpkg/plugin-dlx",dL],["@yarnpkg/plugin-file",QL],["@yarnpkg/plugin-git",cL],["@yarnpkg/plugin-github",SL],["@yarnpkg/plugin-http",PL],["@yarnpkg/plugin-init",NL],["@yarnpkg/plugin-link",KL],["@yarnpkg/plugin-nm",fT],["@yarnpkg/plugin-npm",gO],["@yarnpkg/plugin-npm-cli",CO],["@yarnpkg/plugin-pack",AO],["@yarnpkg/plugin-patch",QO],["@yarnpkg/plugin-pnp",rT],["@yarnpkg/plugin-pnpm",xO]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});C0({binaryVersion:Kr||"",pluginConfiguration:W0()});})(); +/*! + * buildToken + * Builds OAuth token prefix (helper function) + * + * @name buildToken + * @function + * @param {GitUrl} obj The parsed Git url object. + * @return {String} token prefix + */ +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * is-windows + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ diff --git a/apps/docs/.yarnrc.yml b/apps/docs/.yarnrc.yml new file mode 100644 index 00000000..59da81d9 --- /dev/null +++ b/apps/docs/.yarnrc.yml @@ -0,0 +1,5 @@ +checksumBehavior: update + +nodeLinker: node-modules + +yarnPath: .yarn/releases/yarn-3.2.1.cjs diff --git a/apps/docs/README.md b/apps/docs/README.md new file mode 100644 index 00000000..a137d38f --- /dev/null +++ b/apps/docs/README.md @@ -0,0 +1,75 @@ +

+

+ + + + Semaphore icon + +

+

+ +

+ + + + + Github license + + + Linter eslint + + + Code style prettier + +

+ + + +| This repository contains the code for the Semaphore documentation published at [docs.semaphore.pse.dev](https://docs.semaphore.pse.dev). It uses Markdown syntax and the [Docusaurus](https://docusaurus.io/) site generator. | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + +## 📜 Usage + +### Start the website + +To generate the HTML and start the site, run: + +```sh +yarn start +``` + +Visit the Semaphore docs site in your browser at [http://localhost:3000](http://localhost:3000). + +### Build + +``` +yarn build +``` + +The `build` command generates static content into the `build` directory that can be served by any static content hosting service. + +### Deploy + +``` +$ GIT_USER= USE_SSH=true yarn deploy +``` + +If you use GitHub pages for hosting, this command lets you build the website and push to the `gh-pages` branch. diff --git a/apps/docs/babel.config.js b/apps/docs/babel.config.js new file mode 100644 index 00000000..86c60203 --- /dev/null +++ b/apps/docs/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve("@docusaurus/core/lib/babel/preset")] +} diff --git a/apps/docs/docusaurus.config.js b/apps/docs/docusaurus.config.js new file mode 100644 index 00000000..42ffda75 --- /dev/null +++ b/apps/docs/docusaurus.config.js @@ -0,0 +1,102 @@ +// @ts-check +// Note: type annotations allow type checking and IDEs autocompletion + +const lightCodeTheme = require("prism-react-renderer/themes/github") +const darkCodeTheme = require("prism-react-renderer/themes/dracula") + +/** @type {import('@docusaurus/types').Config} */ +module.exports = { + title: "Semaphore", + tagline: "Documentation and Guides", + url: "https://semaphore.pse.dev/", + baseUrl: "/", + favicon: "/img/favicon.ico", + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + organizationName: "semaphore-protocol", + projectName: "semaphore", + trailingSlash: false, + + plugins: ["docusaurus-plugin-sass"], + + i18n: { + defaultLocale: "en", + locales: ["en", "es"] + }, + + presets: [ + [ + "classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + ({ + docs: { + routeBasePath: "docs/", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://github.com/semaphore-protocol/website/edit/main/", + includeCurrentVersion: false + }, + theme: { + customCss: [require.resolve("./src/css/custom.scss")] + } + }) + ] + ], + + themeConfig: + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + ({ + //announcementBar: { + //id: "semaphore-v3", + //content: + //'We are pleased to announce the release of Semaphore V3 🎉', + //backgroundColor: "#DAE0FF", + //textColor: "#000000" + //}, + navbar: { + logo: { + alt: "Semaphore Logo", + src: "img/semaphore-logo.svg" + }, + items: [ + { + label: "Whitepaper", + to: "https://semaphore.pse.dev/whitepaper-v1.pdf", + position: "right", + className: "V1" + }, + { + label: "Documentation", + href: "/docs/introduction", + position: "right", + className: "homepage" + }, + { + label: "Github", + href: "https://github.com/semaphore-protocol", + position: "right" + }, + { + type: "localeDropdown", + position: "right" + } + ] + }, + colorMode: { + defaultMode: "dark", + // Should we use the prefers-color-scheme media-query, + // using user system preferences, instead of the hardcoded defaultMode + respectPrefersColorScheme: true + }, + prism: { + theme: lightCodeTheme, + darkTheme: darkCodeTheme, + additionalLanguages: ["solidity"] + }, + algolia: { + appId: "6P229KVKCB", + apiKey: "879bb5b002b6370f181f0f79f5c2afe2", + indexName: "semaphoreliedzkp", + contextualSearch: true + } + }) +} diff --git a/apps/docs/i18n/en/code.json b/apps/docs/i18n/en/code.json new file mode 100644 index 00000000..6e742118 --- /dev/null +++ b/apps/docs/i18n/en/code.json @@ -0,0 +1,406 @@ +{ + "jumbotron.title": { + "message": "Signal anonymously" + }, + "jumbotron.description": { + "message": "Using zero knowledge, Semaphore allows Ethereum users to prove their membership of a group and send signals such as votes or endorsements without revealing their original identity." + }, + "quick-setup.button": { + "message": "Quick setup" + }, + "boilerplate.button": { + "message": "Boilerplate" + }, + "components.description": { + "message": "Building an Ethereum dApp? Semaphore components make it simple to add a privacy layer!" + }, + "components.button.solidity": { + "message": "Solidity contract" + }, + "components.button.circuits": { + "message": "zkSNARK circuits" + }, + "components.button.libraries": { + "message": "JavaScript libraries" + }, + "section.identities.title": { + "message": "Semaphore identities" + }, + "section.identities.description": { + "message": "Given to all Semaphore group members, it is comprised of three parts: identity commitment, trapdoor, and nullifier." + }, + "section.identities.link": { + "message": "Create Semaphore identities" + }, + "section.identities.box1.title": { + "message": "Private values" + }, + "section.identities.box1.description": { + "message": "Trapdoor and nullifier values are the private values of the Semaphore identity. To avoid fraud, the owner must keep both values secret." + }, + "section.identities.box2.title": { + "message": "Public values" + }, + "section.identities.box2.description": { + "message": "Semaphore uses the Poseidon hash function to create the identity commitment from the identity private values. Identity commitments can be made public, similarly to Ethereum addresses." + }, + "section.identities.box3.title": { + "message": "Generate identities" + }, + "section.identities.box3.description": { + "message": "Semaphore identities can be generated deterministically or randomly. Deterministic identities can be generated from the hash of a secret message." + }, + "section.groups.title": { + "message": "Semaphore groups" + }, + "section.groups.description": { + "message": "Semaphore groups are binary incremental Merkle trees that store the public identity commitment of each member." + }, + "section.groups.link": { + "message": "Curate Semaphore groups" + }, + "section.groups.box1.title": { + "message": "Merkle trees" + }, + "section.groups.box1.description": { + "message": "Each leaf contains an identity commitment for a user. The identity commitment proves that the user is a group member without revealing the private identity of the user." + }, + "section.groups.box2.title": { + "message": "Types of groups" + }, + "section.groups.box2.description": { + "message": "Groups can be created and managed in a decentralized fashion with Semaphore contracts or off-chain with our JavaScript libraries." + }, + "section.groups.box3.title": { + "message": "Group management" + }, + "section.groups.box3.description": { + "message": "Users can join and leave groups by themselves, or an admin can add and remove them. Admins can be centralized authorities, Ethereum accounts, multi-sig wallets or smart contracts." + }, + "section.proofs.title": { + "message": "Semaphore proofs" + }, + "section.proofs.description": { + "message": "Semaphore group members can anonymously prove that they are part of a group and that they are generating their own proofs and signals." + }, + "section.proofs.link": { + "message": "Generate Semaphore proofs" + }, + "section.proofs.box1.title": { + "message": "Membership" + }, + "section.proofs.box1.description": { + "message": "Only users who are part of a group can generate a valid proof for that group." + }, + "section.proofs.box2.title": { + "message": "Signals" + }, + "section.proofs.box2.description": { + "message": "Group users can anonymously broadcast signals such as votes or endorsements without revealing their original identity." + }, + "section.proofs.box3.title": { + "message": "Verifiers" + }, + "section.proofs.box3.description": { + "message": "Semaphore proofs can be verified with Semaphore contracts on-chain or with our JavaScript libraries off-chain." + }, + "theme.ErrorPageContent.title": { + "message": "This page crashed.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Try again", + "description": "The label of the button to try again when the page crashed" + }, + "theme.NotFound.title": { + "message": "Page Not Found", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "We could not find what you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.admonition.note": { + "message": "note", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "tip", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.danger": { + "message": "danger", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.caution": { + "message": "caution", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Scroll back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archive", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archive", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Blog list page navigation", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Newer Entries", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Older Entries", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Blog post page navigation", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Newer Post", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Older Post", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "One post|{count} posts", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} tagged with \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "View All Tags", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode (currently {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "dark mode", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "light mode", + "description": "The name for the light color mode" + }, + "theme.docs.breadcrumbs.home": { + "message": "Home page", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} items", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs pages navigation", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Previous", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Next", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "One doc tagged|{count} docs tagged", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} with \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Version: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "latest version", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direct link to heading", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " on {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " by {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Last updated{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versions", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Blog recent posts navigation", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Toggle word wrap", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { + "message": "Toggle the collapsible sidebar category '{label}'", + "description": "The ARIA label to toggle the collapsible sidebar category" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Languages", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "Read More", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Read more about {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "One min read|{readingTime} min read", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close navigation bar", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Back to main menu", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Toggle navigation bar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + }, + "footer.left.title": { + "message": "About" + }, + "footer.left.description": { + "message": "Semaphore is part of Privacy & Scaling Explorations (PSE), a multidisciplinary team supported by the Ethereum Foundation. PSE explores new use cases for zero knowledge proofs and other cryptographic primitives." + }, + "footer.right.usedby.title": { + "message": "Used by" + }, + "footer.right.usedby.link1": { + "message": "Unirep" + }, + "footer.right.usedby.link2": { + "message": "Interep" + }, + "footer.right.learn.title": { + "message": "Learn" + }, + "footer.right.learn.link1": { + "message": "Github" + }, + "footer.right.learn.link2": { + "message": "Docs" + }, + "footer.right.connect.title": { + "message": "Connect" + }, + "footer.right.connect.link1": { + "message": "Discord" + }, + "footer.right.connect.link2": { + "message": "Twitter" + }, + "footer.copyright": { + "message": "Copyright © 2023 Ethereum Foundation" + } +} diff --git a/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V1.json b/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V1.json new file mode 100644 index 00000000..d2ada941 --- /dev/null +++ b/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V1.json @@ -0,0 +1,6 @@ +{ + "version.label": { + "message": "V1", + "description": "The label for version V1" + } +} diff --git a/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V2.json b/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V2.json new file mode 100644 index 00000000..030d6c12 --- /dev/null +++ b/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V2.json @@ -0,0 +1,18 @@ +{ + "version.label": { + "message": "V2", + "description": "The label for version V2" + }, + "sidebar.mySidebar.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar mySidebar" + }, + "sidebar.mySidebar.category.Use cases": { + "message": "Use cases", + "description": "The label for category Use cases in sidebar mySidebar" + }, + "sidebar.mySidebar.category.Technical reference": { + "message": "Technical reference", + "description": "The label for category Technical reference in sidebar mySidebar" + } +} diff --git a/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V3.json b/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V3.json new file mode 100644 index 00000000..a3e04448 --- /dev/null +++ b/apps/docs/i18n/en/docusaurus-plugin-content-docs/version-V3.json @@ -0,0 +1,14 @@ +{ + "version.label": { + "message": "V3", + "description": "The label for version V3" + }, + "sidebar.mySidebar.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar mySidebar" + }, + "sidebar.mySidebar.category.Technical reference": { + "message": "Technical reference", + "description": "The label for category Technical reference in sidebar mySidebar" + } +} diff --git a/apps/docs/i18n/en/docusaurus-theme-classic/navbar.json b/apps/docs/i18n/en/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..b6d0d1b7 --- /dev/null +++ b/apps/docs/i18n/en/docusaurus-theme-classic/navbar.json @@ -0,0 +1,11 @@ +{ + "item.label.Whitepaper": { + "message": "Whitepaper" + }, + "item.label.Documentation": { + "message": "Documentation" + }, + "item.label.Github": { + "message": "Github" + } +} diff --git a/apps/docs/i18n/es/code.json b/apps/docs/i18n/es/code.json new file mode 100644 index 00000000..211ed58a --- /dev/null +++ b/apps/docs/i18n/es/code.json @@ -0,0 +1,406 @@ +{ + "jumbotron.title": { + "message": "Señaliza de forma anónima" + }, + "jumbotron.description": { + "message": "Utilizando zero knowledge (conocimiento cero), Semaphore permite a los usuarios de Ethereum demostrar su membresía en un grupo y enviar señales como votos o reconocimientos sin revelar su identidad original." + }, + "quick-setup.button": { + "message": "Configuración rápida" + }, + "boilerplate.button": { + "message": "Boilerplate" + }, + "components.description": { + "message": "¿Está desarrollando una dApp en Ethereum? ¡Los componentes Semaphore permiten agregar una capa de privacidad de forma sencilla!" + }, + "components.button.solidity": { + "message": "Contrato en Solidity" + }, + "components.button.circuits": { + "message": "Circuitos zkSNARK" + }, + "components.button.libraries": { + "message": "Librerías JavaScript" + }, + "section.identities.title": { + "message": "Identidades Semaphore" + }, + "section.identities.description": { + "message": "Otorgada a todos los miembros de un grupo Semaphore, está compuesta por tres partes: identity commitment (compromiso de identidad), trapdoor, y nullifier." + }, + "section.identities.link": { + "message": "Crear identidades Semaphore" + }, + "section.identities.box1.title": { + "message": "Valores privados" + }, + "section.identities.box1.description": { + "message": "Los valores trapdoor y nullifier son los valores privados de una identidad Semaphore. Para evitar fraude, la persona dueña debe mantener ambos valores en secreto." + }, + "section.identities.box2.title": { + "message": "Valores públicos" + }, + "section.identities.box2.description": { + "message": "Semaphore utiliza la función hash Poseidon para crear el identtity commitment a partir de los valores privados. Los identity commitments se pueden compartir públicamente, de forma similar a las direcciones Ethereum." + }, + "section.identities.box3.title": { + "message": "Generar identidades" + }, + "section.identities.box3.description": { + "message": "Las identidades Semaphore pueden generarse de forma determinística o aleatoria. Las identidades determinísticas se pueden generar a partir del hash de un mensaje secreto." + }, + "section.groups.title": { + "message": "Grupos Semaphore" + }, + "section.groups.description": { + "message": "Los grupos Semaphore son árboles de Merkle binarios e incrementales que almacenan el identity commitment público de cada miembro." + }, + "section.groups.link": { + "message": "Curaduría de grupos Semaphore" + }, + "section.groups.box1.title": { + "message": "Árboles de Merkle" + }, + "section.groups.box1.description": { + "message": "Cada hoja contiene el identity commitment de un usuario. El identity commitment demuestra que el usuario es miembro de un grupo sin revelar la identidad privada del usuario." + }, + "section.groups.box2.title": { + "message": "Tipos de grupos" + }, + "section.groups.box2.description": { + "message": "Los grupos pueden crearse y administrarse de forma descentralizada con contratos Semaphore o off-chain (fuera de la cadena) con nuestras librerías en JavaScript." + }, + "section.groups.box3.title": { + "message": "Administración de grupos" + }, + "section.groups.box3.description": { + "message": "Los usuarios pueden unirse y abandonar un grupo por si solos, o un administrador puede agregarles o removerles. Los administradores pueden ser autoridades centralizadas, cuentas Ethereum, carteras multi-sig o smart contracts (contratos inteligentes)." + }, + "section.proofs.title": { + "message": "Pruebas Semaphore" + }, + "section.proofs.description": { + "message": "Los miembros de un grupo Semaphore pueden demostrar de forma anónima que pertenecen a un grupo y que ellos están generando sus propias pruebas y señales." + }, + "section.proofs.link": { + "message": "Generar pruebas Semaphore" + }, + "section.proofs.box1.title": { + "message": "Membresía" + }, + "section.proofs.box1.description": { + "message": "Únicamente los usuarios que forman parte de un grupo pueden generar una prueba válida para ese grupo." + }, + "section.proofs.box2.title": { + "message": "Señales" + }, + "section.proofs.box2.description": { + "message": "Los usuarios del grupo pueden transmitir señales anónimamente, como votos o reconocimientos, sin revelar su identidad original." + }, + "section.proofs.box3.title": { + "message": "Verificadores" + }, + "section.proofs.box3.description": { + "message": "Las pruebas Semaphore pueden verificarse on-chain (dentro de la cadena) con contratos en Solidity o off-chain con nuestras librerías en JavaScript." + }, + "theme.ErrorPageContent.title": { + "message": "Esta página no está funcionando.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Intente de nuevo", + "description": "The label of the button to try again when the page crashed" + }, + "theme.NotFound.title": { + "message": "Página No Encontrada", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "No pudimos encontrar lo que buscaba.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Comuníquese con el dueño del sitio que lo vinculó a la URL original y hágale saber que su vínculo está roto.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.admonition.note": { + "message": "nota", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "tip", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.danger": { + "message": "peligro", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "información", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.caution": { + "message": "precaución", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Volver al principio", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archivo", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archivo", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Navegación por la página de la lista de blogs ", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Entradas más recientes", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Entradas más antiguas", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Barra de paginación de publicaciones del blog", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Publicación más reciente", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Publicación más antigua", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "Una publicación|{count} publicaciones", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} etiquetados con \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "Ver todas las etiquetas", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "Cambiar entre el modo día y noche (actualmente en {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "modo noche", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "modo día", + "description": "The name for the light color mode" + }, + "theme.docs.breadcrumbs.home": { + "message": "Página de inicio", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} items", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Navegación de páginas de documentos", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Anterior", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Siguiente", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Un documento etiquetado|{count} documentos etiquetados", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} con \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Versión: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Esta es documentación sin liberar para {siteTitle} {versionLabel} versión.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Esta es documentación para {siteTitle} {versionLabel}, que ya no se mantiene activamente.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Para la documentación actualizada, vea {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "última versión", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Editar esta página", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Enlace directo al encabezado", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " en {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " por {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Última actualización{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versiones", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.tags.tagsListLabel": { + "message": "Etiquetas:", + "description": "The label alongside a tag list" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Cerrar", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Navegación de publicaciones recientes", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Copiado", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copiar código al portapapeles", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Copiar", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Toggle word wrap", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { + "message": "Toggle the collapsible sidebar category '{label}'", + "description": "The ARIA label to toggle the collapsible sidebar category" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Idiomas", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "En esta página", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "Leer Más", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Lea más de {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Lectura de un minuto|{readingTime} min de lectura", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Colapsar barra lateral", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Colapsar barra lateral", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Cerrar la barra de navegación", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Volver al menú principal", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Alternar la barra de navegación", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expandir barra lateral", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Expandir barra lateral", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.common.skipToMainContent": { + "message": "Saltar al contenido principal", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Etiquetas", + "description": "The title of the tag list page" + }, + "footer.left.title": { + "message": "Acerca de" + }, + "footer.left.description": { + "message": "Semaphore es parte de Privacy & Scaling Explorations (PSE), un equipo multidisciplinario apoyado por la Fundación Ethereum. PSE explora nuevos casos de uso para pruebas de conocimiento cero (ZKPs) y otras bases criptográficas." + }, + "footer.right.usedby.title": { + "message": "Utilizado en" + }, + "footer.right.usedby.link1": { + "message": "Unirep" + }, + "footer.right.usedby.link2": { + "message": "Interep" + }, + "footer.right.learn.title": { + "message": "Aprender" + }, + "footer.right.learn.link1": { + "message": "Github" + }, + "footer.right.learn.link2": { + "message": "Docs" + }, + "footer.right.connect.title": { + "message": "Conecta con nosotros" + }, + "footer.right.connect.link1": { + "message": "Discord" + }, + "footer.right.connect.link2": { + "message": "Twitter" + }, + "footer.copyright": { + "message": "Copyright © 2023 Ethereum Foundation" + } +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1.json new file mode 100644 index 00000000..d2ada941 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1.json @@ -0,0 +1,6 @@ +{ + "version.label": { + "message": "V1", + "description": "The label for version V1" + } +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/audit.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/audit.md new file mode 100644 index 00000000..d8c79479 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/audit.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 8 +--- + +# Security audit + +The [Ethereum Foundation](https://ethereum.org/) and [POA +Network](https://www.poa.network/) commissioned [ABDK +Consulting](https://www.abdk.consulting) to audit the source code of Semaphore +as well as relevant circuits in +[circomlib](https://github.com/iden3/circomlib), which contains components +which the Semaphore zk-SNARK uses. + +The summary of the audit results can be found +[here](https://github.com/appliedzkp/semaphore/tree/master/audit). After three +rounds of fixes, all security and performance issues were fixed, and the few +remaining issues are minor and do not affect security. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/contract-api.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/contract-api.md new file mode 100644 index 00000000..702a1ba5 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/contract-api.md @@ -0,0 +1,105 @@ +--- +sidebar_position: 5 +--- + +# Contract API + +## Constructor + +**Contract ABI**: + +`constructor(uint8 _treeLevels, uint232 _firstExternalNullifier)` + +- `_treeLevels`: The depth of the identity tree. +- `_firstExternalNullifier`: The first identity nullifier to add. + +The depth of the identity tree determines how many identity commitments may be +added to this contract: `2 ^ _treeLevels`. Once the tree is full, further +insertions will fail with the revert reason `IncrementalMerkleTree: tree is full`. + +The first external nullifier will be added as an external nullifier to the +contract, and this external nullifier will be active once the deployment +completes. + +## Add, deactivate, or reactivate external nullifiiers + +**Contract ABI**: + +`addExternalNullifier(uint232 _externalNullifier)` + +Adds an external nullifier to the contract. Only the owner can do this. +This external nullifier is active once it is added. + +- `_externalNullifier`: The new external nullifier to set. + +`deactivateExternalNullifier(uint232 _externalNullifier)` + +- `_externalNullifier`: The existing external nullifier to deactivate. + +Deactivate an external nullifier. The external nullifier must already be active +for this function to work. Only the owner can do this. + +`reactivateExternalNullifier(uint232 _externalNullifier)` + +Reactivate an external nullifier. The external nullifier must already be +inactive for this function to work. Only the owner can do this. + +- `_externalNullifier`: The deactivated external nullifier to reactivate. + +## Insert identities + +**Contract ABI**: + +`function insertIdentity(uint256 _identityCommitment)` + +- `_identity_commitment`: The user's identity commitment, which is the hash of + their public key and their identity nullifier (a random 31-byte value). It + should be the output of a Pedersen hash. It is the responsibility of the + caller to verify this. + +**Off-chain `libsemaphore` helper functions**: + +Use `genIdentity()` to generate an `Identity` object, and +`genIdentityCommitment(identity: Identity)` to generate the +`_identityCommitment` value to pass to the contract. + +To convert `identity` to a string and back, so that you can store it in a +database or somewhere safe, use `serialiseIdentity()` and +`unSerialiseIdentity()`. + +See the [Usage section on inserting +identities](./usage#insert-identities) for more information. + +## Broadcast signals + +**Contract ABI**: + +``` +broadcastSignal( + bytes memory _signal, + uint256[8] memory _proof, + uint256 _root, + uint256 _nullifiersHash, + uint232 _externalNullifier +) +``` + +- `_signal`: the signal to broadcast. +- `_proof`: a zk-SNARK proof (see below). +- `_root`: The root of the identity tree, where the user's identity commitment + is the last-inserted leaf. +- `_nullifiersHash`: A uniquely derived hash of the external nullifier, user's + identity nullifier, and the Merkle path index to their identity commitment. + It ensures that a user cannot broadcast a signal with the same external + nullifier more than once. +- `_externalNullifier`: The external nullifier at which the signal is + broadcast. + +**Off-chain `libsemaphore` helper functions**: + +Use `libsemaphore`'s `genWitness()`, `genProof()`, `genPublicSignals()` and +finally `genBroadcastSignalParams()` to generate the parameters to the +contract's `broadcastSignal()` function. + +See the [Usage section on broadcasting +signals](./usage#broadcast-signals) for more information. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/creditsandresources.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/creditsandresources.md new file mode 100644 index 00000000..5d712949 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/creditsandresources.md @@ -0,0 +1,33 @@ +--- +sidebar_position: 9 +--- + +# Credits + +- Barry WhiteHat +- Chih Cheng Liang +- Kobi Gurkan +- Koh Wei Jie +- Harry Roberts + +Many thanks to: + +- ABDK Consulting +- Jordi Baylina / iden3 +- POA Network +- PepperSec +- Ethereum Foundation + +# Resources + +[To Mixers and Beyond: presenting Semaphore, a privacy gadget built on Ethereum](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) - Koh Wei Jie + +[Privacy in Ethereum](https://www.youtube.com/watch?v=maDHYyj30kg) - Barry WhiteHat at the Taipei Ethereum Meetup + +[Snarks for mixing, signaling and scaling by](https://www.youtube.com/watch?v=lv6iK9qezBY) - Barry WhiteHat at Devcon 4 + +[Privacy in Ethereum](https://www.youtube.com/watch?v=zBUo7G95wYE) - Barry WhiteHat at Devcon 5 + +[A trustless Ethereum mixer using zero-knowledge signalling](https://www.youtube.com/watch?v=GzVT16lFOHU) - Koh Wei Jie and Barry WhiteHat at Devcon 5 + +[Hands-on Applications of Zero-Knowledge Signalling](https://www.youtube.com/watch?v=7wd2aAN2jXI) - Koh Wei Jie at Devcon 5 diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/howitworks.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/howitworks.md new file mode 100644 index 00000000..d2c602cf --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/howitworks.md @@ -0,0 +1,137 @@ +--- +sidebar_position: 2 +--- + +# How it works + +## Inserting identities + +An identity is comprised of the following information: + +1. An [EdDSA](https://en.wikipedia.org/wiki/EdDSA) private key. Note that it is + _not_ an Ethereum private key. +2. An identity nullifier, whih is a random 32-byte value. +3. An identity trapdoor, whih is a random 32-byte value. + +An identity commitment is the Pedersen hash of: + +1. The public key associated with the identity's private key. +2. The identity nullifier. +3. The identity trapdoor. + +To register an identity, the user must insert their identity commitment into +Semaphore's identity tree. They can do this by calling the Semaphore contract's +`insertIdentity(uint256 _identityCommitment)` function. See the [API +reference](./contract-api) for more information. + +## Broadcasting signals + +To broadcast a signal, the user must invoke this Semaphore contract function: + +``` +broadcastSignal( + bytes memory _signal, + uint256[8] memory _proof, + uint256 _root, + uint256 _nullifiersHash, + uint232 _externalNullifier +) +``` + +- `_signal`: the signal to broadcast. +- `_proof`: a zk-SNARK proof (see below). +- `_root`: The root of the identity tree, where the user's identity commitment + is the last-inserted leaf. +- `_nullifiersHash`: A uniquely derived hash of the external nullifier, user's + identity nullifier, and the Merkle path index to their identity commitment. + It ensures that a user cannot broadcast a signal with the same external + nullifier more than once. +- `_externalNullifier`: The external nullifier at which the signal is + broadcast. + +To zk-SNARK proof must satisfy the constraints created by Semaphore's zk-SNARK +circuit as described below: + +### The zk-SNARK circuit + +The +[semaphore-base.circom](https://github.com/appliedzkp/semaphore/blob/master/circuits/circom/semaphore-base.circom) +circuit helps to prove the following: + +### That the identity commitment exists in the Merkle tree + +**Private inputs:** + +- `identity_pk`: the user's EdDSA public key +- `identity_nullifier`: a random 32-byte value which the user should save +- `identity_trapdoor`: a random 32-byte value which the user should save +- `identity_path_elements`: the values along the Merkle path to the + user's identity commitment +- `identity_path_index[n_levels]`: the direction (left/right) per tree level + corresponding to the Merkle path to the user's identity commitment + +**Public inputs:** + +- `root`: The Merkle root of the identity tree + +**Procedure:** + +The circuit hashes the public key, identity nullifier, and identity trapdoor to +generate an **identity commitment**. It then verifies the Merkle proof against +the Merkle root and the identity commitment. + +### That the signal was only broadcasted once + +**Private inputs:** + +- `identity_nullifier`: as above +- `identity_path_index`: as above + +**Public inputs:** + +- `external_nullifier`: the 29-byte external nullifier - see above +- `nullifiers_hash`: the hash of the identity nullifier, external nullifier, + and Merkle path index (`identity_path_index`) + +**Procedure:** + +The circuit hashes the given identity nullifier, external nullifier, and Merkle +path index, and checks that it matches the given nullifiers hash. Additionally, +the smart contract ensures that it has not previously seen this nullifiers +hash. This way, double-signalling is impossible. + +### That the signal was truly broadcasted by the user who generated the proof + +**Private inputs:** + +- `identity_pk`: as above +- `auth_sig_r`: the `r` value of the signature of the signal +- `auth_sig_s`: the `s` value of the signature of the signal + +**Public inputs:** + +- `signal_hash`: the hash of the signal +- `external_nullifier`: the 29-byte external nullifier - see above + +**Procedure:** + +The circuit hashes the signal hash and the external nullifier, and verifies +this output against the given public key and signature. This ensures the +authenticity of the signal and prevents front-running attacks. + +## Cryptographic primitives + +Semaphore uses MiMC for the Merkle tree, Pedersen commmitments for the identity +commitments, Blake2 for the nullifiers hash, and EdDSA for the signature. + +MiMC is a relatively new hash function. We use the recommended MiMC +construction from [Albrecht et al](https://eprint.iacr.org/2016/492.pdf), and +there is a prize to break MiMC at [http://mimchash.org](http://mimchash.org) +which has not been claimed yet. + +We have also implemented a version of Semaphore which uses the Poseidon hash +function for the Merkle tree and EdDSA signature verification. This may have +better security than MiMC, allows identity insertions to save about 20% gas, +and roughly halves the proving time. Note, however, that the Poseidon-related +circuits and EVM bytecode generator have not been audited, so use it with +caution. To use it, checkout the `feat/poseidon` branch of this repository. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/libsemaphore.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/libsemaphore.md new file mode 100644 index 00000000..959ad2b4 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/libsemaphore.md @@ -0,0 +1,245 @@ +--- +sidebar_position: 6 +--- + +# libsemaphore + +[`libsemaphore`](https://www.npmjs.com/package/libsemaphore) is a helper +library for Semaphore written in Typescript. Any dApp written in Javascript or +Typescript should use it as it provides useful abstractions over common tasks +and objects, such as identities and proof generation. + +Note that only v1.0.14 and above works with the Semaphore code in this +repository. v0.0.x is compatible with the pre-audited Semaphore code. + +## Available types, interfaces, and functions + +### Types + +**`SnarkBigInt`** + +A big integer type compatible with the `snarkjs` library. Note that it is not +advisable to mix variables of this type with `bigNumber`s or `BigInt`s. +Encapsulates `snarkjs.bigInt`. + +**`EddsaPrivateKey`** + +An [EdDSA](https://tools.ietf.org/html/rfc8032) private key which should be 32 +bytes long. Encapsulates a [`Buffer`](https://nodejs.org/api/buffer.html). + +**`EddsaPublicKey`** + +An EdDSA public key. Encapsulates an array of `SnarkBigInt`s. + +**`SnarkProvingKey`** + +A proving key, which when used with a secret _witness_, generates a zk-SNARK +proof about said witness. Encapsulates a `Buffer`. + +**`SnarkVerifyingKey`** + +A verifying key which when used with public inputs to a zk-SNARK and a +`SnarkProof`, can prove the proof's validity. Encapsulates a `Buffer`. + +**`SnarkWitness`** + +The secret inputs to a zk-SNARK. Encapsulates an array of `SnarkBigInt`s. + +**`SnarkPublicSignals`** + +The public inputs to a zk-SNARK. Encapsulates an array of `SnarkBigInt`s. + +### Interfaces + +**`EddsaKeyPair`** + +Encapsulates an `EddsaPublicKey` and an `EddsaPrivateKey`. + +```ts +interface EddsaKeyPair { + pubKey: EddsaPublicKey + privKey: EddsaPrivateKey +} +``` + +**`Identity`** + +Encapsulates all information required to generate an identity commitment, and +is crucial to creating `SnarkProof`s to broadcast signals. + +```ts +interface Identity { + keypair: EddsaKeyPair + identityNullifier: SnarkBigInt + identityTrapdoor: SnarkBigInt +} +``` + +**`SnarkProof`** + +Note that `broadcastSignal()` accepts a `uint256[8]` array for its `_proof` +parameter. See `genBroadcastSignalParams()`. + +```ts +interface SnarkProof { + pi_a: SnarkBigInt[] + pi_b: SnarkBigInt[][] + pi_c: SnarkBigInt[] +} +``` + +### Functions + +**`genPubKey(privKey: EddsaPrivateKey): EddsaPublicKey`** + +Generates a public EdDSA key from a supplied private key. To generate a private +key, use `crypto.randomBytes(32)` where `crypto` is the built-in Node or +browser module. + +**`genIdentity(): Identity`** + +This is a convenience function to generate a fresh and random `Identity`. That +is, the 32-byte private key for the `EddsaKeyPair` is randomly generated, as +are the distinct 31-byte identity nullifier and the 31-byte identity trapdoor +values. + +**`serialiseIdentity(identity: Identity): string`** + +Converts an `Identity` into a JSON string which looks like this: + +```text +["e82cc2b8654705e427df423c6300307a873a2e637028fab3163cf95b18bb172e","a02e517dfb3a4184adaa951d02bfe0fe092d1ee34438721d798db75b8db083","15c6540bf7bddb0616984fccda7e954a0fb5ea4679ac686509dc4bd7ba9c3b"] +``` + +You can also spell this function as `serializeIdentity`. + +To convert this string back into an `Identity`, use `unSerialiseIdentity()`. + +**`unSerialiseIdentity(string: serialisedId): Identity`** + +Converts the `string` output of `serialiseIdentity()` to an `Identity`. + +You can also spell this function as `unSerializeIdentity`. + +**`genIdentityCommitment(identity: Identity): SnarkBigInt`** + +Generates an identity commitment, which is the hash of the public key, the +identity nullifier, and the identity trapdoor. + +**`async genProof(witness: SnarkWitness, provingKey: SnarkProvingKey): SnarkProof`** + +Generates a `SnarkProof`, which can be sent to the Semaphore contract's +`broadcastSignal()` function. It can also be verified off-chain using +`verifyProof()` below. + +**`genPublicSignals(witness: SnarkWitness, circuit: SnarkCircuit): SnarkPublicSignals`** + +Extracts the public signals to be supplied to the contract or `verifyProof()`. + +**`verifyProof(verifyingKey: SnarkVerifyingKey, proof: SnarkProof, publicSignals: SnarkPublicSignals): boolean`** + +Returns `true` if the given `proof` is valid, given the correct verifying key +and public signals. + +Returns `false` otherwise. + +**`signMsg(privKey: EddsaPrivateKey, msg: SnarkBigInt): EdDSAMiMcSpongeSignature)`** + +Encapsualtes `circomlib.eddsa.signMiMCSponge` to sign a message `msg` using private key `privKey`. + +**`verifySignature(msg: SnarkBigInt, signature: EdDSAMiMcSpongeSignature, pubKey: EddsaPublicKey)`: boolean** + +Returns `true` if the cryptographic `signature` of the signed `msg` is from the +private key associated with `pubKey`. + +Returns `false` otherwise. + +**`setupTree(levels: number, prefix: string): MerkleTree`** + +Returns a Merkle tree created using +[`semaphore-merkle-tree`](https://www.npmjs.com/package/semaphore-merkle-tree) +with the same number of levels which the Semaphore zk-SNARK circuit expects. +This tree is also configured to use `MimcSpongeHasher`, which is also what the +circuit expects. + +`levels` sets the number of levels of the tree. A tree with 20 levels, for +instance, supports up to 1048576 deposits. + +**`genCircuit(circuitDefinition: any)`** + +Returns a `new snarkjs.Circuit(circuitDefinition)`. The `circuitDefinition` +object should be the `JSON.parse`d result of the `circom` command which +converts a `.circom` file to a `.json` file. + +**`async genWitness(...)`** + +This function has the following signature: + +```ts +const genWitness = async ( + signal: string, + circuit: SnarkCircuit, + identity: Identity, + idCommitments: SnarkBigInt[] | BigInt[] | ethers.utils.BigNumber[], + treeDepth: number, + externalNullifier: SnarkBigInt, +) +``` + +- `signal` is the string you wish to broadcast. +- `circuit` is the output of `genCircuit()`. +- `identity` is the `Identity` whose identity commitment you want to prove is + in the set of registered identities. +- `idCommitments` is an array of registered identity commmitments; i.e. the + leaves of the tree. +- `treeDepth` is the number of levels which the Merkle tree used has +- `externalNullifier` is the current external nullifier + +It returns an object as such: + +- `witness`: The witness to pass to `genProof()`. +- `signal`: The computed signal for Semaphore. This is the hash of the + recipient's address, relayer's address, and fee. +- `signalHash`: The hash of the computed signal. +- `msg`: The hash of the external nullifier and the signal hash +- `signature`: The signature on the above msg. +- `tree`: The Merkle tree object after it has been updated with the identity commitment +- `identityPath`: The Merkle path to the identity commmitment +- `identityPathIndex`: The leaf index of the identity commitment +- `identityPathElements`: The elements along the above Merkle path + +Only `witness` is essential to generate the proof; the other data is only +useful for debugging and additional off-chain checks, such as verifying the +signature and the Merkle tree root. + +**`formatForVerifierContract = (proof: SnarkProof, publicSignals: SnarkPublicSignals`** + +Converts the data in `proof` and `publicSignals` to strings and rearranges +elements of `proof.pi_b` so that `snarkjs`'s `verifier.sol` will accept it. +To be specific, it returns an object as such: + +```ts +{ + a: [ proof.pi_a[0].toString(), proof.pi_a[1].toString() ], + b: [ + [ proof.pi_b[0][1].toString(), proof.pi_b[0][0].toString() ], + [ proof.pi_b[1][1].toString(), proof.pi_b[1][0].toString() ], + ], + c: [ proof.pi_c[0].toString(), proof.pi_c[1].toString() ], + input: publicSignals.map((x) => x.toString()), +} +``` + +**`stringifyBigInts = (obj: any) => object`** + +Encapsulates `snarkjs.stringifyBigInts()`. Makes it easy to convert `SnarkProof`s to JSON. + +**`unstringifyBigInts = (obj: any) => object`** + +Encapsulates `snarkjs.unstringifyBigInts()`. Makes it easy to convert JSON to `SnarkProof`s. + +**`genExternalNullifier = (plaintext: string) => string`** + +Each external nullifier must be at most 29 bytes large. This function +keccak-256-hashes a given `plaintext`, takes the last 29 bytes, and pads it +(from the start) with 0s, and returns the resulting hex string. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/quickstart.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/quickstart.md new file mode 100644 index 00000000..0a10bf7e --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/quickstart.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 3 +--- + +# Quick start + +Semaphore has been tested with Node 11.14.0. It will run with Node 12 LTE but +we highly recommend using Node 11.14.0 if you wish to develop on its source +code, as one of its dependencies, `script`, cannot compile when if you use Node 12. + +Use [`nvm`](https://github.com/nvm-sh/nvm) to manage your Node version. + +Clone this repository, install dependencies, and build the source code: + +```bash +git clone git@github.com:kobigurk/semaphore.git && \ +cd semaphore && \ +npm i && \ +npm run bootstrap && \ +npm run build +``` + +**Note**: we use `lerna` to manage the `circuits`, `config`, and `contracts` +subpackages. Do not run `npm install` within any of these directories. Instead, +just run `npm run bootstrap` in the main directory. + +Next, either download the compiled zk-SNARK circuit, proving key, and +verification key (note that these keys are for testing purposes, and not for +production, as there is no certainty that the toxic waste was securely +discarded). + +To download the circuit, proving key, and verification key, run: + +```bash +# Start from the base directory + +./circuits/scripts/download_snarks.sh +``` + +To generate the above files locally instead, run: + +```bash +# Start from the base directory + +./circuits/scripts/build_snarks.sh +``` + +This process should take about 45 minutes. + +Build the Solidity contracts (you need `solc` v 0.5.12 installed in your +`$PATH`): + +```bash +# Start from the base directory + +cd contracts && \ +npm run compileSol +``` + +Run tests while still in the `contracts/` directory: + +```bash +# The first command tests the Merkle tree contract and the second +# tests the Semaphore contract + +npm run test-semaphore && \ +npm run test-mt +``` diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/trustedsetup.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/trustedsetup.md new file mode 100644 index 00000000..a25473ef --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/trustedsetup.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 7 +--- + +# Multi-party trusted setup + +The Semaphore authors will use the [Perpetual Powers of +Tau](https://github.com/weijiekoh/perpetualpowersoftau/) ceremony and a random +beacon as phase 1 of the trusted setup. + +More details about phase 2 will be released soon. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/usage.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/usage.md new file mode 100644 index 00000000..d0f62b22 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/usage.md @@ -0,0 +1,144 @@ +--- +sidebar_position: 4 +--- + +# Usage + +The Semaphore contract forms a base layer for other contracts to create +applications that rely on anonymous signaling. + +First, you should ensure that the proving key, verification key, and circuit +file, which are static, be easily available to your users. These may be hosted +in a CDN or bundled with your application code. + +The Semaphore team has not performed a trusted setup yet, so trustworthy +versions of these files are not available yet. + +Untrusted versions of these files, however, may be obtained via the +`circuits/scripts/download_snarks.sh` script. + +Next, to have full flexibility over Semaphore's mechanisms, write a Client +contract and set the owner of the Semaphore contract as the address of the +Client contract. You may also write a Client contract which deploys a Semaphore +contract in its constructor, or on the fly. + +With the Client contract as the owner of the Semaphore contract, the Client +contract may call owner-only Semaphore functions such as +`addExternalNullifier()`. + +## Add, deactivate, or reactivate external nullifiiers + +These functions add, deactivate, and reactivate an external nullifier respectively. +As each identity can only signal once to an external nullifier, and as a signal +can only be successfully broadcasted to an active external nullifier, these +functions enable use cases where it is necessary to have multiple external +nullifiers or to activate and/or deactivate them. + +Refer to the [high-level explanation of +Semaphore](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) +for more details. + +## Set broadcast permissioning + +Note that `Semaphore.broadcastSignal()` is permissioned by default, so if you +wish for anyone to be able to broadcast a signal, the owner of the Semaphore +contract (either a Client contract or externally owned account) must first +invoke `setPermissioning(false)`. + +See [SemaphoreClient.sol](https://github.com/appliedzkp/semaphore/blob/master/contracts/sol/SemaphoreClient.sol) for an example. + +## Insert identities + +To generate an identity commitment, use the `libsemaphore` functions +`genIdentity()` and `genIdentityCommitment()` Typescript (or Javascript) +functions: + +```ts +const identity: Identity = genIdentity() +const identityCommitment = genIdentityCommitment(identity) +``` + +Be sure to store `identity` somewhere safe. The `serialiseIdentity()` function +can help with this: + +`const serialisedId: string = serialiseIdentity(identity: Identity)` + +It converts an `Identity` into a JSON string which looks like this: + +```text +["e82cc2b8654705e427df423c6300307a873a2e637028fab3163cf95b18bb172e","a02e517dfb3a4184adaa951d02bfe0fe092d1ee34438721d798db75b8db083","15c6540bf7bddb0616984fccda7e954a0fb5ea4679ac686509dc4bd7ba9c3b"] +``` + +To convert this string back into an `Identity`, use `unSerialiseIdentity()`. + +`const id: Identity = unSerialiseIdentity(serialisedId)` + +## Broadcast signals + +First obtain the leaves of the identity tree (in sequence, up to the user's +identity commitment, or more). + +```ts +const leaves = +``` + +Next, load the circuit from disk (or from a remote source): + +```ts +const circuitPath = path.join(__dirname, "/path/to/circuit.json") +const cirDef = JSON.parse(fs.readFileSync(circuitPath).toString()) +const circuit = genCircuit(cirDef) +``` + +Next, use `libsemaphore`'s `genWitness()` helper function as such: + +``` +const result = await genWitness( + signal, + circuit, + identity, + leaves, + num_levels, + external_nullifier, +) +``` + +- `signal`: a string which is the signal to broadcast. +- `circuit`: the output of `genCircuit()` (see above). +- `identity`: the user's identity as an `Identity` object. +- `leaves` the list of leaves in the tree (see above). +- `num_levels`: the depth of the Merkle tree. +- `external_nullifier`: the external nullifier at which to broadcast. + +Load the proving key from disk (or from a remote source): + +```ts +const provingKeyPath = path.join(__dirname, "/path/to/proving_key.bin") +const provingKey: SnarkProvingKey = fs.readFileSync(provingKeyPath) +``` + +Generate the proof (this takes about 30-45 seconds on a modern laptop): + +```ts +const proof = await genProof(result.witness, provingKey) +``` + +Generate the `broadcastSignal()` parameters: + +```ts +const publicSignals = genPublicSignals(result.witness, circuit) +const params = genBroadcastSignalParams(result, proof, publicSignals) +``` + +Finally, invoke `broadcastSignal()` with the parameters: + +```ts +const tx = await semaphoreClientContract.broadcastSignal( + ethers.utils.toUtf8Bytes(signal), + params.proof, + params.root, + params.nullifiersHash, + external_nullifier, + { gasLimit: 500000 } +) +``` diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/what-is-semaphore.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/what-is-semaphore.md new file mode 100644 index 00000000..40fa61b5 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V1/what-is-semaphore.md @@ -0,0 +1,105 @@ +--- +id: introduction +title: What Is Semaphore? +sidebar_position: 1 +--- + +## Overview + +[Semaphore](https://github.com/appliedzkp/semaphore) is a zero-knowledge gadget +which allows Ethereum users to prove their membership of a set which they had +previously joined without revealing their original identity. At the same time, +it allows users to signal their endorsement of an arbitrary string. It is +designed to be a simple and generic privacy layer for Ethereum dApps. Use cases +include private voting, whistleblowing, mixers, and anonymous authentication. +Finally, it provides a simple built-in mechanism to prevent double-signalling +or double-spending. + +This gadget comprises of smart contracts and +[zero-knowledge](https://z.cash/technology/zksnarks/) components which work in +tandem. The Semaphore smart contract handles state, permissions, and proof +verification on-chain. The zero-knowledge components work off-chain to allow +the user to generate proofs, which allow the smart contract to update its state +if these proofs are valid. + +For a formal description of Semaphore and its underlying cryptographic +mechanisms, also see this document +[here](https://github.com/appliedzkp/semaphore/tree/master/spec). + +Semaphore is designed for smart contract and dApp developers, not end users. +Developers should abstract its features away in order to provide user-friendly +privacy. + +Try a simple demo [here](https://weijiekoh.github.io/semaphore-ui/) or read a +high-level description of Semaphore +[here](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b). + +## Basic features + +In sum, Semaphore provides the ability to: + +1. Register an identity in a smart contract, and then: + +2. Broadcast a signal: + + - Anonymously prove that their identity is in the set of registered + identities, and at the same time: + + - Publicly store an arbitrary string in the contract, if and only if that + string is unique to the user and the contract’s current external + nullifier, which is a unique value akin to a topic. This means that + double-signalling the same message under the same external nullifier is + not possible. + +### External nullifiers + +Think of an external nullifier as a voting booth where each user may only cast +one vote. If they try to cast a second vote a the same booth, that vote is +invalid. + +An external nullifier is any 29-byte value. Semaphore always starts with one +external nullifier, which is set upon contract deployment. The owner of the +Semaphore contract may add more external nullifiers, deactivate, or reactivate +existing ones. + +The first time a particular user broadcasts a signal to an active external +nullifier `n`, and if the user's proof of membership of the set of registered +users is valid, the transaction will succeed. The second time she does so to +the same `n`, however, her transaction will fail. + +Additionally, all signals broadcast transactions to a deactivated external +nullifier will fail. + +Each client application must use the above features of Semaphore in a unique +way to achieve its privacy goals. A mixer, for instance, would use one external +nullifier as such: + +| Signal | External nullifier | +| ----------------------------------------------------------------------------- | ---------------------------- | +| The hash of the recipient's address, relayer's address, and the relayer's fee | The mixer contract's address | + +This allows anonymous withdrawals of funds (via a transaction relayer, who is +rewarded with a fee), and prevents double-spending as there is only one +external nullifier. + +An anonymous voting app would be configured differently: + +| Signal | External nullifier | +| ----------------------------------- | ------------------------ | +| The hash of the respondent's answer | The hash of the question | + +This allows any user to vote with an arbitary response (e.g. yes, no, or maybe) +to any question. The user, however, can only vote once per question. + +## About the code + +This repository contains the code for Semaphore's contracts written in +Soliidty, and zk-SNARK circuits written in +[circom](https://github.com/iden3/circom). It also contains Typescript code to +execute tests. + +The code has been audited by ABDK Consulting. Their suggested security and +efficiency fixes have been applied. + +A multi-party computation to produce the zk-SNARK proving and verification keys +for Semaphore will begin in the near future. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2.json new file mode 100644 index 00000000..030d6c12 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2.json @@ -0,0 +1,18 @@ +{ + "version.label": { + "message": "V2", + "description": "The label for version V2" + }, + "sidebar.mySidebar.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar mySidebar" + }, + "sidebar.mySidebar.category.Use cases": { + "message": "Use cases", + "description": "The label for category Use cases in sidebar mySidebar" + }, + "sidebar.mySidebar.category.Technical reference": { + "message": "Technical reference", + "description": "The label for category Technical reference in sidebar mySidebar" + } +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/credits.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/credits.md new file mode 100644 index 00000000..44c69697 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/credits.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 9 +--- + +# Credits + +Semaphore V2 is the work of several people, for a complete list of contributors you can visit our [Github pages](https://github.com/semaphore-protocol/semaphore/graphs/contributors). + +- [Barry WhiteHat](https://github.com/barryWhiteHat) +- [Kobi Gurkan](https://github.com/kobigurk) +- [Koh Wei Jie](https://github.com/weijiekoh) +- [Andrija Novakovic](https://github.com/akinovak) +- [Cedoor](https://github.com/cedoor) diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/deployed-contracts.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/deployed-contracts.md new file mode 100644 index 00000000..628c82dc --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/deployed-contracts.md @@ -0,0 +1,35 @@ +--- +sidebar_position: 5 +--- + +# Deployed contracts + +## Verifiers + +| Contract | Goerli | Arbitrum One | +| -------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| Verifier16.sol | [0xA525...6629](https://goerli.etherscan.io/address/0xA5253ba39381Aa99c4C2C5A4D5C2deC036d06629) | [0x6143...1609](https://arbiscan.io/address/0x6143ECd9Fd1A00EDe1046d456f8aab53a7D71609) | +| Verifier17.sol | [0xe041...01Ab](https://goerli.etherscan.io/address/0xe0418A5f8fBF051D6cbc41Ff29855Dd2a02201Ab) | [0xAc12...Fb02](https://arbiscan.io/address/0xAc12fFFE354D6446eb50dd33E683B78FED73Fb02) | +| Verifier18.sol | [0x7CdB...6797](https://goerli.etherscan.io/address/0x7CdB3336d7d7c55Bce0FB1508594C54521656797) | [0x610a...C701](https://arbiscan.io/address/0x610aeF0F2da3CD1C8bDefe4BDB434Ee146E0C701) | +| Verifier19.sol | [0xbd87...190B](https://goerli.etherscan.io/address/0xbd870921d8A5398a3314C950d1fc63b8C3AB190B) | [0x5477...FCb4](https://arbiscan.io/address/0x5477725177035bbC9d70443eb921D29749D6FCb4) | +| Verifier20.sol | [0x2a96...E099](https://goerli.etherscan.io/address/0x2a96c5696F85e3d2aa918496806B5c5a4D93E099) | [0x3fB2...3136](https://arbiscan.io/address/0x3fB2C0988a37b76e760c44e6516aF720935f3136) | +| Verifier21.sol | [0x5Ec7...67Cd](https://goerli.etherscan.io/address/0x5Ec7d851a52A2a25CEc528F42a7ACA8EcF4667Cd) | [0xDc8f...7DF8](https://arbiscan.io/address/0xDc8f6B8A42836d4566256f4c6C53131DFD127DF8) | +| Verifier22.sol | [0x919d...aA5b](https://goerli.etherscan.io/address/0x919d3d9c05FA7411e334deA5a763354fC7B6aA5b) | [0x6962...32f2](https://arbiscan.io/address/0x6962b5e706be5278eeCb01c286b50A48484632f2) | +| Verifier23.sol | [0x6391...E552](https://goerli.etherscan.io/address/0x63917b00a6dA7865bEfdd107AfC83CC2e6BDE552) | [0x41e4...dF6B](https://arbiscan.io/address/0x41e4796Bd89B4BF04013b559c93fC32E9a2BdF6B) | +| Verifier24.sol | [0xd05C...0E7D](https://goerli.etherscan.io/address/0xd05CAd7d940114c1419098EE3cEA0776ab510E7D) | [0xD528...5b60](https://arbiscan.io/address/0xD528B1D1408ab3583af4694F92b0aFEbE33d5b60) | +| Verifier25.sol | [0x6D98...5ACb](https://goerli.etherscan.io/address/0x6D9862e6140D94E932d94c8BcE74a0BDD0ea5ACb) | [0x1683...33e7](https://arbiscan.io/address/0x1683a27EF9c10c5286dB56412E1272cD0Ca733e7) | +| Verifier26.sol | [0x8c29...6c77](https://goerli.etherscan.io/address/0x8c29e0b77e32f704F03eeCE01c041192A5EB6c77) | [0x7819...4C00](https://arbiscan.io/address/0x78194bB665d1E33b97eE45B1A755c15717E94C00) | +| Verifier27.sol | [0x066c...9c4C](https://goerli.etherscan.io/address/0x066cC22f8CA2A8D90D7Ff77D8a10A27e629c9c4C) | [0x997D...6E42](https://arbiscan.io/address/0x997Dac00E6701Ef7F3518280E5a9922801126E42) | +| Verifier28.sol | [0x698F...6D15](https://goerli.etherscan.io/address/0x698F9507f504E2BD238be7da56E8D9fee60C6D15) | [0xDd3C...68c6](https://arbiscan.io/address/0xDd3C7f4cBA2467aE41c0F614A3c3E24bC80268c6) | +| Verifier29.sol | [0xbBfC...6346](https://goerli.etherscan.io/address/0xbBfC2E201C3c3c6F50063c3Edb4746c6Fcb36346) | [0xe53e...60Cd](https://arbiscan.io/address/0xe53eF12093933D5df5691EAbA3821bD1c1EB60Cd) | +| Verifier30.sol | [0x06bc...4bD1](https://goerli.etherscan.io/address/0x06bcD633988c1CE7Bd134DbE2C12119b6f3E4bD1) | [0x7FeA...340e](https://arbiscan.io/address/0x7FeA07c536ABBB0E7FB3c833376EE4EaDc21340e) | +| Verifier31.sol | [0x133b...cCFE](https://goerli.etherscan.io/address/0x133b69Ce47BF20C49368354914DF47519Ca6cCFE) | [0xe453...2178](https://arbiscan.io/address/0xe4539a592df18936202480FBe77E47DE012F2178) | +| Verifier32.sol | [0xe297...2e2D](https://goerli.etherscan.io/address/0xe2978F79cb4AF62e5C990EE5c7E12fb22ee22e2D) | [0x98c9...32F4](https://arbiscan.io/address/0x98c90845A7870e215cBd7265DDC653E6c07032F4) | + +## Semaphore + +| Contract | Goerli | Arbitrum One | +| ------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| Semaphore.sol | [0x5259...262f](https://goerli.etherscan.io/address/0x5259d32659F1806ccAfcE593ED5a89eBAb85262f) | [0x8633...A604](https://arbiscan.io/address/0x86337c87A56117f8264bbaBA70e5a522C6E8A604) | +| IncrementalBinaryTree.sol | [0x61AE...B236](https://goerli.etherscan.io/address/0x61AE89E372492e53D941DECaaC9821649fa9B236) | [0x91cD...3948](https://arbiscan.io/address/0x91cD2B8573629d00BeC72EA1188d446897BD3948) | +| PoseidonT3.sol | [0xe0A4...350F](https://goerli.etherscan.io/address/0xe0A452533853310C371b50Bd91BB9DCC8961350F) | [0xe0c8...61d0](https://arbiscan.io/address/0xe0c8d1e53D9Bfc9071F6564755FCFf6cC0dB61d0) | diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/glossary.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/glossary.md new file mode 100644 index 00000000..235fa2b0 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/glossary.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 7 +--- + +# Glossary + +## Semaphore identity + +The identity of a user in the Semaphore protocol. +An identity contains the following three values: + +- [Identity commitment](#identity-commitment): the public value. +- Identity trapdoor and identity nullifier: secret values known only by the user. + +## Semaphore group + +A group is a binary incremental [Merkle tree](#merkle-tree) in which each leaf contains an [identity commitment](#identity-commitment) for a user. +The identity commitment proves that the user is a group member without revealing the Semaphore identity of the user. + +Semaphore uses the **Poseidon** hash function to create Merkle trees. +For more information, see the [Poseidon website](https://www.poseidon-hash.info/). + +## Identity commitment + +The public [Semaphore identity](#semaphore-identity) value used in [Semaphore groups](#semaphore-group). + +Semaphore uses the **Poseidon** hash function to create the identity commitment from the Semaphore identity secret values. +For more information, see the [Poseidon website](https://www.poseidon-hash.info/). + +## Merkle tree + +A tree in which every leaf (i.e., a node that doesn't have children) is labelled with the cryptographic hash of a data block, +and every node that isn't a leaf is labelled with the cryptographic hash of its child node labels. +In zero-knowledge protocols, Merkle trees can be used to efficiently summarize and validate large data sets. +To validate that a tree contains a specific leaf, a verifier only needs a portion of the complete data structure. + +For more information, see [Merkle tree in Wikipedia](https://en.wikipedia.org/wiki/Merkle_tree). + +## Nullifier + +A value used to prevent double entry or double signalling. + +See [Circuit nullifier hash](/docs/technical-reference/circuits/#nullifier-hash). + +## Relay + +A third-party who receives a fee for including relayed transactions in the blockchain (McMenamin, Daza, and Fitz. https://eprint.iacr.org/2022/155.pdf, p.3). +To preserve the anonymity of the user broadcasting a signal with Semaphore, an application may use a relayer to post the signal transaction to Ethereum on behalf of the user. + +Applications may provide rewards for relayers and implement front-running prevention mechanisms, such as requiring the signals to include the relayer’s address, binding the +signal to that specific address (https://semaphore.pse.dev/whitepaper-v1.pdf, p.6). + +## Trusted setup files + +The secure, verifiable parameters generated by Semaphore's trusted setup ceremony. +Semaphore uses the trusted setup files to generate and verify valid zero-knowledge proofs. +To generate or verify valid zero-knowledge proofs with Semaphore, applications must include the following Semaphore _trusted setup_ files: + +- semaphore.zkey +- semaphore.wasm +- semaphore.json + +For a complete list of ready-to-use files, see . +To learn more, see the [trusted setup ceremony](https://storage.googleapis.com/trustedsetup-a86f4.appspot.com/semaphore/semaphore_top_index.html). diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/_category_.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/_category_.json new file mode 100644 index 00000000..2a9d3fd8 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Guides", + "position": 2 +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/groups.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/groups.md new file mode 100644 index 00000000..546416ec --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/groups.md @@ -0,0 +1,122 @@ +--- +sidebar_position: 2 +title: Groups +--- + +# Semaphore groups + + + +Use Semaphore in your application or smart contract to create off-chain and on-chain groups. + +A [Semaphore group](/docs/glossary/#semaphore-group) contains [identity commitments](/docs/glossary/#identity-commitment) of group members. +Example uses of groups include the following: + +- Poll question that attendees join to rate an event. +- Ballot that members join to vote on a proposal. +- Whistleblowers who are verified employees of an organization. + +A Semaphore group is an [incremental Merkle tree](/docs/glossary/#incremental-merkle-tree), and group members (i.e., [identity commitments](/docs/glossary/#identity-commitments)) are tree leaves. +Semaphore groups set the following two parameters: + +- **Tree depth**: the maximum number of members a group can contain (`max size = 2 ^ tree depth`). +- **Zero value**: the value used to calculate the zero nodes of the incremental Merkle tree. + +Learn how to work with groups. + +- [**Off-chain groups**](#off-chain-groups) +- [**On-chain groups**](#on-chain-groups) + +## Off-chain groups + +- [Create a group](#create-a-group) +- [Add members](#add-members) +- [Remove or update members](#remove-or-update-members) + +### Create a group + +Use the [`@semaphore-protocol/group`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/group) library `Group` class to create an off-chain group. + +#### Options + +- **Tree depth**: (_default `20`_) the maximum number of members a group can contain (`max size = 2 ^ tree depth`). +- **Zero value**: (_default `BigInt(0)`_) the value for a tree node that doesn't have a member assigned. + +To create a group with default _`treeDepth`_ and _`zeroValue`_, call the `Group` constructor without parameters--for example: + +```ts +import { Group } from "@semaphore-protocol/group" + +// Default parameters: treeDepth = 20, zeroValue = BigInt(0). +const group = new Group() +``` + +The following example code passes _`treeDepth`_ to create a group for `2 ^ 30 = 1073741824` members: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(30) +``` + +The following example code creates a group with a _`zeroValue`_ of `BigInt(1)`: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(20, BigInt(1)) +``` + +### Add members + +Use the `Group addMember` function to add a member (identity commitment) to a group--for example: + +```ts +group.addMember(identityCommitment) +``` + +To add a batch of members to a group, pass an array to the `Group addMembers` function--for example: + +```ts +group.addMembers([identityCommitment1, identityCommitment2]) +``` + +### Remove or update members + +To remove members from a group, pass the member index to the `Group removeMember` function--for example: + +```ts +group.removeMember(0) +``` + +To update members in a group, pass the member index and the new value to the `Group updateMember` function--for example: + +```ts +group.updateMember(0, 2) +``` + +:::caution +Removing a member from a group sets the node value to `zeroValue`. +Given that the node isn't removed, and the length of the `group.members` array doesn't change. +::: + +## On-chain groups + +The [`SemaphoreGroups`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/base/SemaphoreGroups.sol) contract uses the [`IncrementalBinaryTree`](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/incremental-merkle-tree.sol/contracts/IncrementalBinaryTree.sol) library and provides methods to create and manage groups. + +:::info +You can import `SemaphoreGroups` and other Semaphore contracts from the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) NPM module. +::: + +Alternatively, you can use an already deployed [`Semaphore`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/Semaphore.sol) contract and use its group external functions. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/identities.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/identities.md new file mode 100644 index 00000000..ae3221bd --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/identities.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 1 +title: Identities +--- + +# Semaphore identities + +In order to join a [Semaphore group](/docs/glossary#semaphore-group), a user must first create a [Semaphore identity](/docs/glossary#semaphore-identity). +A Semaphore identity contains two values generated with the identity: + +- Identity trapdoor +- identity nullifier + +To use and verify the identity, the identity owner (user) must know the trapdoor and nullifier values. +To prevent fraud, the owner should keep both values secret. + +## Create identities + +In your code, use the [`@semaphore-protocol/identity`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/identity) library to create a Semaphore identity _deterministically_ (from the hash of a message) or _randomly_. + +- [**Create random identities**](#create-random-identities) +- [**Create deterministic identities**](#create-deterministic-identities) + +### Create random identities + +To create a random identity, instantiate `Identity` without any parameters--for example: + +```ts +import { Identity } from "@semaphore-protocol/identity" + +const { trapdoor, nullifier, commitment } = new Identity() +``` + +The new identity contains two random secret values: `trapdoor` and `nullifier`, and one public value: `commitment`. + +The Poseidon hash of the identity nullifier and trapdoor is called the _identity secret_, +and its hash is the _identity commitment_. + +An identity commitment, similarly to Ethereum addresses, is a public value used +in Semaphore groups to represent the identity of a group member. The secret values are similar to +Ethereum private keys and are used to generate Semaphore zero-knowledge proofs and authenticate signals. + +### Create deterministic identities + +If you pass a message as a parameter, Semaphore generates `trapdoor` and `nullifier` +from the _SHA256_ hash of the message. +The message might be a password or a message that the user cryptographically signs with a private key. + +When using deterministic identities, you should always keep the message secret. +Given that the hash is deterministic, anyone with the same message can recreate the same identity. + +```ts +const identity = new Identity("secret-message") +``` + +:::tip +Building a system to save or recover secret values of Semaphore identities is nontrivial. +You may choose to delegate such functionality to existing wallets such as Metamask--for example: + +1. In Metamask, a user signs a message with the private key of their Ethereum account. +2. In your application, the user creates a deterministic identity with the signed message. +3. The user can now recreate their Semaphore identity whenever they want by signing the same message with their Ethereum account in Metamask. + +::: + +## Save your identities + +You can output an identity as a JSON string that you can save and reuse later. +The `Identity.toString()` method generates a JSON array from an identity--for example: + +```ts +console.log(identity.toString()) // View the identity trapdoor and nullifier. + +// '["8255d...", "62c41..."]' +``` + +The array contains the trapdoor and nullifier. + +To reuse the saved identity, pass the JSON to the `Identity()` constructor. + +```ts +const identity2 = new Identity(identity.toString()) +``` diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/proofs.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/proofs.md new file mode 100644 index 00000000..e24a53bf --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/guides/proofs.md @@ -0,0 +1,110 @@ +--- +sidebar_position: 3 +title: Proofs +--- + +# Semaphore proofs + +Learn how to use Semaphore to generate and verify zero-knowledge proofs. + +Once a user joins their [Semaphore identity](/docs/glossary#semaphore-identity) to a [Semaphore group](/docs/glossary#semaphore-group), the user can signal anonymously with a zero-knowledge proof that proves the following: + +- The user is a member of the group. +- The same user created the signal and the proof. + +Developers can use Semaphore for the following: + +- [**Generate a proof off-chain**](#generate-a-proof-off-chain) +- [**Verify a proof off-chain**](#verify-a-proof-off-chain) +- [**Verify a proof on-chain**](#verify-a-proof-on-chain) + +## Generate a proof off-chain + +Use the [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/proof) library to generate an off-chain proof. +To generate a proof, pass the following properties to the `generateProof` function: + +- `identity`: The Semaphore identity of the user broadcasting the signal and generating the proof. +- `group`: The group to which the user belongs. +- `externalNullifier`: The value that prevents double-signaling. +- `signal`: The signal the user wants to send anonymously. +- `snarkArtifacts`: The `zkey` and `wasm` [trusted setup files](/docs/glossary/#trusted-setup-files). + +In the voting system use case, once all the voters have joined their [identities](/docs/guides/identities#create-an-identity) to the ballot [group](/docs/guides/groups), +a voter can generate a proof to vote for a proposal. +In the call to `generateProof`, the voting system passes the unique ballot ID (the [Merkle tree](/docs/glossary/#merkle-tree/) root of the group) as the +`externalNullifier` to prevent the voter signaling more than once for the ballot. +The following code sample shows how to use `generateProof` to generate the voting proof: + +```ts +import { generateProof } from "@semaphore-protocol/proof" + +const externalNullifier = group.root +const signal = "proposal_1" + +const fullProof = await generateProof(identity, group, externalNullifier, signal, { + zkeyFilePath: "./semaphore.zkey", + wasmFilePath: "./semaphore.wasm" +}) +``` + +## Verify a proof off-chain + +Use the [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/proof) library to verify a Semaphore proof off-chain. +To verify a proof, pass the following to the `verifyProof` function: + +- _`proof`_: the Semaphore proof. +- _`verificationKey`_: the JavaScript object in the `semaphore.json` [trusted setup file](/docs/glossary/#trusted-setup-files). + +The following code sample shows how to parse the verification key object from `semaphore.json` +and verify the previously generated proof: + +```ts +import { verifyProof } from "@semaphore-protocol/proof" + +const verificationKey = JSON.parse(fs.readFileSync("./semaphore.json", "utf-8")) + +await verifyProof(verificationKey, fullProof) // true or false. +``` + +`verifyProof` returns a Promise that resolves to `true` or `false`. + +## Verify a proof on-chain + +Use the [`SemaphoreCore`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/base/SemaphoreCore.sol) contract to verify proofs on-chain. It uses a verifier deployed to Ethereum and provides methods hash the signal and verify a proof. + +:::info +You can import `SemaphoreCore` and other Semaphore contracts from the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) NPM module. +::: + +To verify Semaphore proofs in your contract, import `SemaphoreCore` and pass the following to the `_verifyProof` internal method: + +- _`signal`_: The Semaphore signal to prove. +- _`root`_: The root of the Merkle tree. +- _`nullifierHash`_: a [nullifier hash](#retrieve-a-nullifier-hash). +- _`externalNullifier`_: The external nullifier. +- _`proof`_: A [_Solidity-compatible_ Semaphore proof](#generate-a-solidity-compatible-proof). +- _`verifier`_: The verifier address. + +Remember to save the `nullifierHash` on-chain to avoid double-signaling. + +Alternatively, you can use an already deployed [`Semaphore`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/Semaphore.sol) contract and use its `verifiyProof` external function. + +### Generate a Solidity-compatible proof + +To transform a proof to be compatible with Solidity contracts, pass the proof to the `packToSolidityProof` utility function--for example: + +```ts +import { packToSolidityProof } from "@semaphore-protocol/proof" + +const solidityProof = packToSolidityProof(fullProof.proof) +``` + +Semaphore returns a new Solidity-compatible instance of the proof. + +### Retrieve a nullifier hash + +To get the Semaphore proof nullifier hash, access the proof's `publicSignals.nullifierHash` property--for example: + +```ts +const { nullifierHash } = fullProof.publicSignals +``` diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/quick-setup.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/quick-setup.md new file mode 100644 index 00000000..0ae6ad38 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/quick-setup.md @@ -0,0 +1,304 @@ +--- +sidebar_position: 2 +--- + +# Quick setup + +Set up a new Hardhat project with Semaphore. +Learn how to create and test an Ethereum smart contract that uses zero-knowledge +proofs to verify membership. + +To check out the code used in this guide, visit the +[quick-setup](https://github.com/semaphore-protocol/quick-setup) repository. + +1. [**Create a Node.js project**](#create-a-nodejs-project) +2. [**Install Hardhat**](#install-hardhat) +3. [**Install Semaphore packages**](#install-semaphore-packages) +4. [**Create the Semaphore contract**](#create-the-semaphore-contract) +5. [**Create a Hardhat task**](#create-a-hardhat-task) +6. [**Test your contracts**](#test-your-contract) +7. [**Deploy your contract**](#deploy-your-contract) + +## Create a Node.js project + +1. Follow the [Node.js _LTS version_](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) + instructions to install `node` (Hardhat may not work with Node.js _Current_). + +2. Follow the [Yarn](https://yarnpkg.com/getting-started/install) instructions + to download and install the `yarn` package manager. + +3. Create a directory for the project and change to the new directory. + + ```bash + mkdir semaphore-example + cd semaphore-example + ``` + +4. In your terminal, run `yarn init` to initialize the Node.js project. + +## Install Hardhat + +[Hardhat](https://hardhat.org/) is a development environment you can use to +compile, deploy, test, and debug Ethereum software. +Hardhat includes the Hardhat Network, a local Ethereum network for development. + +1. Use `yarn` to install [Hardhat](https://hardhat.org/getting-started/): + + ```bash + yarn add hardhat --dev + ``` + +2. Use `yarn` to run `hardhat` and create a JavaScript project: + + ```bash + yarn hardhat + # At the prompt, select "Create a JavaScript project" + # and then enter through the prompts. + ``` + +## Install Semaphore packages + +Semaphore provides contracts, JavaScript libraries and an Hardhat plugin for developers building zero-knowledge applications. + +- `@semaphore-protocol/contracts` provides contracts to manage groups and verify Semaphore proofs on-chain. +- JavaScript libraries help developers build zero-knowledge applications. +- `@semaphore-protocol/hardhat` allow developers Hardhat tasks to deploy verifiers and Semaphore contracts. + +To install these dependencies for your project, do the following: + +1. Use `yarn` to install `@semaphore-protocol/contracts`: + + ```bash + yarn add @semaphore-protocol/contracts@2.6.1 + ``` + +2. Use `yarn` to install the Semaphore JavaScript libraries and the Hardhat plugin: + + ```bash + yarn add @semaphore-protocol/identity@2.6.1 @semaphore-protocol/group@2.6.1 @semaphore-protocol/proof@2.6.1 @semaphore-protocol/hardhat@0.1.0 --dev + ``` + +For more detail about _Semaphore contracts_, see [Contracts](https://semaphore.pse.dev/docs/technical-reference/contracts). +To view the source of our packages, see the [semaphore](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1#-packages) repository. + +## Create the Semaphore contract + +Create a `Greeter` contract that uses the `Semaphore.sol` contract: + +1. Rename `Lock.sol` to `Greeter.sol` and replace the content with the following: + + ```solidity title="./contracts/Greeter.sol" + //SPDX-License-Identifier: MIT + pragma solidity ^0.8.0; + + import "@semaphore-protocol/contracts/interfaces/ISemaphore.sol"; + + /// @title Greeter contract. + /// @dev The following code is just an example to show how Semaphore can be used. + contract Greeter { + event NewGreeting(bytes32 greeting); + event NewUser(uint256 identityCommitment, bytes32 username); + + ISemaphore public semaphore; + + uint256 groupId; + mapping(uint256 => bytes32) users; + + constructor(address semaphoreAddress, uint256 _groupId) { + semaphore = ISemaphore(semaphoreAddress); + groupId = _groupId; + + semaphore.createGroup(groupId, 20, 0, address(this)); + } + + function joinGroup(uint256 identityCommitment, bytes32 username) external { + semaphore.addMember(groupId, identityCommitment); + + users[identityCommitment] = username; + + emit NewUser(identityCommitment, username); + } + + function greet( + bytes32 greeting, + uint256 merkleTreeRoot, + uint256 nullifierHash, + uint256[8] calldata proof + ) external { + semaphore.verifyProof(groupId, merkleTreeRoot, greeting, nullifierHash, groupId, proof); + + emit NewGreeting(greeting); + } + } + ``` + +## Create a Hardhat task + +Hardhat lets you write [tasks](https://hardhat.org/guides/create-task.html#creating-a-task) +that automate building and deploying smart contracts and dApps. +To create a task that deploys the `Greeter` contract, do the following: + +1. Create a `tasks` folder and add a `./tasks/deploy.js` file that contains the following: + + ```javascript title="./tasks/deploy.js" + const { task, types } = require("hardhat/config") + + task("deploy", "Deploy a Greeter contract") + .addOptionalParam("semaphore", "Semaphore contract address", undefined, types.address) + .addParam("group", "Group identifier", 42, types.int) + .addOptionalParam("logs", "Print the logs", true, types.boolean) + .setAction(async ({ logs, semaphore: semaphoreAddress, group: groupId }, { ethers, run }) => { + if (!semaphoreAddress) { + const { address: verifierAddress } = await run("deploy:verifier", { logs, merkleTreeDepth: 20 }) + + const { address } = await run("deploy:semaphore", { + logs, + verifiers: [ + { + merkleTreeDepth: 20, + contractAddress: verifierAddress + } + ] + }) + + semaphoreAddress = address + } + + const Greeter = await ethers.getContractFactory("Greeter") + + const greeter = await Greeter.deploy(semaphoreAddress, groupId) + + await greeter.deployed() + + if (logs) { + console.log(`Greeter contract has been deployed to: ${greeter.address}`) + } + + return greeter + }) + ``` + +2. In your `hardhat.config.js` file, add the following: + + ```javascript title="./hardhat.config.js" + require("@nomiclabs/hardhat-waffle") + require("@semaphore-protocol/hardhat") + require("./tasks/deploy") // Your deploy task. + + module.exports = { + solidity: "0.8.4" + } + ``` + +## Test your contract + +[`hardhat-waffle`](https://hardhat.org/plugins/nomiclabs-hardhat-waffle.html) +lets you write tests with the [Waffle](https://getwaffle.io/) test framework +and [Chai assertions](https://www.chaijs.com/). + +1. Use `yarn` to install the `hardhat-waffle` plugin and dependencies for smart + contract tests: + + ```bash + yarn add -D @nomiclabs/hardhat-waffle 'ethereum-waffle@^3.0.0' \ + @nomiclabs/hardhat-ethers 'ethers@^5.0.0' chai + ``` + +2. Download the Semaphore [zk trusted setup files](http://www.trusted-setup-pse.org/) + and copy them to the `./static` folder. + + ```bash + cd static + wget http://www.trusted-setup-pse.org/semaphore/20/semaphore.zkey + wget http://www.trusted-setup-pse.org/semaphore/20/semaphore.wasm + ``` + + Learn more about [trusted setup files](/docs/glossary/#trusted-setup-files). + +3. Rename the `Lock.js` test file to `Greeter.js` and replace the content with the following: + + ```javascript title="./test/Greeter.js" + const { Identity } = require("@semaphore-protocol/identity") + const { Group } = require("@semaphore-protocol/group") + const { generateProof, packToSolidityProof, verifyProof } = require("@semaphore-protocol/proof") + const { expect } = require("chai") + const { run, ethers } = require("hardhat") + + describe("Greeter", function () { + let greeter + + const users = [] + const groupId = 42 + const group = new Group() + + before(async () => { + greeter = await run("deploy", { logs: false, group: groupId }) + + users.push({ + identity: new Identity(), + username: ethers.utils.formatBytes32String("anon1") + }) + + users.push({ + identity: new Identity(), + username: ethers.utils.formatBytes32String("anon2") + }) + + group.addMember(users[0].identity.generateCommitment()) + group.addMember(users[1].identity.generateCommitment()) + }) + + describe("# joinGroup", () => { + it("Should allow users to join the group", async () => { + for (let i = 0; i < group.members.length; i++) { + const transaction = greeter.joinGroup(group.members[i], users[i].username) + + await expect(transaction).to.emit(greeter, "NewUser").withArgs(group.members[i], users[i].username) + } + }) + }) + + describe("# greet", () => { + const wasmFilePath = "./static/semaphore.wasm" + const zkeyFilePath = "./static/semaphore.zkey" + + it("Should allow users to greet", async () => { + const greeting = ethers.utils.formatBytes32String("Hello World") + + const fullProof = await generateProof(users[1].identity, group, groupId, greeting, { + wasmFilePath, + zkeyFilePath + }) + const solidityProof = packToSolidityProof(fullProof.proof) + + const transaction = greeter.greet( + greeting, + fullProof.publicSignals.merkleRoot, + fullProof.publicSignals.nullifierHash, + solidityProof + ) + + await expect(transaction).to.emit(greeter, "NewGreeting").withArgs(greeting) + }) + }) + }) + ``` + +4. Run the following `yarn` commands to compile and test your contract: + + ```bash + yarn hardhat compile + yarn hardhat test + ``` + +## Deploy your contract + +To deploy your contract in a local Hardhat network (and use it in your dApp), run the following `yarn` commands: + +```bash +yarn hardhat node +yarn hardhat deploy --group 42 --network localhost # In another tab. +``` + +For a more complete demo that provides a starting point for your dApp, +see [semaphore-boilerplate](https://github.com/semaphore-protocol/boilerplate/). diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/resources.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/resources.md new file mode 100644 index 00000000..4cf095b6 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/resources.md @@ -0,0 +1,19 @@ +--- +sidebar_position: 8 +--- + +# Resources + +[Semaphore V2 is Live!](https://medium.com/privacy-scaling-explorations/semaphore-v2-is-live-f263e9372579) - Privacy and Scaling Explorations + +[To Mixers and Beyond: presenting Semaphore, a privacy gadget built on Ethereum](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) - Koh Wei Jie + +[Privacy in Ethereum](https://www.youtube.com/watch?v=maDHYyj30kg) - Barry WhiteHat at the Taipei Ethereum Meetup + +[Snarks for mixing, signaling and scaling by](https://www.youtube.com/watch?v=lv6iK9qezBY) - Barry WhiteHat at Devcon 4 + +[Privacy in Ethereum](https://www.youtube.com/watch?v=zBUo7G95wYE) - Barry WhiteHat at Devcon 5 + +[A trustless Ethereum mixer using zero-knowledge signalling](https://www.youtube.com/watch?v=GzVT16lFOHU) - Koh Wei Jie and Barry WhiteHat at Devcon 5 + +[Hands-on Applications of Zero-Knowledge Signalling](https://www.youtube.com/watch?v=7wd2aAN2jXI) - Koh Wei Jie at Devcon 5 diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/subgraph.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/subgraph.md new file mode 100644 index 00000000..6805aa7e --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/subgraph.md @@ -0,0 +1,51 @@ +--- +sidebar_position: 6 +--- + +# Subgraph + +[The Graph](https://thegraph.com/) is a protocol for indexing networks like Ethereum and IPFS. +Site owners publish _subgraphs_ that expose site data for anyone to query. +Semaphore's subgraph allows you to retrieve data from the [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/Semaphore.sol) smart contract. + +:::tip +The Graph protocol uses the [GraphQL](https://graphql.org/) query lanaguage. For examples, see the [GraphQL API documentation](https://thegraph.com/docs/developer/graphql-api). Visit the [subgraph repository](https://github.com/semaphore-protocol/subgraph) to see the list of Semaphore subgraphs. +::: + +## Schema + +### MerkleTree + +- `id`: unique identifier among all MerkleTree entities, +- `depth`: Merkle tree depth, +- `root`: Merkle tree root, +- `zeroValue`: Merkle tree zero value, +- `numberOfLeaves`: total number of tree leaves, +- `group`: link to the Group entity. + +### Group + +- `id`: unique identifier among all Group entities, +- `merkleTree`: link to the MerkleTree entity, +- `timestamp`: block timestamp, +- `admin`: admin of the group, +- `members`: list of group members. +- `verifiedProofs`: list of group proofs. + +### Member + +- `id`: unique identifier among all Member entities, +- `identityCommitment`: Semaphore identity commitment, +- `timestamp`: block timestamp, +- `index`: index of the tree leaf, +- `group`: link to the Group entity. + +### VerifiedProof + +- `id`: unique identifier among all VerifiedProof entities, +- `signal`: user's signal, +- `merkleTreeRoot`: Merkle tree root, +- `nullifierHash`: nullifier hash, +- `externalNullifier`: external nullifier, +- `timestamp`: block timestamp, +- `group`: link to the Group entity. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/_category_.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/_category_.json new file mode 100644 index 00000000..2187e794 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Technical reference", + "position": 4 +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/circuits.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/circuits.md new file mode 100644 index 00000000..b04d609b --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/circuits.md @@ -0,0 +1,57 @@ +--- +sidebar_position: 2 +--- + +# Circuits + +The [Semaphore circuit](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/circuits) is the heart of the protocol and consists of three parts: + +- [**Proof of membership**](/docs/technical-reference/circuits#proof-of-membership) +- [**Nullifier hash**](/docs/technical-reference/circuits#nullifier-hash) +- [**Signal**](/docs/technical-reference/circuits#signal) + +![Semaphore circuit](https://github.com/semaphore-protocol/semaphore/raw/v2.6.1/packages/circuits/scheme.png) + +The diagram above shows how the input signals are used in the Semaphore circuit and how the outputs are calculated. + +## Proof of membership + +The circuit hashes the hash of the identity nullifier with the identity trapdoor to generate an identity commitment. Then, it verifies the proof of membership against the Merkle root and the identity commitment. + +**Private inputs:** + +- `treeSiblings[nLevels]`: the values along the Merkle path to the user's identity commitment, +- `treePathIndices[nLevels]`: the direction (0/1) per tree level corresponding to the Merkle path to the user's identity commitment, +- `identityNullifier`: the 32-byte identity secret used as nullifier, +- `identityTrapdoor`: the 32-byte identity secret used as trapdoor. + +**Public outputs:** + +- `root`: The Merkle root of the tree. + +## Nullifier hash + +The circuit hashes the identity nullifier with the external nullifier and then checks that the result matches the provided nullifier hash. +Nullifier hashes saved in a Semaphore smart contract allow the contract to reject a proof that contains a used nullifier hash. + +**Private inputs:** + +- `identityNullifier`: the 32-byte identity secret used as a nullifier. + +**Public inputs:** + +- `externalNullifier`: the 32-byte external nullifier. + +**Public outputs:** + +- `nullifierHash`: the hash of the identity nullifier and the external nullifier; used to prevent double-signaling. + +**Procedure:** + +## Signal + +The circuit calculates a dummy square of the signal hash to prevent any tampering with the proof. + +**Public inputs:** + +- `signalHash`: the hash of the user's signal. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/contracts.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/contracts.md new file mode 100644 index 00000000..100ae45b --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/technical-reference/contracts.md @@ -0,0 +1,50 @@ +--- +sidebar_position: 3 +--- + +# Contracts + +Semaphore includes three types of contracts: + +- [**Base contracts**](/docs/technical-reference/contracts#base-contracts) +- [**Extension contracts**](/docs/technical-reference/contracts#extension-contracts) +- [**Verifiers**](/docs/technical-reference/contracts#verifiers) + +:::info +To use Semaphore contracts and interfaces in your project, +install the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) NPM package. +::: + +## Base contracts + +Semaphore provides the following base contracts: + +- [`SemaphoreCore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/base/SemaphoreCore.sol): contains the functions to verify Semaphore proofs; +- [`SemaphoreGroups.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/base/SemaphoreGroups.sol): contains the functions to create groups and add/remove members. + +These contracts are closely related to the protocol. +You can inherit them in your contract or you can use [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/Semaphore.sol), which inherits them for you. +See our [deployed contracts](/docs/deployed-contracts#semaphore) to find the addresses for your network. + +:::info +While some dApps may use on-chain groups, others may prefer to use off-chain groups, saving only their tree roots in the contract. +::: + +## Extension contracts + +- [`SemaphoreVoting.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/extensions/SemaphoreVoting.sol): voting contract that contains the essential functions to create polls, add voters, and anonymously cast votes. +- [`SemaphoreWhistleblowing.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/extensions/SemaphoreWhistleblowing.sol): whistleblowing contract that contains the essential functions to create entities (for example: non-profit organizations), add whistleblowers, and anonymously publish leaks. + +These contracts extend the protocol to provide application logic for specific use-cases. +More extensions will be added in the future. + +## Verifiers + +To verify Semaphore proofs, the [`SemaphoreCore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/base/SemaphoreCore.sol) contract requires the address of a deployed verifier contract. +You can choose to manually deploy the [verifier](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/verifiers) you prefer or you can use one of our [deployed verifiers](/docs/deployed-contracts#verifiers). + +Each verifier name indicates the tree depth that it can verify. +For example, given a Semaphore proof generated with a tree depth `20`: + +- The `Verifier20.sol` contract can verify the proof. +- The [group](/docs/guides/groups) used for the proof can have a maximum `2^20=1048576` members. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/use-cases/_category_.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/use-cases/_category_.json new file mode 100644 index 00000000..25e2a80c --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/use-cases/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Use cases", + "position": 3 +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/use-cases/private-voting.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/use-cases/private-voting.md new file mode 100644 index 00000000..233f3818 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/use-cases/private-voting.md @@ -0,0 +1,137 @@ +--- +sidebar_position: 1 +--- + +# Private voting use case + +The private voting use case describes how Semaphore interacts with your users and Ethereum to allow users to cast private votes in your application. +Learn how Semaphore enables applications to do the following: + +- Register members as voters. +- Allow members to vote anonymously. +- Prove voter membership. +- Record and prove votes. +- Prevent double-voting. + +## Roles + +- **[Developer or community admin](#developer-or-community-admin)** +- **[Community member (dApp user)](#community-member)** +- **[Relay](#relay)** + +### Developer or community admin + +As a developer or community admin, you deploy the following: + +- **Smart contract on Ethereum**: implements the Semaphore **base contract** to create a poll (Semaphore **group** that members join to vote), post transactions, and verify proofs on Ethereum. +- **Decentralized application (dApp)**: your application that provides a user interface (UI) where members join a poll and vote on a proposal. + +### Community member + +Community members connect their wallets to the dApp to take the following actions: + +1. Verify ownership of the community token. +2. Generate an anonymous ID. +3. Cast a vote. + +### Relay + +To preserve anonymity and avoid disclosing the member's wallet address, the dApp may use a [relay](/docs/glossary/#relay) to broadcast the vote. +The relay calls the **contract** function that then posts the member's vote transaction to Ethereum. + +## Private voting + +Consider a scenario where your community issues a token that users can mint. +The token might be a Proof of Attendance (POAP), NFT, or social token that your users can mint to receive membership and vote in your community. + +The voting scenario has the following steps: + +1. [Create a poll](#create-a-poll): Coordinator creates a poll, or _group_, in which members can vote on a proposal. +2. [Register voters](#register-voters): Members join the poll to vote. +3. [Record votes](#record-votes): Once the poll opens, members may cast one vote, or _signal_, on the topic. + +### Create a poll + +A community coordinator or dApp administrator uses the deployed smart contract to create an on-chain (Ethereum) poll, a [Semaphore group](/docs/guides/groups/) that members can join and cast votes to. + +In the following sample code, the voting contract declares a `createPoll` function that uses the Semaphore base `_createGroup` function: + +```ts title="https://github.com/semaphore-protocol/semaphore/contracts/extensions/SemaphoreVoting.sol" + +function createPoll( + uint256 pollId, + address coordinator, + uint8 depth +) public override { + require(address(verifiers[depth]) != address(0), "SemaphoreVoting: depth value is not supported"); + + // highlight-next-line + _createGroup(pollId, depth, 0); + + Poll memory poll; + + poll.coordinator = coordinator; + + polls[pollId] = poll; + + emit PollCreated(pollId, coordinator); +} +``` + +A poll is a Semaphore [group](/docs/guides/groups/) that stores the following: + +- A topic to vote on. +- The public ID of the poll creator. +- [Semaphore IDs](/docs/guides/identities/) of members who joined the poll. + +To create the poll, the administrator calls the smart contract function--for example: + +```ts +SemaphoreVoting.createPoll(pollId, coordinator, depth) +``` + +Next, learn how to [register voters](#register-voters) for the poll. + +### Register voters + +Before a user can register to vote, the dApp needs to verify membership by checking the user's wallet for the NFT. +To grant access to the wallet, the user clicks a `Connect wallet` button in the dApp and allows the dApp to check for the NFT. +Once a member is verified, the dApp provides the following member interactions: + +1. [Generate a private identity](#generate-a-private-identity). +2. [Join a poll](#join-a-poll). + +:::info +To learn how to connect to Ethereum wallets, visit the [ethers.js Getting Started documentation]((https://docs.ethers.io/v5/getting-started). +::: + +#### Generate a private identity + +To generate a private identity, the member completes a form in the dApp UI. +With the form values and the `@semaphore-protocol/identity` library, the dApp prompts the member to sign a wallet message and then generates the signed private identity. +The private identity is known only to the member and can be used in future interactions with the dApp. + +Next, learn how members [join a poll](#join-a-poll). + +#### Join a poll + +Once the member has a private identity for the dApp, the member may select a poll to vote in. +When the member selects a poll, the dApp does the following: + +1. Uses the `@semaphore-protocol/identity` library to generate an anonymous Semaphore ID, or _identity commitment_, from the private identity. +2. Calls a contract function that adds the new Semaphore ID to the on-chain poll. + +With a member registered for a poll, learn how the dApp [records votes](#record-votes). + +### Record votes + +Once members have joined a poll, the coordinator starts the poll to allow voting. +When a member votes (for example, by selecting a radio button), then the dApp takes the following actions: + +1. Uses the `@semaphore-protocol/proof` library to create a proof of the vote, the poll identifier, the Semaphore ID, and a [nullifier](/docs/glossary/#nullifier) that prevents double-voting. +2. Sends the vote proof to the [relay](#relay). + +### Related + +- To get started developing with Semaphore, see the [Quick setup](/docs/quick-setup/) guide. +- For an example app that you can use to start your own project, see [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate). diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/what-is-semaphore.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/what-is-semaphore.md new file mode 100644 index 00000000..9674090c --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V2/what-is-semaphore.md @@ -0,0 +1,49 @@ +--- +id: introduction +title: What Is Semaphore? +sidebar_position: 1 +--- + +## Overview + +[Semaphore](https://github.com/semaphore-protocol/semaphore) is a [zero-knowledge](https://z.cash/technology/zksnarks) protocol that allows you to cast a signal (for example, a vote or endorsement) as a provable group member without revealing your identity. +Additionally, it provides a simple mechanism to prevent double-signaling. +Use cases include private voting, whistleblowing, anonymous DAOs and mixers. + +## Features + +With Semaphore, you can allow your users to do the following: + +1. [Create a Semaphore identity](/docs/guides/identities/). +2. [Add their Semaphore identity to a group (i.e. _Merkle tree_)](/docs/guides/groups/). +3. [Send a verifiable, anonymous signal (e.g a vote or endorsement)](/docs/guides/proofs/). + +When a user broadcasts a signal (for example: a vote), Semaphore zero-knowledge +proofs can ensure that the user has joined the group and hasn't already cast a signal with their nullifier. + +Semaphore uses on-chain Solidity contracts and off-chain JavaScript libraries that work in tandem. + +- Off chain, JavaScript libraries can be used to create identities, manage groups and generate proofs. +- On chain, Solidity contracts can be used to manage groups and verify proofs. + +## Developer benefits + +Semaphore is designed to be a simple and generic _privacy layer_ for decentralized applications (dApps) on Ethereum. It encourages modular application design, allowing dApp developers to choose and customize the on-chain and off-chain components they need. + +## About the code + +The core of the protocol is the [circuit logic](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/circuits/scheme.png). +In addition to circuits, +Semaphore provides [Solidity contracts](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) +and [JavaScript libraries](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1#-packages) that allow developers to generate zero-knowledge proofs and verify them with minimal effort. + +### Audits + +| Version | Report | Scope | +| ------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------ | +| v2.0.0 | [Semaphore_2.0.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9850441/Semaphore_2.0.0_Audit.pdf) | `circuits`, `contracts` | +| v2.5.0 | [Semaphore_2.5.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9845008/Semaphore_2.5.0_Audit.pdf) | `contracts`, `libraries` | + +:::info +If you are using the previous version of Semaphore, see the [Semaphore V1](/docs/V1/introduction) documentation. +::: diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3.json new file mode 100644 index 00000000..1584f65f --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3.json @@ -0,0 +1,14 @@ +{ + "version.label": { + "message": "V3", + "description": "The label for version V3" + }, + "sidebar.mySidebar.category.Guides": { + "message": "Guías", + "description": "The label for category Guides in sidebar mySidebar" + }, + "sidebar.mySidebar.category.Technical reference": { + "message": "Referencia técnica", + "description": "The label for category Technical reference in sidebar mySidebar" + } +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/credits.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/credits.md new file mode 100644 index 00000000..25da2941 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/credits.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 10 +--- + +# Créditos + +Semaphore es el esfuerzo de varias personas, para ver una lista completa de contribuidores puede visitar nuestras [páginas en Github](https://github.com/semaphore-protocol/semaphore/graphs/contributors). + +- [Barry WhiteHat](https://github.com/barryWhiteHat) +- [Kobi Gurkan](https://github.com/kobigurk) +- [Koh Wei Jie](https://github.com/weijiekoh) +- [Andrija Novakovic](https://github.com/akinovak) +- [Cedoor](https://github.com/cedoor) +- [Rachel Aux](https://github.com/rachelaux) +- [Andy Guzman](https://github.com/aguzmant103) +- [Vivian Plasencia](https://github.com/vplasencia) +- [LauNaMu](https://github.com/0xyNaMu) diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/deployed-contracts.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/deployed-contracts.md new file mode 100644 index 00000000..ba916756 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/deployed-contracts.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 5 +--- + +# Contratos desplegados + +| Contrato | Goerli\* | Sepolia | Mumbai | Optimism Goerli\* | Arbitrum Goerli\* | Arbitrum One | +| ------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| Semaphore.sol | [0x3889...6131](https://goerli.etherscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://sepolia.etherscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://mumbai.polygonscan.com/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://goerli-optimism.etherscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://goerli.arbiscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0xc60E...1520](https://arbiscan.io/address/0xc60E0Ee1a2770d5F619858C641f14FC4a6401520) | +| SemaphoreVerifier.sol | [0xb908...217C](https://goerli.etherscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://sepolia.etherscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://mumbai.polygonscan.com/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://goerli-optimism.etherscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://goerli.arbiscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xCAbe...4d07](https://arbiscan.io/address/0xCAbeED6cB96a287000aBd834b0B79c05e6Ea4d07) | +| Pairing.sol | [0xEe44...d7e8](https://goerli.etherscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://sepolia.etherscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://mumbai.polygonscan.com/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://goerli-optimism.etherscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://goerli.arbiscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xE3a4...A74C](https://arbiscan.io/address/0xE3a4C2FE9f025405cA6F60f6E960B4558604A74C) | +| IncrementalBinaryTree.sol | [0x4621...7F49](https://goerli.etherscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://sepolia.etherscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://mumbai.polygonscan.com/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://goerli-optimism.etherscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://goerli.arbiscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0xcDF8...fFb0](https://arbiscan.io/address/0xcDF8efE6334c68aF283C83f2F14648da51fcfFb0) | +| PoseidonT3.sol | [0xe136...2595](https://goerli.etherscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://sepolia.etherscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://mumbai.polygonscan.com/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://goerli-optimism.etherscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://goerli.arbiscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe0c8...61d0](https://arbiscan.io/address/0xe0c8d1e53D9Bfc9071F6564755FCFf6cC0dB61d0) | + +:::caution +Está previsto que la testnet Goerli deje de funcionar en el cuarto trimestre de 2023. Consulte los siguientes enlaces para obtener más información. + +- Goerli: https://ethereum.org/en/developers/docs/networks/#goerli +- Optimism Goerli: https://community.optimism.io/docs/useful-tools/networks/#op-goerli +- Arbitrum Goerli: https://docs.arbitrum.io/for-devs/concepts/public-chains#arbitrum-goerli + ::: diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/faq.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/faq.md new file mode 100644 index 00000000..358454d1 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/faq.md @@ -0,0 +1,80 @@ +--- +sidebar_position: 8 +--- + +# FAQ + +## ¿Qué es Semaphore? + +Semaphore es un protocolo de conocimiento cero (zero-knowledge) que permite a los usuarios demostrar su pertenencia a un grupo y enviar señales como votos, comentarios o mensajes de texto sin revelar la identidad del usuario. + +Esto significa que las señales no tienen conexión con las identidades. + +También proporciona un mecanismo simple para evitar la doble señalización, lo que significa que no puede verificar la misma prueba dos veces. + +## ¿Dónde puedo hacer preguntas sobre Semaphore? + +Puede hacer preguntas sobre Semaphore en [Discord](https://semaphore.pse.dev/discord) o abriendo un [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions). + +## ¿Por qué las identidades requieren tanto `identity trapdoor` como `identity nullifier`? + +Tener dos valores privados proporciona una capa de seguridad adicional. Si alguien rompe el hash del nullifier (imagínese que existe cierta maleabilidad de que la preimagen de Poseidón es fácil de encontrar cuando se aplica un hash con un valor específico X, que es el external nullifier elegido por los desarrolladores), el atacante puede encontrar todos los mensajes que envió la misma persona, pero no puede encontrar a quién, porque también está el trapdoor, que podría ser más difícil de romper. + +## ¿Cuál es la diferencia entre `identity nullifier`, `external nullifier` y `nullifier hash`? + +El identity nullifier (anulador de identidad) es uno de los valores secretos del usuario, mientras que el external nullifier (anulador externo) se puede utilizar como un tema sobre el que los usuarios pueden generar una prueba válida (por ejemplo, enviar votos anónimos) un número limitado de veces. + +Tanto el identity nullifier como el external nullifier se utilizan para evitar que la misma prueba se verifique dos veces, lo que significa que si un usuario genera la misma prueba (con la misma identidad y el mismo external nullifier) dos veces, la segunda no será válida. + +Finalmente, el nullifier hash (hash del anulador) es solo el hash del identity nullifier y el external nullifier que se utiliza para comprobar si ya se ha generado la misma prueba. + +En el caso de una aplicación de votación, si tiene un grupo y desea que todos los miembros de este grupo voten solo una vez, puede usar la identificación del grupo como external nullifier. Cuando un usuario vota por primera vez, puede guardar el hash de su identity nullifier y la identificación del grupo (es decir, el nullifier hash) y evitar la doble votación comprobando si ese hash ya existe. + +Vea los [circuitos de Semaphore](https://semaphore.pse.dev/docs/technical-reference/circuits) para más información técnica, o el [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate) para un caso de uso real. + +## ¿Por qué debo evitar que las pruebas se verifiquen dos veces? + +Dado que las pruebas de conocimiento cero son completamente anónimas, es importante evitar que las generadas por identidades elegibles sean reutilizadas por una parte malintencionada. + +En una aplicación de voto anónimo, por ejemplo, sin chequeos, se podría reutilizar una prueba válida para volver a votar. + +## ¿Dónde puedo encontrar ejemplos de aplicaciones que utilicen Semaphore? + +Puede encontrar algunas aplicaciones que usan Semaphore en [este blog post](https://mirror.xyz/privacy-scaling-explorations.eth/Yi4muh-vzDZmIqJIcM9Mawu2e7jw8MRnwxvhFcyfns8). + +## ¿Cómo puedo iniciar un proyecto usando Semaphore? + +Hay tres formas de comenzar a usar Semaphore en su proyecto: usando la [Semaphore CLI](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli), usando el [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate) como una plantilla o bifurcándolo, o instalando los paquetes de Semaphore manualmente. + +### Semaphore CLI + +Para crear un nuevo proyecto podrías usar `npx` o instalar la [Semaphore CLI](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli) globalmente usando `npm` y entonces crear un nuevo proyecto usando el comando `semaphore create`. Vea [Configuración Rápida](https://semaphore.pse.dev/docs/quick-setup) para más información. + +Hay tres plantillas soportadas en este momento: `contracts-hardhat`, `monorepo-ethers` y `monorepo-subgraph`. + +- `contracts-hardhat`: Contiene un caso de uso básico de Semaphore. Viene con un contrato de muestra, una prueba (test) para ese contrato y una tarea (task) de muestra que implementa (deploys) ese contrato. +- `monorepo-ethers`: Es una aplicación completa que demuestra un caso de uso básico de Semaphore. Viene con un contrato de muestra, una prueba para ese contrato y una tarea de muestra que implementa ese contrato. También contiene una interfaz para usar el contrato. Esta plantilla usa [Ethers](https://github.com/ethers-io/ethers.js/) por detrás para obtener datos on-chain. +- `monorepo-subgraph`: Es lo mismo que la plantilla `monorepo-ethers`, pero usa [The Graph protocol](https://thegraph.com/) por detrás para obtener datos on-chain. + +La Semaphore CLI también se puede usar para obtener datos de grupo de una red soportada. Hay comandos como: `get-groups`, `get-group`, `get-members`, `get-proofs`: + +- `get-groups`: Muestra la lista de grupos de una red soportada. +- `get-group`: Muestra los datos de un grupo de una red soportada. +- `get-members`: Muestra los miembros de un grupo de una red soportada. +- `get-proofs`: Muestra las pruebas de un grupo de una red soportada. + +### Semaphore boilerplate + +Para crear un proyecto, también puede utilizar el [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate). Puede bifurcarlo o usarlo como plantilla. + +Las plantillas de la Semaphore CLI y el Semaphore boilerplate contienen el mismo código, que es una aplicación de feedback en la que puede crear una identidad, unirse a un grupo, y enviar su feedback de forma anónima. Son casi lo mismo, la única diferencia es que las plantillas usan CSS para que pueda decidir el framework de CSS o librería que desea usar y el boilerplate usa [ChakraUI](https://chakra-ui.com/) por defecto. + +También puede probar la aplicación Semaphore boilerplate en vivo aquí: https://demo.semaphore.pse.dev. + +### Instalación manual + +Alternativamente, también puede instalar todos los paquetes manualmente usando npm o yarn siguiendo la [documentación de Semaphore](https://semaphore.pse.dev/docs/introduction). + +## ¿Cómo puedo contribuir al protocolo? + +Hay varias formas de contribuir al protocolo, puede encontrar más información al respecto aquí: https://github.com/semaphore-protocol#ways-to-contribute. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/glossary.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/glossary.md new file mode 100644 index 00000000..e3bb4330 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/glossary.md @@ -0,0 +1,66 @@ +--- +sidebar_position: 7 +--- + +# Glosario + +## Identidad Semaphore + +La identidad de un usuario en el protocolo Semaphore. +Una identidad contiene los tres valores que se mencionan a continuación: + +- [Compromiso de identidad](#identity-commitment) (identity commitment): el valor público. +- Identidad trampilla (identity trapdoor) y anulador de identidad (identity nullifier): valores secretos que únicamente son del conocimiento del usuario. + +## Compromiso de identidad (Identity commitment) + +El valor público de la [identidad Semaphore](#semaphore-identity) utilizado en los [grupos Semaphore](#semaphore-group). + +Semaphore utiliza la función hash [Poseidon](https://www.poseidon-hash.info/) para crear un compromiso de identidad a partir de los valores secretos de la identidad Semaphore. + +## Grupo Semaphore + +Un grupo es un [árbol de Merkle](#merkle-tree) binario e incremental en el que cada hoja contiene un [compromiso de identidad](#identity-commitment) para un usuario. +El compromiso de identidad comprueba que un usuario es un miembro del grupo sin revelar la identidad Semaphore del usuario. + +Semaphore utiliza la función hash **Poseidon** para crear árboles de Merkle. +Para mayor información, vea el [sitio web de Poseidon](https://www.poseidon-hash.info/). + +## Árbol de Merkle (Merkle tree) + +Un árbol en el que cada hoja (es decir, un nodo que no tiene hijos) es etiquetado con el hash criptográfico de un bloque de datos, +y cada nodo, que no es una hoja, es etiquetado con el hash criptográfico de las etiquetas de sus nodos hijos. +En los protocolos de conocimiento zero (ZK), los árboles de Merkle pueden ser utilizados para resumir y validar de forma eficiente grandes conjuntos de datos. +Para validar que un árbol contiene una hoja en específico, un verificador sólo necesita una porción de la estructura completa de datos. + +Para más información, vea [árbol de Merkle en Wikipedia](https://es.wikipedia.org/wiki/%C3%81rbol_de_Merkle). + +## Anulador (Nullifier) + +Un valor utilizado para prevenir registros dobles o dos señales emitidas por el mismo usuario. + +Ver [hash de circuito nullifier](/docs/technical-reference/circuits/#nullifier-hash). + +## Retransmisor (Relayer) + +Un tercero que recibe una comisión por incluir transacciones retransmitidas en la blockchain (McMenamin, Daza, and Fitz. https://eprint.iacr.org/2022/155.pdf, p.3). +Para preservar la anonimidad del usuario emitiendo una señal con Semaphore, una aplicación puede utilizar un retransmisor para publicar la transacción de la señal en Ethereum en nombre del usuario. + +Las aplicaciones pueden ofrecer recompensas a los retransmisores e implementar mecanismos para prevenir ventajas maliciosas, como requerir que las señales incluyan la dirección del retransmisor, vinculando así la señal a esa dirección en específico (https://semaphore.pse.dev/whitepaper-v1.pdf, p.6). + +## Archivos confiables de configuración (Trusted setup files) + +Los parámetros verificables y seguros generados por la ceremonia de configuración de confianza de Semaphore. +Semaphore utiliza los archivos confiables de configuración para generar y verificar pruebas válidas de conocimiento cero. +Para generar o verificar pruebas válidas de conocimiento cero con Semaphore, las aplicaciones deben incluir los siguientes archivos _confiables de configuración_ de Semaphore. + +- semaphore.zkey +- semaphore.wasm +- semaphore.json + +Para ver una lista completa de archivos listos para utilizarse, vea . +Para aprender más, vea la [ceremonia de configuración de confianza](https://storage.googleapis.com/trustedsetup-a86f4.appspot.com/semaphore/semaphore_top_index.html) (trusted setup ceremony). + +## Señales (Signals) + +El término "señales" en Semaphore se refiere a los valores que el usuario transmite al votar, confirmar, enviar un mensaje, etc. Por otro lado, "[señales](https://docs.circom.io/circom-language/signals/)" en Circom se refiere a datos que contienen elementos dentro del campo de Z/pZ. En Circom, las "señales" se pueden definir como entrada o salida y, de lo contrario, se consideran señales intermedias. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/_category_.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/_category_.json new file mode 100644 index 00000000..680845a9 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Guides", + "position": 3 +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/fetching-data.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/fetching-data.mdx new file mode 100644 index 00000000..886a84ca --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/fetching-data.mdx @@ -0,0 +1,173 @@ +--- +sidebar_position: 4 +title: Obteniendo datos +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Semaphore data + +Para obtener datos on-chain del contrato [Semaphore.sol](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol), puedes usar la librería [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data). + +Hay dos formas para hacer esto, usando [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) o [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts). La clase `SemaphoreSubgraph` usa el [subgrafo de Semaphore](https://github.com/semaphore-protocol/subgraph), el cual usa [The Graph Protocol](https://thegraph.com/) detrás del telón, y la clase `SemaphoreEthers` usa [Ethers](https://github.com/ethers-io/ethers.js/). + +- [**Obtener datos usando SemaphoreSubgraph**](#obtener-datos-usando-semaphoresubgraph) +- [**Obtener datos usando SemaphoreEthers**](#obtener-datos-usando-semaphoreethers) + +## Instalar librería + + + + +```bash +npm install @semaphore-protocol/data +``` + + + + +```bash +yarn add @semaphore-protocol/data +``` + + + + +## Obtener datos usando SemaphoreSubgraph + +Para obtener datos usando el subgrafo de Semaphore puedes usar la clase [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) del paquete [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data). + +```typescript +import { SemaphoreSubgraph } from "@semaphore-protocol/data" + +const semaphoreSubgraph = new SemaphoreSubgraph() + +// or: +const semaphoreSubgraph = new SemaphoreSubgraph("arbitrum") + +// or: +const semaphoreSubgraph = new SemaphoreSubgraph( + "https://api.studio.thegraph.com/query/14377//" +) +``` + +### Obtener Ids de los grupos + +```typescript +const groupIds = await semaphoreSubgraph.getGroupIds() +``` + +### Obtener los grupos + +```typescript +const groups = await semaphoreSubgraph.getGroups() + +// or + +const groups = await semaphoreSubgraph.getGroups({ members: true, verifiedProofs: true }) +``` + +### Obtener un grupo + +```typescript +const group = await semaphoreSubgraph.getGroup("42") + +// or + +const { members, verifiedProofs } = semaphoreSubgraph.getGroup("42", { members: true, verifiedProofs: true }) +``` + +### Comprueba si un identity commitment es miembro de un grupo + +```ts +await semaphoreSubgraph.isGroupMember( + "42", + "16948514235341957898454876473214737047419402240398321289450170535251226167324" +) +``` + +:::info +Puedes crear un grupo off-chain usando la clase SemaphoreSubgraph para obtener los miembros de la siguiente forma: + +```typescript +import { Group } from "@semaphore-protocol/group" +import { SemaphoreSubgraph } from "@semaphore-protocol/data" + +const groupId = "3" +const semaphoreSubgraph = new SemaphoreSubgraph("sepolia") +const { members } = await semaphoreSubgraph.getGroup(groupId, { members: true }) +const group = new Group(groupId, 20, members) +``` +::: + +## Obtener datos usando SemaphoreEthers + +Para obtener datos usando Ethers puedes usar la clase [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts) del paquete [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data). + +```typescript +import { SemaphoreEthers } from "@semaphore-protocol/data" + +const semaphoreEthers = new SemaphoreEthers() + +// or: +const semaphoreEthers = new SemaphoreEthers("homestead", { + address: "semaphore-address", + startBlock: 0 +}) + +// or: +const semaphoreEthers = new SemaphoreEthers("http://localhost:8545", { + address: "semaphore-address" +}) +``` + +### Obtener Ids de los grupos + +```typescript +const groupIds = await semaphoreEthers.getGroupIds() +``` + +### Obtener un grupo + +```typescript +const group = await semaphoreEthers.getGroup("42") +``` + +### Obtener el admin de un grupo + +```typescript +const admin = await semaphoreEthers.getGroupAdmin("42") +``` + +### Obtener los miembros de un grupo + +```typescript +const members = await semaphoreEthers.getGroupMembers("42") +``` + +### Obtener las pruebas verificadas de un grupo + +```typescript +const verifiedProofs = await semaphoreEthers.getGroupVerifiedProofs("42") +``` + +:::info +Puedes crear un grupo off-chain usando la clase SemaphoreEthers para obtener los miembros de la siguiente forma: + +```typescript +import { Group } from "@semaphore-protocol/group" +import { SemaphoreEthers } from "@semaphore-protocol/data" + +const groupId = "3" +const semaphoreEthers = new SemaphoreEthers("sepolia") +const members = await semaphoreEthers.getGroupMembers(groupId) +const group = new Group(groupId, 20, members) +``` +::: \ No newline at end of file diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/groups.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/groups.mdx new file mode 100644 index 00000000..8767278f --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/groups.mdx @@ -0,0 +1,151 @@ +--- +sidebar_position: 2 +title: Grupos +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Gupos Semaphore + +Un [grupo Semaphore](/docs/glossary/#semaphore-group) contiene los [identity commitments](/docs/glossary/#identity-commitment) (compromisos de identidad) de miembros del grupo. +Estos son algunos ejemplos de uso de los grupos: + +- Encuesta con preguntas a la que se unen las personas que acudieron a un evento para calificarlo, +- votación a la que se unen los miembros para votar por una propuesta, +- Denunciantes que están verificados como empleados de una organización. + +Un grupo Semaphore es un [árbol de Merkle incremental](/docs/glossary/#incremental-merkle-tree), y los miembros del grupo (por ejemplo, [identity commitments](/docs/glossary/#identity-commitments)) son las hojas del árbol. +Los grupos Semaphore determinan los siguientes tres parámetro: + +- **Group id**: un identificador único para el grupo; +- **Tree depth**: el número máximo de miembros que puede contener un grupo (`max size = 2 ^ tree depth`); +- **Members** la lista de miembros para inicializar el grupo. + +Aprenda cómo trabajar con grupos. + +- [**Grupos off-chain**](#off-chain-groups) +- [**Grupos on-chain**](#on-chain-groups) + +## Grupos off-chain (externos a la cadena) + +- [Crear un grupo](#create-a-group) +- [Añadir miembros](#add-members) +- [Remover o actualizar miembros](#remove-or-update-members) + +### Crear un grupo + +Utilice la clase `Group` de la librería [`@semaphore-protocol/group`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/group) para crear un grupo off-chain con los siguientes parámetros: + +- `Group id`: un identificar único para el grupo; +- `Tree depth`: (_default `20`_) el número máximo de usuarios que puede contener un grupo, el valor por defecto es 20 (`max size = 2 ^ tree depth`). +- `Members`: (_default `[]`_) la lista de miembros para inicializar el grupo. + +#### Instalar librería: + + + + +```bash +npm install @semaphore-protocol/group +``` + + + + +```bash +yarn add @semaphore-protocol/group +``` + + + + +Para crear un grupo con el número de usuarios que aparece por defecto (20) _`treeDepth`_, llame la función para construir un `Group` sin el segundo parámetro. Por ejemplo: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(1) +``` + +El siguiente código de ejemplo pasa por _`treeDepth`_ para crear un grupo para `2 ^ 30 = 1073741824` miembros: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(1, 30) +``` + +También puede inicializar un grupo con varios miembros pasando la lista de identity commitments (miembros) como tercer parámetro al crear el grupo: + +```ts +import { Group } from "@semaphore-protocol/group" + +const members = [ + "11237622825477336339577122413451117718539783476837539122310492284566644730311", + "9332663527862709610616009715800254142772436825222910251631161087138559093425", + "13255821893820536903335282929376140649646180444238593676033702344407594536519" +] +const group = new Group(1, 20, members) +``` + +### Añadir miembros + +Utiliza la función `Group addMember` para añadir un miembro (es decir su "identity commitment") a un grupo. Por ejemplo: + +```ts +group.addMember(identityCommitment) +``` + +Para añadir un lote de miembros a un grupo, pasa una selección por la función `Group addMembers`. Por ejemplo: + +```ts +group.addMembers([identityCommitment1, identityCommitment2]) +``` + +:::caution +Cuando utiliza la misma identidad Semaphore en varios grupos, si un atacante toma control de esa identidad, todos los grupos de los que forma parte estarán comprometidos. Considere utilizar identidades diferentes para cada grupo. +::: + +### Remover o actualizar miembros + +Para remover miembros de un equipo, pasa el índice del miembro por la función `Group removeMember`. Por ejemplo: + +```ts +group.removeMember(0) +``` + +Para actualizar los miembros dentro de un grupo, pasa el índice del miembro y el nuevo valor por la función `Group updateMember`. Por ejemplo: + +```ts +group.updateMember(0, 2) +``` + +:::caution +Remover a un miembro de un grupo configura el valor del nodo a un valor especial (ejemplo, `zeroValue`). +Dado que ese nodo no se remueve y el largo de la selección de `group.members` no cambia. +::: + +## Grupos on-chain + +El contrato [`SemaphoreGroups`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/base/SemaphoreGroups.sol) utiliza la librería del [`IncrementalBinaryTree`](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/incremental-merkle-tree.sol/contracts/IncrementalBinaryTree.sol) (árbol binario incremental) y provee métodos para crear y administrar grupos. + +:::información +puede importar el contrato `SemaphoreGroups.sol` y otros contratos Semaphore del módulo NPM [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts). +::: + +Alternativamente, puede utilizar un contrato [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol) ya desplegado y utilizar sus funciones externas para grupos. + +:::caution +`Semaphore.sol` no revisa si un miembro con un identity commitment en específico ya existe en un grupo. Esta revisión se debe realizar off-chain. +::: + +:::caution +`Semaphore.sol` incluye un mecanismo para verificar pruebas Semaphore creadas con raíces de árboles de Merkle antiguas. La duración de este mecanismo puede ser definido por el admin en la función `createGroup`. Por lo tanto, los miembros de un grupo pueden continuar generando pruebas válidas incluso después de ser removidos. Para más información ver el issue [#98](https://github.com/semaphore-protocol/semaphore/issues/98). +::: diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/identities.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/identities.mdx new file mode 100644 index 00000000..76ede8ef --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/identities.mdx @@ -0,0 +1,111 @@ +--- +sidebar_position: 1 +title: Identidades +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Identidades Semaphore + +Para unirse a un [grupo Semaphore](/docs/glossary#semaphore-group), un usuario primero deberá crear una [identidad Semaphore](/docs/glossary#semaphore-identity). +Una identidad Semaphore contiene dos valores generados junto con la identidad: + +- Identity trapdoor (Identidad trampilla) +- Identity nullifier (Anulador de identidad) + +Para utilizar y verificar su identidad, la persona dueña de la identidad (usuario) debe conocer los valores trapdoor y nullifier. +Para prevenir fraudes, la persona dueña debe conservar de forma secreta ambos valores. + +## Crear identidades + +En su código, utilice la librería [`@semaphore-protocol/identity`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity) para crear una identidad Semaphore _de forma determinística_ (del hash de un mensaje) o _de forma aleatoria_. + +- [**Crear identidades aleatorias**](#create-random-identities) +- [**Crear identidades determinísticas**](#create-deterministic-identities) + +### Instalar librería: + + + + +```bash +npm install @semaphore-protocol/identity +``` + + + + +```bash +yarn add @semaphore-protocol/identity +``` + + + + +### Crear identidades aleatorias + +Para crear una identidad aleatoria, represente `Identity` sin algún parámetro. Por ejemplo: + +```ts +import { Identity } from "@semaphore-protocol/identity" + +const { trapdoor, nullifier, commitment } = new Identity() +``` + +La nueva identidad contiene dos valores aleatorios secretos: `trapdoor` y `nullifier`, y un valor público: `commitment`. + +El hash Poseidon del identity nullifier y trapdoor se conoce como _identity secret_ (el secreto de identidad), +y su hash es el _identity commitment_ (compromiso de identidad). + +Un identity commitment (compromiso de identidad), de forma similar a las direcciones Ethereum, es un valor público que se utiliza en los grupos Semaphore para representar la +identidad de un miembro del grupo. Los valores secretos son similares a las llaves privadas +Ethereum y se utilizan para generar pruebas de conocimiento cero (ZKP) Semaphore y autenticar señales. + +### Crear identidades determinísticas + +Si transmite un mensaje como un parámetro, Semaphore genera `trapdoor` y `nullifier` +del hash _SHA256_ del mensaje. +El mensaje puede ser una contraseña o un mensaje que el usuario firma de forma criptográfica con una llave privada. + +Al utilizar identidades determinísticas siempre deberá mantener secreto el mensaje. +Dado que el hash es determinístico, cualquier persona con el mismo mensaje puede recrear la misma identidad. + +```ts +const identity = new Identity("secret-message") +``` + +:::tip +Crear un sistema que guarde o recupere valores secretos de identidades Semaphore no es trivial. +Puede elegir delegar este tipo de funcionalidad a carteras existente como Metamask. Por ejemplo: + +1. En Metamask, un usuario firma un mensaje con la llave privada de su cuenta Ethereum. +2. En la aplicación que usted ofrece, el usuario crea una identidad determinística con el mensaje firmado. +3. Ahora el usuario puede recrear su identidad Semaphore cuando quiera al firmar el mismo mensaje con su cuenta Ethereum en Metamask. + +::: + +## Guarde sus identidades + +Puede generar una identidad como una cadena de caractéres JSON que puede guardar y reutilizar más tarde. +El método `Identity.toString()` genera una matriz JSON a partir de una identidad. Por ejemplo: + +```ts +console.log(identity.toString()) // Ver la identidad trampilla y anulador. + +// '["8255d...", "62c41..."]' +``` + +La matriz contiene la trapdoor y el nullifier. + +Para reutilizar la identidad guardada, transforme la cadena JSON al constructor `Identity()`. + +```ts +const identity2 = new Identity(identity.toString()) +``` diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/proofs.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/proofs.mdx new file mode 100644 index 00000000..0a5a1fd4 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/proofs.mdx @@ -0,0 +1,121 @@ +--- +sidebar_position: 3 +title: Pruebas +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Pruebas Semaphore + +Una vez que un usuario liga su [identidad Semaphore](/docs/glossary#semaphore-identity) a un [grupo Semaphore](/docs/glossary#semaphore-group), el usuario puede emitir una señal anónima con una prueba de conocimiento cero (ZKP) que demuestre lo siguiente: + +- el usuario es un miembro del grupo, +- el mismo usuario creo tanto la señal como la prueba. + +Las y los desarrolladores pueden utilizar Semaphore para realizar las siguientes acciones: + +- [**Generar una prueba externa a la cadena (off-chain)**](#generate-a-proof-off-chain) +- [**Verificar una prueba externa a la cadena (off-chain)**](#verify-a-proof-off-chain) +- [**Verificar una prueba interna a la cadena (on-chain)**](#verify-a-proof-on-chain) + +## Generar una prueba off-chain + +Utilice la librería [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof) para generar una prueba off-chain. +Para generar una prueba, transforme los siguientes parámetros con la función `generateProof`: + +- `identity`: la identidad Semaphore del usuario emitiendo la señal y generando la prueba; +- `group`: el grupo al cual pertenece el usuario; +- `externalNullifier`: el valor que impide la emisión de dos señales por el mismo usuario; +- `signal`: la señal que el usuario quiere enviar de forma anónima; +- `snarkArtifacts`: la `zkey` y `wasm` de los [archivos confiables de configuración](/docs/glossary/#trusted-setup-files). + +#### Instalar librería: + + + + +```bash +npm install @semaphore-protocol/proof +``` + + + + +```bash +yarn add @semaphore-protocol/proof +``` + + + + +En el caso de uso de un sistema de votación, una vez que todos los votantes hayan ligado sus [identidades](/docs/guides/identities#create-an-identity) al [grupo](/docs/guides/groups) de la votación, +un votante puede generar una prueba para votar por una propuesta. +En el llamado para `generateProof`(generar la prueba), el sistema de votación envía el ID único de la votación (la raíz del [árbol de Merkle](/docs/glossary/#merkle-tree/) del grupo) como el +`externalNullifier` para impedir que el votante emita más de una señal para esta votación. +La siguiente muestra de código demuestra cómo utilizar `generateProof` para generar una prueba de votación: + +```ts +import { generateProof } from "@semaphore-protocol/proof" + +const externalNullifier = group.root +const signal = 1 + +const fullProof = await generateProof(identity, group, externalNullifier, signal, { + zkeyFilePath: "./semaphore.zkey", + wasmFilePath: "./semaphore.wasm" +}) +``` + +:::info +Si estás generando la prueba en el lado del cliente, puedes evitar agregar los artefactos de snark porque se obtienen automáticamente: + +```ts +const fullProof = await generateProof(identity, group, externalNullifier, signal) +``` +::: + +## Verificar una prueba off-chain + +Utilice la librería [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof) para verificar una prueba Semaphore off-chain. +Para verificar una prueba, transforme los siguientes parámetros con la función `verifyProof`: + +- `fullProof`: la prueba Semaphore; +- `treeDepth`: la profundidad del árbol de Merkle. + +La siguiente muestra de código demuestra cómo verificar la prueba generada previamente: + +```ts +import { verifyProof } from "@semaphore-protocol/proof" + +await verifyProof(fullProof, 20) // verdadero o falso. +``` + +`verifyProof` devolverá una Promesa que determina uno de los dos valores `verdadero` o `falso`. + +## Verificar una prueba on-chain + +Utilice el contrato [`Semaphore.sol`](/docs/technical-reference/contracts#semaphoresol) para verificar pruebas on-chain. + +:::info +Vea nuestros [contratos desplegados](/docs/deployed-contracts) para encontrar las direcciones adecuadas para su red. +:::: + +Para verificar las pruebas Semaphore en su contrato, importe `ISemaphore.sol`, transfórmelo a la dirección `Semaphore.sol` y llame el método `verifyProof` con los siguientes parámetros: + +- `groupId`: el identificador del grupo; +- `merkleTreeRoot`: la raíz del árbol de Merkle; +- `signal`: la señal que el usuario quiere enviar de forma anónima ; +- `nullifierHash`: un [nullifier hash](#retrieve-a-nullifier-hash) (hash anulador); +- `externalNullifier`: el valor que impide la emisión de dos señales por el mismo usuario; +- `proof`: una [prueba Semaphore que es compatible con Solidity](#generate-a-solidity-compatible-proof). + +:::info +Puede importar `ISemaphore.sol` y otros contratos Semaphore del módulo NPM [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts). +::: diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/quick-setup.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/quick-setup.mdx new file mode 100644 index 00000000..cb7b7612 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/quick-setup.mdx @@ -0,0 +1,279 @@ +--- +sidebar_position: 2 +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Configuración rápida + +Semaphore ofrece un CLI oficial para configurar su proyecto con Hardhat. Si su NPM es versión 5.2 or más reciente puede utilizar NPX: + +```bash +npx @semaphore-protocol/cli@latest create my-app --template monorepo-ethers +``` + +De lo contrario, instale `@semaphore-protocol/cli` de forma global y corra el comando `init`: + +```bash +npm i -g @semaphore-protocol/cli@latest +semaphore create my-app --template monorepo-ethers +``` + +:::info +Los templates soportados son: [`contracts-hardhat`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli-template-contracts-hardhat), [`monorepo-ethers`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli-template-monorepo-ethers), [`monorepo-subgraph`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli-template-monorepo-subgraph) +::: + +:::info +El CLI [`semaphore`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli) también se puede utilizar para obtener información de los grupos que existen dentro de las redes soportadas por Semaphore (por ejemplo: `semaphore get-groups --network goerli`). +::: + +Para comenzar a trabajar en su proyecto, instale las siguientes dependencias: + + + + +```bash +cd my-app +npm i +``` + + + + +```bash +cd my-app +yarn +``` + + + + +## Output + +El comando `create` creará un directorio con el nombre my-app (o cualquier nombre que usted escoja) dentro de la carpeta actual. Ese directorio contendrá la estructura inicial del proyecto, que incluye un contrato simple (contract), una tarea (task) para desplegar lo, algunas pruebas (test) y una aplicación de Next.js (la carpeta web-app) para interactuar con el contrato. + +``` +my-app +├── .yarn +├── apps +│   └── contracts +│ │   └── contracts +| │ │   └── Feedback.sol +│ │   └── scripts +| │ │   └── download-snark-artifacts.ts +│ │   └── tasks +| │ │   └── deploy.ts +│ │   └── test +| │ │   └── Feedback.ts +│ │   └── hardhat.config.ts +│ │   └── package.json +│ │   └── tsconfig.json +│   └── web-app +├── scripts +│   └── copy-contracts-artifacts.ts +├── .editorconfig +├── .env +├── .env.example +├── .eslintignore +├── .eslintrc.json +├── .gitignore +├── .prettierignore +├── .prettierrc.json +├── .yarnrc.yml +├── package.json +├── README.md +└── tsconfig.json +``` + +El contrato `Feedback.sol` crea un grupo Semaphore, permite que los usuarios se unan a ese grupo con su identidad Semaphore, y, finalmente, permite que los miembros de ese grupo envíen un feedback anónimo. + +## Uso + +### Compilar contratos + +Vaya a la carpeta `contracts`: + +```bash +cd apps/contracts +``` + +Y compile sus contratos al correr: + + + + +```bash +npm run compile +``` + + + + +```bash +yarn compile +``` + + + + +### Pruebe los contratos + +Pruebe sus contratos al correr: + + + + +```bash +npm test +``` + + + + +```bash +yarn test +``` + + + + +Genere un reporte de la prueba de cobertura: + + + + +```bash +npm run test:coverage +``` + + + + +```bash +yarn test:coverage +``` + + + + +O un reporte de la prueba de gas: + + + + +```bash +npm run test:report-gas +``` + + + + +```bash +yarn test:report-gas +``` + + + + +### Desplegar contratos + +Siga las instrucciones a continuación para desplegar sus contratos: + +En la carpeta raíz del proyecto: + +1. Agregue sus variables de entorno en el archivo `.env`. + + :::note + Deberá por lo menos configurar un URL válido en Ethereum (ejemplo: Infura) y una llave privada con algunos ethers. + ::: + +2. Vaya a la carpeta `apps/contracts` y desplegue su contrato. + + + + + ```bash + npm run deploy -- --semaphore --group --network goerli + ``` + + + + + ```bash + yarn deploy --semaphore --group --network goerli + ``` + + + + + :::note + Revise las direcciones de los contratos de Semaphore [aquí](/docs/deployed-contracts). + ::: + + :::caution + El group id (id del grupo) es un número. + ::: + +### Inicie la app + +Inicie la aplicación: + + + + +```bash +npm run dev +``` + + + + +```bash +yarn dev +``` + + + diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/resources.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/resources.md new file mode 100644 index 00000000..a3062e36 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/resources.md @@ -0,0 +1,33 @@ +--- +sidebar_position: 9 +--- + +# Recursos + +## Artículos + +[Propuesta de la comunidad: Semaphore: Señalización de conocimiento cero (ZK) en Ethereum (v1 Whitepaper)](https://semaphore.pse.dev/whitepaper-v1.pdf) - Kobi Gurkan, Koh Wei Jie y Barry WhiteHat + +[Para Mezcladores y más allá: presentando Semaphore, una herramienta de privacidad construida en Ethereum](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) - Koh Wei Jie + +[¡La versión 2 de Semaphore está lista!](https://medium.com/privacy-scaling-explorations/semaphore-v2-is-live-f263e9372579) - Privacy and Scaling Explorations + +## Videos + +[Privacidad en Ethereum](https://www.youtube.com/watch?v=maDHYyj30kg) - Barry WhiteHat en el Meetup de Ethereum en Taipei + +[Snarks para mezclar, enviar señales y escalabilidad](https://www.youtube.com/watch?v=lv6iK9qezBY) - Barry WhiteHat en Devcon 4 + +[Privacidad en Ethereum](https://www.youtube.com/watch?v=zBUo7G95wYE) - Barry WhiteHat en Devcon 5 + +[Un mezclador de Ethereum trustless utilizando señalizaciones de conocimiento cero (ZK)](https://www.youtube.com/watch?v=GzVT16lFOHU) - Koh Wei Jie y Barry WhiteHat en Devcon 5 + +[Implementación de aplicaciones de señalizaciones de conocimiento cero (ZK)](https://www.youtube.com/watch?v=7wd2aAN2jXI) - Koh Wei Jie en Devcon 5 + +[Roadmap para Semaphore en Ethereum](https://www.youtube.com/watch?v=gOub903iWFs) - Barry WhiteHat en Zcon1 + +[Pruebas concisas en Ethereum](https://www.youtube.com/watch?v=TtsDNneTDDY) - Barry WhiteHat en el 2ndo ZKProof Workshop + +[Propuesta: Semaphore - Señalización de conocimiento cero (ZK) en Ethereum](https://www.youtube.com/watch?v=y5uV9eRb3-w) - Kobi Gurkan y Koh Wei Jie en el ZKProof Home Edition + +[Señalizaciones anónimas en Ethereum](https://www.youtube.com/watch?v=dxAfL91Sbw4) - Cedoor en Devcon 6 Bogotá diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/subgraph.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/subgraph.md new file mode 100644 index 00000000..22fa5e2d --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/subgraph.md @@ -0,0 +1,51 @@ +--- +sidebar_position: 6 +--- + +# Subgrafo + +[The Graph](https://thegraph.com/) es un protocolo para indexar redes como Ethererum o IPFS. +Las personas dueñas de los sitios publica _subgrafos_ que exponen los datos del sitio para que cualquiera los pueda consultar. +El subgrafo de Semaphore le permite obtener datos del contrato inteligente [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/Semaphore.sol). + +:::tip +El protocolo The Graph utiliza el lenguaje de consulta [GraphQL](https://graphql.org/). Para ver ejemplos visite [GraphQL API documentation](https://thegraph.com/docs/developer/graphql-api). Para ver la lista de subgrafos de Semaphore visite el [repositorio de subgrafos](https://github.com/semaphore-protocol/subgraph). +::: + +## Esquema + +### Árbol de Merkle + +- `id`: identificador único entre todas las entidades de árboles de Merkle, +- `depth`: profundidad del árbol de Merkle, +- `root`: raíz del árbol de Merkle, +- `zeroValue`: valor cero del árbol de Merkle, +- `numberOfLeaves`: número total de hojas en el árbol, +- `group`: link a la entidad del grupo. + +### Grupo + +- `id`: identificador único entre todas las entidades del grupo, +- `merkleTree`: link a la entidad del árbol de Merkle, +- `timestamp`: timestamp (registro de tiempo) del bloque, +- `admin`: administrador del grupo, +- `members`: lista de los miembros del grupo, +- `verifiedProofs`: lista de las pruebas del grupo. + +### Miembro + +- `id`: identificador único entre todos los miembros, +- `identityCommitment`: compromiso de identidad Semaphore, +- `timestamp`: timestamp del bloque, +- `index`: índice de la hoja del árbol, +- `group`: link a la entidad del grupo. + +### PruebaVerificada + +- `id`: identificador único entre todas las entidades con una prueba verificada (VerifiedProof), +- `signal`: señal del usuario, +- `merkleTreeRoot`: raíz del árbol de Merkle, +- `nullifierHash`: hash nullifier (anulador), +- `externalNullifier`: nullifier externo, +- `timestamp`: timestamp del bloque, +- `group`: link a la entidad del grupo. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/_category_.json b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/_category_.json new file mode 100644 index 00000000..2187e794 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Technical reference", + "position": 4 +} diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/circuits.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/circuits.md new file mode 100644 index 00000000..0c170715 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/circuits.md @@ -0,0 +1,57 @@ +--- +sidebar_position: 2 +--- + +# Circuitos + +El [circuito Semaphore](https://github.com/semaphore-protocol/semaphore/tree/main/packages/circuits) es el corazón del protocolo y está compuesto por tres partes: + +- [**Prueba de membresía**](/docs/technical-reference/circuits#proof-of-membership) +- [**Nullifier hash**](/docs/technical-reference/circuits#nullifier-hash) (hash anulador) +- [**Señal**](/docs/technical-reference/circuits#signal) + +![Semaphore circuit](https://github.com/semaphore-protocol/semaphore/raw/main/packages/circuits/scheme.png) + +El diagrama anterior muestra cómo se utilizan las señales de entrada en el circuito Semaphore y cómo se calculan los resultados. + +## Prueba de membresía + +El circuito resume criptográficamente (hashes) el nullifier hash de la identidad utilizando la identity trapdoor (identidad trampilla) para generar el compromiso de identidad. Después de esto, el circuito verifica la prueba de membresía contra la raíz de Merkle y el compromiso de identidad. + +**Insumos (inputs) privados:** + +- `treeSiblings[nLevels]`: los valores a lo largo del camino de Merkle rumbo al compromiso de identidad del usuario, +- `treePathIndices[nLevels]`: la dirección (0/1) por nivel del árbol correspondiente al camino de Merkle rumbo al compromiso de identidad del usuario, +- `identityNullifier`: la identidad secreta de 32-bits utilizada como anulador, +- `identityTrapdoor`: la identidad secreta de 32-bits utilizada como trampilla. + +**Resultados (outputs) públicos:** + +- `root`: La raíz de Merkle del árbol. + +## Hash anulador (Nullifier hash) + +El circuito resume criptográficamente (hashes) el identity nullifier con el nullifier externo y después revisa que el resultado coincida con el nullifier hash provisto. +Los nullifier hashes guardados en un contrato inteligente Semaphore permiten que el contrato rechace las pruebas que contengan un nullifier hash ya utilizado. + +**Insumos (inputs) privados:** + +- `identityNullifier`: el identity secret (secreto de identidad) de 32 bits que se utiliza como nullifier. + +**Insumos (inputs) públicos:** + +- `externalNullifier`: el nullifier externo de 32 bits. + +**Resultados (outputs) públicos:** + +- `nullifierHash`: el hash del identity nullifier y del nullifier externo; se utiliza para prevenir que el mismo usuario emita dos señales. + +**Procedimiento:** + +## Señal + +El circuito calcula un cuadrado ficticio del hash de la señal para prevenir que se altere la prueba. + +**Insumos (inputs) públicos:** + +- `signalHash`: El hash de la señal del usuario. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/contracts.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/contracts.md new file mode 100644 index 00000000..dcca9923 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/technical-reference/contracts.md @@ -0,0 +1,50 @@ +--- +sidebar_position: 3 +--- + +# Contratos + +Semaphore incluye dos tipos de contratos: + +- [**Contratos base**](/docs/technical-reference/contracts#base-contracts) +- [**Contratos para la extensión**](/docs/technical-reference/contracts#extension-contracts) + +así como [**Semaphore.sol**](/docs/technical-reference/contracts#semaphoresol), el principal contrato desplegado en las redes soportadas por Semaphore. + +:::info +Para utilizar los contratos e interfaces Semaphore en su proyecto, instale el paquete NPM [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts). +::: + +## Contratos base + +Semaphore ofrece los siguientes contratos base: + +- [`SemaphoreVerifier.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/base/SemaphoreVerifier.sol): contiene una función para verificar pruebas Semaphore; +- [`SemaphoreGroups.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/base/SemaphoreGroups.sol): contiene las funciones para crear grupos y añadir/remover/actualizar miembros. + +Los contratos base están relacionados de forma muy cercana al protocolo. +Puede utilizarlos en su contrato o puede utilizar [**Semaphore.sol**](/docs/technical-reference/contracts#semaphoresol) que ya los tiene integrados. + +:::info +Si bien algunas dApps pueden utilizar grupos internos a la cadena, otros puede que prefieran utilizar grupos externos a la cadena, por lo que únicamente guardarán las raíces de sus árboles en el contrato. +::: + +## Contratos para la extensión + +- [`SemaphoreVoting.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/extensions/SemaphoreVoting.sol): contrato para votaciones que contiene las funciones esenciales para crear encuestas, añadir electores, y emitir votos de forma anónima; +- [`SemaphoreWhistleblowing.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/extensions/SemaphoreWhistleblowing.sol): contrato para denuncias que contiene las funciones esenciales para crear entidades (por ejemplo: organizaciones sin fines de lucro), añade denunciantes, y filtraciones publicadas de forma anónima. + +Estos contratos extienden las capacidades del protocolo y proveen una aplicación lógica para casos de uso específicos. +En un futuro se incluirán más extensiones. + +## Semaphore.sol + +[`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol) utiliza los contratos base como punto de partida, los integra y de forma adicional brinda: + +- un sistema que solamente permite que administradores (ej. cuentas de Ethereum o contratos inteligentes) controlen grupos; +- un mecanismo que guarda los [hashes anuladores](/docs/technical-reference/circuits#nullifier-hash) (nullifier hashes) de cada grupo y evita que el mismo miembro emita dos señales; +- un mecanismo que permite que pruebas Semaphore generadas con raíces de Merkle antiguas sean verificadas por un periodo de tiempo determinado por el administrador del grupo. + +:::info +Visitando [contratos desplegados](/docs/deployed-contracts) puede encontrar las direcciones correspondientes a su red. +:::: diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/troubleshooting.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/troubleshooting.mdx new file mode 100644 index 00000000..c88a87fc --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/troubleshooting.mdx @@ -0,0 +1,223 @@ +--- +sidebar_position: 11 +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Solución de problemas + +Si estas sugerencias no funcionan, no dude en preguntar en las [Semaphore Discussions](https://github.com/semaphore-protocol/semaphore/discussions) o en el canal `dev-chat` en el [Semaphore Discord](https://semaphore.pse.dev/discord). + +## Usando Semaphore en the frontend + +Semaphore funciona con cualquier framework de JavaScript, pero el paquete [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof) está usando [snarkjs](https://github.com/iden3/snarkjs), que usa módulos Node.js que no son compatibles con los frameworks de frontend y hay algunos cambios que debemos hacer para que funcione en el lado del cliente. + +### Semaphore con Nextjs + +Verá un error como este: + +``` +Module not found: Can't resolve 'fs' +``` + +Para resolver esto, en su archivo `next.config.js`, dentro del objeto `nextConfig`, agregue: + +```javascript +webpack: (config, { isServer }) => { + if (!isServer) { + config.resolve.fallback = { + fs: false + } + } + + return config + } +``` + +Su fichero `next.config.js` sería algo como esto: + +```javascript +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + webpack: (config, { isServer }) => { + if (!isServer) { + config.resolve.fallback = { + fs: false + } + } + + return config + } +} + +module.exports = nextConfig +``` + +### Semaphore con React + Vite o Vuejs + Vite + +Verá un error como este: + +```bash +readman.js:43 Uncaught ReferenceError: process is not defined + at stringToBase64 (threadman.js:43:5) + at threadman.js:50:22 +``` + +Para resolver eso: + +1- Instale `@esbuild-plugins/node-globals-polyfill` y `@esbuild-plugins/node-modules-polyfill` + + + + +```bash +npm install @esbuild-plugins/node-globals-polyfill +``` + + + + +```bash +yarn add @esbuild-plugins/node-globals-polyfill +``` + + + + + + + +```bash +npm install @esbuild-plugins/node-modules-polyfill +``` + + + + +```bash +yarn add @esbuild-plugins/node-modules-polyfill +``` + + + + +2- Modifique `vite.config.ts` para añadirlos: + +```typescript +import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill" +import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill" +``` + +y en `defineConfig` agregue: + +```typescript +optimizeDeps: { + esbuildOptions: { + // Enable esbuild polyfill plugins + plugins: [ + NodeGlobalsPolyfillPlugin({ + process: true, + buffer: true + }), + NodeModulesPolyfillPlugin() + ] + } +} +``` + +Su fichero `vite.config.ts` debería ser algo como: + +```typescript +import { fileURLToPath, URL } from "node:url" + +import { defineConfig } from "vite" +import vue from "@vitejs/plugin-vue" + +import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill" +import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill" + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)) + } + }, + optimizeDeps: { + esbuildOptions: { + // Enable esbuild polyfill plugins + plugins: [ + NodeGlobalsPolyfillPlugin({ + process: true, + buffer: true + }), + NodeModulesPolyfillPlugin() + ] + } + } +}) +``` + +:::info + +En caso de React con Vite, si ve un subrayado ondulado rojo en cada módulo Semaphore que dice `Could not find a declaration file for module ...`, cambie el `moduleResolution` de `bundler` a `Node` en el fichero `tsconfig.json` dentro de `compilerOptions`. + +Su fichero `tsconfig.json` sería algo así: + +```json +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "Node", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} +``` + +::: + +## Grupos de Semaphore + +### Creando un Grupo + +Cuando crea un grupo y se revierte la transacción, asegúrese de que la identificación del grupo que está utilizando no existe en la red que está utilizando. + +Para comprobarlo, puede utilizar la [Semaphore CLI](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli) con el comando `get-groups` y la red que está utilizando y luego, asegúrese de que su id de grupo no sea parte de esa lista. También puede utilizar el [Semaphore explorer](https://explorer.semaphore.pse.dev/). + +## Semaphore Proofs + +### Transacción revertida al usar el mismo external nullifier + +Cuando genera una prueba usando el mismo external nullifier que usó para verificar una prueba antes, la transacción se revertirá porque ese external nullifier ya se usó. Si desea enviar y verificar varias pruebas de la misma identidad, debe usar un external nullifier diferente cada vez que genere una prueba. diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/what-is-semaphore.md b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/what-is-semaphore.md new file mode 100644 index 00000000..aeef6938 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/what-is-semaphore.md @@ -0,0 +1,53 @@ +--- +id: introduction +title: ¿Qué es Semaphore? +sidebar_position: 1 +--- + +## General + +[Semaphore](https://github.com/semaphore-protocol/semaphore) es un protocolo que utiliza [conocimiento cero (zero-knowledge)](https://z.cash/technology/zksnarks) y permite emitir una señal (por ejemplo: un voto o una aprobación) como una persona probablemente miembro de un grupo sin revelar su identidad. +Además, proporciona un mecanismo sencillo para impedir que un mismo usuario emita dos señales. +Algunos de los potenciales casos de uso son: votaciones, denuncias, DAOs anónimas y mezcladores. + +## Características + +Con Semaphore puede permitir que sus usuarios realicen las siguientes acciones: + +1. [Crear una identidad Semaphore](/docs/guides/identities/). +2. [Agregar su identidad Semaphore a un grupo (es decir: _Árbol de Merkle_)](/docs/guides/groups/). +3. [Enviar una señal anónima, verificable (ej. un voto o una aprobación)](/docs/guides/proofs/). + +Cuando un usuario emite una señal (por ejemplo: un voto), las pruebas de conocimiento cero (ZKP) pueden asegurar que el usuario se ha incorporado al grupo y aún no ha emitido una señal con su nullifier (anulador). + +Semaphore utiliza contratos internos a la cadena en Solidity y librerías de JavaScript externas a la cadena que funcionan de forma conjunta. + +- Externos a la cadena (off-chain), se pueden utilizar librerías de Javascript para crear identidades, organizar grupos y generar pruebas. +- Internos a la cadena (on-chain), se pueden utilizar contratos en Solidity para organizar grupos y verificar pruebas. + +## Beneficios para desarrolladores + +Semaphore está diseñado para ser un _componente de privacidad_ simple y genérico para aplicaciones descentralizadas (dApps) en Ethereum. Promueve el diseño modular de las aplicaciones, lo que permite que los desarrolladores de las dApps escojan y personalicen los componentes que necesitan externos e internos a la cadena. + +## Respecto al código + +La base del protocolo es la [lógica de circuitos](https://github.com/semaphore-protocol/semaphore/tree/main/packages/circuits/scheme.png) (circuit logic). +Además de los circuitos, +Semaphore ofrece [contratos en Solidity](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts) +y [librerías en JavaScript](https://github.com/semaphore-protocol/semaphore#-packages) que permiten que los desarrolladores generen pruebas de conocimiento cero (ZKP) y las verifiquen con un esfuerzo mínimo. + +### Ceremonia de configuración de confianza (Trusted Setup Ceremony) + +Los [parámetros seguros](/docs/glossary#trusted-setup-files) para generar pruebas válidas con los circuitos Semaphore fueron generados en una [ceremonia de configuración de confianza](https://storage.googleapis.com/trustedsetup-a86f4.appspot.com/semaphore/semaphore_top_index.html) que se completó con más de 300 participantes el [29 de Marzo de 2022](https://etherscan.io/tx/0xec6dbe68883c7593c2bea82f55af18b3aeb5cc146e026d0083a9b3faa9aa0b65#eventlog). + +### Auditorías + +| Versión | Auditores | Reporte | Alcance | +| ------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------ | +| v2.0.0 | [PSE](https://pse.dev/) | [Semaphore_2.0.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9850441/Semaphore_2.0.0_Audit.pdf) | `circuits`, `contracts` | +| v2.5.0 | [PSE](https://pse.dev/) | [Semaphore_2.5.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9845008/Semaphore_2.5.0_Audit.pdf) | `contracts`, `libraries` | +| v3.0.0 | [Veridise](https://veridise.com/) | [Semaphore_3.0.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9845008/Semaphore_2.5.0_Audit.pdf) | `circuits`, `contracts` | + +:::info +Si está utilizando una de las versiones anteriores de Semaphore, vea la documentación de [Semaphore V1](/docs/V1/introduction) o de [Semaphore V2](/docs/V2/introduction). +::: diff --git a/apps/docs/i18n/es/docusaurus-theme-classic/navbar.json b/apps/docs/i18n/es/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..805e2087 --- /dev/null +++ b/apps/docs/i18n/es/docusaurus-theme-classic/navbar.json @@ -0,0 +1,11 @@ +{ + "item.label.Whitepaper": { + "message": "Whitepaper" + }, + "item.label.Documentation": { + "message": "Documentación" + }, + "item.label.Github": { + "message": "Github" + } +} diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 00000000..d984b26f --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,50 @@ +{ + "name": "semaphore-docs", + "version": "2.0.0", + "private": true, + "scripts": { + "start": "docusaurus start", + "start:es": "docusaurus start --locale es", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids" + }, + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/preset-classic": "2.2.0", + "@mdx-js/react": "^1.6.22", + "@svgr/webpack": "^5.5.0", + "clsx": "^1.2.1", + "docusaurus-plugin-sass": "^0.2.2", + "file-loader": "^6.2.0", + "prism-react-renderer": "^1.3.5", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "sass": "^1.52.3", + "url-loader": "^4.1.1" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.2.0", + "@tsconfig/docusaurus": "^1.0.6", + "@types/react": "^17.0.14", + "@types/react-helmet": "^6.1.2", + "@types/react-router-dom": "^5.1.8", + "typescript": "^4.3.5" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/apps/docs/sidebars.js b/apps/docs/sidebars.js new file mode 100644 index 00000000..3e32e2b9 --- /dev/null +++ b/apps/docs/sidebars.js @@ -0,0 +1,29 @@ +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ + +// @ts-check + +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +module.exports = { + // By default, Docusaurus generates a sidebar from the docs folder structure + tutorialSidebar: [{ type: "autogenerated", dirName: "." }] + + // But you can create a sidebar manually + /* + tutorialSidebar: [ + { + type: 'category', + label: 'Tutorial', + items: ['hello'], + }, + ], + */ +} diff --git a/apps/docs/src/components/IllustrationHero/index.tsx b/apps/docs/src/components/IllustrationHero/index.tsx new file mode 100644 index 00000000..39c72a2e --- /dev/null +++ b/apps/docs/src/components/IllustrationHero/index.tsx @@ -0,0 +1,35 @@ +import React from "react" +import styles from "./styles.module.scss" + +export default function IllustrationHero(): JSX.Element { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/apps/docs/src/components/IllustrationHero/styles.module.scss b/apps/docs/src/components/IllustrationHero/styles.module.scss new file mode 100644 index 00000000..2a07e467 --- /dev/null +++ b/apps/docs/src/components/IllustrationHero/styles.module.scss @@ -0,0 +1,9 @@ +.illustrationHero { + > path { + fill: var(--ifm-color-primary); + } + + > path:first-child { + fill: #ff975d; + } +} diff --git a/apps/docs/src/components/LinkButton/index.tsx b/apps/docs/src/components/LinkButton/index.tsx new file mode 100644 index 00000000..2d12d8f4 --- /dev/null +++ b/apps/docs/src/components/LinkButton/index.tsx @@ -0,0 +1,20 @@ +import Link from "@docusaurus/Link" +import React from "react" +import IconArrowRight from "../icons/IconArrowRight" +import styles from "./styles.module.scss" + +export type LinkButtonProps = { + href: string + children: string +} + +export default function LinkButton({ href, children }: LinkButtonProps): JSX.Element { + return ( + +
{children}
+
+ +
+ + ) +} diff --git a/apps/docs/src/components/LinkButton/styles.module.scss b/apps/docs/src/components/LinkButton/styles.module.scss new file mode 100644 index 00000000..43b5061e --- /dev/null +++ b/apps/docs/src/components/LinkButton/styles.module.scss @@ -0,0 +1,44 @@ +.linkButton { + display: flex; + font-weight: bold; + + &:hover { + text-decoration: none; + } +} + +html[data-theme="light"] { + .linkButton { + color: var(--custom-blue-3); + + &:hover { + color: var(--custom-blue-3); + } + + svg > path { + fill: var(--custom-blue-3); + } + } +} + +html[data-theme="dark"] { + .linkButton { + color: var(--custom-blue-2); + + &:hover { + color: var(--custom-blue-2); + } + + svg > path { + fill: var(--custom-blue-2); + } + } +} + +.buttonText { + padding-right: 10px; +} + +.buttonIcon { + padding-top: 2px; +} diff --git a/apps/docs/src/components/OutlineLinkButton/index.tsx b/apps/docs/src/components/OutlineLinkButton/index.tsx new file mode 100644 index 00000000..767b68c7 --- /dev/null +++ b/apps/docs/src/components/OutlineLinkButton/index.tsx @@ -0,0 +1,20 @@ +import Link from "@docusaurus/Link" +import React from "react" +import IconArrowTopRight from "../icons/IconArrowTopRight" +import styles from "./styles.module.scss" + +export type OutlineLinkButtonProps = { + href: string + children: string +} + +export default function OutlineLinkButton({ href, children }: OutlineLinkButtonProps): JSX.Element { + return ( + +
{children}
+
+ +
+ + ) +} diff --git a/apps/docs/src/components/OutlineLinkButton/styles.module.scss b/apps/docs/src/components/OutlineLinkButton/styles.module.scss new file mode 100644 index 00000000..16742298 --- /dev/null +++ b/apps/docs/src/components/OutlineLinkButton/styles.module.scss @@ -0,0 +1,46 @@ +.outlineLinkButton { + display: flex; + justify-content: space-between; + font-size: 20px; + font-weight: bold; + padding: 4px 12px; + border-radius: 4px; + + &:hover { + text-decoration: none; + } +} + +html[data-theme="light"] { + .outlineLinkButton { + color: var(--custom-blue-3); + border: 2px solid var(--custom-blue-3); + + &:hover { + color: var(--custom-blue-3); + } + + svg > path { + fill: var(--custom-blue-3); + } + } +} + +html[data-theme="dark"] { + .outlineLinkButton { + color: var(--custom-blue-2); + border: 2px solid var(--custom-blue-2); + + &:hover { + color: var(--custom-blue-2); + } + + svg > path { + fill: var(--custom-blue-2); + } + } +} + +.buttonIcon { + padding-right: 8px; +} diff --git a/apps/docs/src/components/icons/IconArrowRight.tsx b/apps/docs/src/components/icons/IconArrowRight.tsx new file mode 100644 index 00000000..b0ef5d0a --- /dev/null +++ b/apps/docs/src/components/icons/IconArrowRight.tsx @@ -0,0 +1,21 @@ +import React from "react" + +export type IconArrowRightProps = { + width?: number + height?: number +} + +export default function IconArrowRight({ width = 10, height = 15 }: IconArrowRightProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconArrowTopRight.tsx b/apps/docs/src/components/icons/IconArrowTopRight.tsx new file mode 100644 index 00000000..5a59534b --- /dev/null +++ b/apps/docs/src/components/icons/IconArrowTopRight.tsx @@ -0,0 +1,21 @@ +import React from "react" + +export type IconArrowTopRightProps = { + width?: number + height?: number +} + +export default function IconArrowTopRight({ width = 13, height = 13 }: IconArrowTopRightProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconAwards.tsx b/apps/docs/src/components/icons/IconAwards.tsx new file mode 100644 index 00000000..d844894c --- /dev/null +++ b/apps/docs/src/components/icons/IconAwards.tsx @@ -0,0 +1,25 @@ +import React from "react" + +export type IconAwardsProps = { + width?: number + height?: number +} + +export default function IconAwards({ width = 24, height = 24 }: IconAwardsProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconCheck.tsx b/apps/docs/src/components/icons/IconCheck.tsx new file mode 100644 index 00000000..632d3ffd --- /dev/null +++ b/apps/docs/src/components/icons/IconCheck.tsx @@ -0,0 +1,22 @@ +import React from "react" + +export type IconCheckProps = { + width?: number + height?: number +} + +export default function IconCheck({ width = 24, height = 24 }: IconCheckProps): JSX.Element { + return ( + + + + + ) +} diff --git a/apps/docs/src/components/icons/IconConnections.tsx b/apps/docs/src/components/icons/IconConnections.tsx new file mode 100644 index 00000000..83ecb7ce --- /dev/null +++ b/apps/docs/src/components/icons/IconConnections.tsx @@ -0,0 +1,21 @@ +import React from "react" + +export type IconConnectionsProps = { + width?: number + height?: number +} + +export default function IconConnections({ width = 18, height = 22 }: IconConnectionsProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconEye.tsx b/apps/docs/src/components/icons/IconEye.tsx new file mode 100644 index 00000000..1a803823 --- /dev/null +++ b/apps/docs/src/components/icons/IconEye.tsx @@ -0,0 +1,30 @@ +import React from "react" + +export type IconEyeProps = { + width?: number + height?: number +} + +export default function IconEye({ width = 24, height = 24 }: IconEyeProps): JSX.Element { + return ( + + + + + ) +} diff --git a/apps/docs/src/components/icons/IconEyeClose.tsx b/apps/docs/src/components/icons/IconEyeClose.tsx new file mode 100644 index 00000000..95468f1c --- /dev/null +++ b/apps/docs/src/components/icons/IconEyeClose.tsx @@ -0,0 +1,21 @@ +import React from "react" + +export type IconEyeCloseProps = { + width?: number + height?: number +} + +export default function IconEyeClose({ width = 24, height = 24 }: IconEyeCloseProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconFlag.tsx b/apps/docs/src/components/icons/IconFlag.tsx new file mode 100644 index 00000000..b4f976a7 --- /dev/null +++ b/apps/docs/src/components/icons/IconFlag.tsx @@ -0,0 +1,25 @@ +import React from "react" + +export type IconFlagProps = { + width?: number + height?: number +} + +export default function IconFlag({ width = 24, height = 24 }: IconFlagProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconGroup.tsx b/apps/docs/src/components/icons/IconGroup.tsx new file mode 100644 index 00000000..834358f4 --- /dev/null +++ b/apps/docs/src/components/icons/IconGroup.tsx @@ -0,0 +1,21 @@ +import React from "react" + +export type IconGroupProps = { + width?: number + height?: number +} + +export default function IconGroup({ width = 24, height = 24 }: IconGroupProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconMoon.tsx b/apps/docs/src/components/icons/IconMoon.tsx new file mode 100644 index 00000000..e74eb6ef --- /dev/null +++ b/apps/docs/src/components/icons/IconMoon.tsx @@ -0,0 +1,25 @@ +import React from "react" + +export type IconMoonProps = { + width?: number + height?: number +} + +export default function IconMoon({ width = 24, height = 24 }: IconMoonProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconProfile.tsx b/apps/docs/src/components/icons/IconProfile.tsx new file mode 100644 index 00000000..9b16c3fd --- /dev/null +++ b/apps/docs/src/components/icons/IconProfile.tsx @@ -0,0 +1,30 @@ +import React from "react" + +export type IconProfileProps = { + width?: number + height?: number +} + +export default function IconProfile({ width = 24, height = 24 }: IconProfileProps): JSX.Element { + return ( + + + + + ) +} diff --git a/apps/docs/src/components/icons/IconSun.tsx b/apps/docs/src/components/icons/IconSun.tsx new file mode 100644 index 00000000..8efdf2cd --- /dev/null +++ b/apps/docs/src/components/icons/IconSun.tsx @@ -0,0 +1,21 @@ +import React from "react" + +export type IconSunProps = { + width?: number + height?: number +} + +export default function IconSun({ width = 24, height = 24 }: IconSunProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/components/icons/IconUnion.tsx b/apps/docs/src/components/icons/IconUnion.tsx new file mode 100644 index 00000000..a499b3ff --- /dev/null +++ b/apps/docs/src/components/icons/IconUnion.tsx @@ -0,0 +1,25 @@ +import React from "react" + +export type IconUnionProps = { + width?: number + height?: number +} + +export default function IconUnion({ width = 20, height = 18 }: IconUnionProps): JSX.Element { + return ( + + + + ) +} diff --git a/apps/docs/src/css/custom.scss b/apps/docs/src/css/custom.scss new file mode 100644 index 00000000..d923d5ba --- /dev/null +++ b/apps/docs/src/css/custom.scss @@ -0,0 +1,410 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* You can override the default Infima variables here. */ + +@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap"); + +:root { + --ifm-color-primary: #3578e5; + --ifm-color-primary-dark: #1d68e1; + --ifm-color-primary-darker: #1b62d4; + --ifm-color-primary-darkest: #1751af; + --ifm-color-primary-light: #4e89e8; + --ifm-color-primary-lighter: #5a91ea; + --ifm-color-primary-lightest: #80aaef; + + --custom-dark-4: #0c0c15; + --custom-dark-3: #131320; + --custom-dark-2: #1f2034; + --custom-dark-1: #3b3b48; + --custom-gray-1: #8f9097; + --custom-gray-0: #c4c6ca; + --custom-blue-3: #5867bc; + --custom-blue-2: #758bff; + --custom-blue-1: #dae0ff; + --custom-blue-0: #f8f9ff; + + --collapse-button-bg-color-dark: #2e333a; + + --ifm-code-font-size: 95%; + + --ifm-h1-font-size: 1.75rem; + --ifm-h2-font-size: 1.5rem; + --ifm-h3-font-size: 1.25rem; + --ifm-h4-font-size: 1rem; + --ifm-h5-font-size: 0.875rem; + --ifm-h6-font-size: 0.85rem; + + --ifm-toc-border-width: 1px; + + /* --ifm-menu-color: var(--ifm-color-emphasis-900); */ + --ifm-menu-color-background-active: transparent; + --ifm-menu-color-background-hover: transparent; + + --ifm-global-shadow-lw: 0 1px 10px 0 rgba(0, 0, 0, 0.1); + --ifm-global-shadow-md: 0 5px 40px rgba(0, 0, 0, 0.1); + --ifm-global-shadow-tl: 0 12px 28px 0 rgba(0, 0, 0, 0.2), 0 2px 4px 0 rgba(0, 0, 0, 0.1); + + --ifm-global-spacing: 1.5rem; + /* --ifm-navbar-background-color: rgba(255, 0.2); */ +} + +html[data-theme="dark"] { + --ifm-background-color: var(--custom-dark-3); + --ifm-color-primary: var(--custom-gray-1); + --ifm-heading-color: var(--custom-gray-0); + --ifm-navbar-background-color: var(--custom-dark-3); + --ifm-global-shadow-md: 0 5px 4px rgba(255, 255, 255, 0.448); + --ifm-toc-border-color: var(--custom-dark-2); +} + +html[data-theme="light"] { + --ifm-background-color: #fcfcfc; + --ifm-color-primary: var(--custom-dark-1); + --ifm-heading-color: var(--custom-dark-2); + --ifm-navbar-background-color: #fcfcfc; + --ifm-toc-border-color: var(--custom-blue-1); +} + +html { + font-family: "Inter", sans-serif; + font-size: 16px; + font-variant: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + font-feature-settings: "ss01" on, "ss02" on, "cv01" on, "cv03" on; + font-weight: 400; +} + +svg.custom-icon path, +svg.custom-icon react { + fill: var(--ifm-color-primary); +} + +svg.custom-icon circle { + stroke: var(--ifm-color-primary); +} + +p { + line-height: 1.5rem; + font-weight: 400; +} + +hr { + border-bottom-width: 0px; + border-top-width: 1px; + border-color: var(--ifm-color-emphasis-200); +} + +h1, +h2, +h3, +h4, +h5 { + font-family: "Inter", sans-serif; + font-weight: 400; +} + +h1 { + font-size: 32px; +} + +h2 { + font-size: 24px; +} + +h3 { + font-size: 20px; +} + +h4 { + font-size: 16px; +} + +.tocCollapsibleButton_node_modules-\@docusaurus-theme-classic-lib-next-theme-TOCCollapsible-styles-module { + padding-left: 0px !important; +} + +.menu__link--sublist:after { + background: var(--ifm-menu-link-sublist-icon) 50% / 1.5rem 1.5rem; + /* color: var( --ifm-color-primary); */ +} + +.navbar { + height: 90px; + align-items: center; + box-shadow: none; + font-size: 18px; + + .navbar__toggle { + margin-right: 20px; + } + + .navbar-sidebar__brand { + margin-bottom: 16px; + padding: 12px 20px; + } +} + +@media (max-width: 996px) { + .footer { + --ifm-footer-padding-horizontal: 20px; + } +} + +html[data-theme="dark"] { + .navbar { + border-bottom: var(--ifm-toc-border-color) 1px solid; + } + + .footer { + background-color: var(--custom-dark-4); + } + + .markdown a { + color: var(--custom-blue-2); + } + + h2 a { + color: var(--custom-blue-2); + } + + input:focus, + select:focus { + border-color: var(--custom-blue-2); + } + + li[role="tab"][aria-selected="true"] { + color: var(--custom-blue-2); + border-bottom-color: var(--custom-blue-2); + } +} + +html[data-theme="light"] { + .navbar { + border-bottom: var(--ifm-toc-border-color) 1px solid; + } + + .footer { + background-color: var(--custom-blue-1); + } + + .markdown a { + color: var(--custom-blue-3); + } + + h2 a { + color: var(--custom-blue-3); + } + + input:focus, + select:focus { + border-color: var(--custom-blue-3); + } + + li[role="tab"][aria-selected="true"] { + color: var(--custom-blue-3); + border-bottom-color: var(--custom-blue-3); + } +} + +.container { + padding: 0px; + /* margin: 4rem auto 0px; */ + max-width: 90% !important; +} + +.container.padding-top--md { + padding-top: 2rem !important; +} + +.react-toggle-track { + background-color: var(--ifm-color-emphasis-100) !important; +} + +.react-toggle-thumb { + background-color: var(--ifm-color-emphasis-200) !important; +} + +.react-toggle-thumb:hover { + box-shadow: none !important; +} + +.navbar__title { + font-family: "Inter", sans-serif; + color: var(--ifm-color-primary); + font-weight: 500; +} + +.navbar__link { + font-family: "Inter", sans-serif; + color: var(--ifm-color-primary); + font-weight: 400; +} + +.navbar__logo { + height: 25px; +} + +.menu__link { + font-size: 18px; + font-weight: 400; + padding: 8px 16px; +} + +html[data-theme="dark"] .navbar__logo { + filter: invert(100%) sepia(0%) saturate(7500%) hue-rotate(337deg) brightness(112%) contrast(104%); +} + +.docusaurus-highlight-code-line { + background-color: rgb(72, 77, 91); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); + color: var(--ifm-color-secondary-darker); +} + +.badge { + margin-bottom: 16px; +} + +.badge--secondary { + --ifm-badge-background-color: var(--custom-blue-1); + --ifm-badge-border-color: var(--ifm-badge-background-color); + color: var(--custom-dark-3); +} + +html[data-theme="light"] .DocSearch { + /* --docsearch-primary-color: var(--ifm-color-primary); */ + /* --docsearch-text-color: var(--ifm-font-color-base); */ + --docsearch-muted-color: var(--ifm-color-emphasis-900); + --docsearch-container-background: rgba(94, 100, 112, 0.7); + /* Modal */ + --docsearch-modal-background: var(--ifm-color-secondary-lighter); + /* Search box */ + --docsearch-searchbox-background: var(--ifm-color-secondary); + --docsearch-searchbox-focus-background: var(--ifm-color-white); + --docsearch-searchbox-shadow: inset 0 0 0 2px var(--custom-blue-3); + /* Hit */ + --docsearch-hit-color: var(--ifm-font-color-base); + --docsearch-hit-active-color: var(--ifm-color-white); + --docsearch-hit-background: var(--ifm-color-white); + --docsearch-highlight-color: var(--custom-blue-3); + + /* Footer */ + --docsearch-footer-background: var(--ifm-color-white); +} + +html[data-theme="dark"] .DocSearch { + /* --docsearch-text-color: var(--ifm-font-color-100); */ + --docsearch-muted-color: var(--ifm-color-secondary-darkest); + --docsearch-container-background: rgba(47, 55, 69, 0.7); + /* Modal */ + --docsearch-modal-background: var(--ifm-background-color); + /* Search box */ + --docsearch-searchbox-background: var(--ifm-background-color); + --docsearch-searchbox-focus-background: var(--ifm-color-black); + --docsearch-searchbox-shadow: inset 0 0 0 2px var(--custom-blue-2); + /* Hit */ + --docsearch-hit-color: var(--ifm-font-color-base); + --docsearch-hit-active-color: var(--ifm-color-emphasis-700); + --docsearch-hit-background: var(--ifm-color-emphasis-100); + --docsearch-highlight-color: var(--custom-blue-2); + /* Footer */ + --docsearch-footer-background: var(--ifm-background-surface-color); + --docsearch-key-gradient: linear-gradient( + -26.5deg, + var(--ifm-color-emphasis-200) 0%, + var(--ifm-color-emphasis-100) 100% + ); +} + +.react-toggle-thumb :hover { + border: none; + outline: none; + box-shadow: none; +} +.react-toggle-thumb :focus { + border: none; + outline: none; + box-shadow: none; +} +.react-toggle-thumb :active { + border: none; + outline: none; + box-shadow: none; +} + +.menu { + /* background-color: var(--ifm-color-emphasis-0); */ + padding: 1.5rem 1rem !important; +} + +.dropdown__menu { + box-shadow: 0 5px 40px rgba(0, 0, 0, 0.1); +} + +.menu__link:hover { + text-decoration: underline; +} + +.menu__link--active { + font-weight: 600; +} + +.table-of-contents { + opacity: 0.4; +} + +.table-of-contents:hover { + opacity: 1; +} + +.table-of-contents__link:hover { + text-decoration: underline; +} + +.navbar__inner { + flex-wrap: unset; +} + +.navbar__item { + display: inline-block; +} + +.navbar__item.dropdown { + display: inline-block; +} + +.menu__list-item--collapsed .menu__link { + display: flex; +} + +.menu__link { + display: flex; +} + +@media (max-width: 960px) { + .menu { + /* background-color: var(--ifm-color-emphasis-0); */ + padding: initial !important; + } + + .container { + max-width: 100% !important; + padding: 1rem; + } + + .container.padding-top--md { + padding-top: initial; + } + + .navbar__item { + display: none !important; + } +} diff --git a/apps/docs/src/pages/index.tsx b/apps/docs/src/pages/index.tsx new file mode 100644 index 00000000..01639b0f --- /dev/null +++ b/apps/docs/src/pages/index.tsx @@ -0,0 +1,318 @@ +import { translate } from "@docusaurus/Translate" +import CodeBlock from "@theme/CodeBlock" +import Layout from "@theme/Layout" +import React from "react" +import IconAwards from "../components/icons/IconAwards" +import IconCheck from "../components/icons/IconCheck" +import IconConnections from "../components/icons/IconConnections" +import IconEye from "../components/icons/IconEye" +import IconEyeClose from "../components/icons/IconEyeClose" +import IconFlag from "../components/icons/IconFlag" +import IconGroup from "../components/icons/IconGroup" +import IconProfile from "../components/icons/IconProfile" +import IconUnion from "../components/icons/IconUnion" +import IllustrationHero from "../components/IllustrationHero" +import LinkButton from "../components/LinkButton" +import OutlineLinkButton from "../components/OutlineLinkButton" +import styles from "./styles.module.scss" + +export default function Home() { + return ( + +
+
+
+

+ {translate({ + id: "jumbotron.title" + })} +

+ +

+ {translate({ + id: "jumbotron.description" + })} +

+ +
+ + {translate({ + id: "quick-setup.button" + })} + + + + {translate({ + id: "boilerplate.button" + })} + +
+
+ + +
+ +
+

+ {translate({ + id: "components.description" + })} +

+
+ + {translate({ + id: "components.button.solidity" + })} + + + {translate({ + id: "components.button.circuits" + })} + + + {translate({ + id: "components.button.libraries" + })} + +
+
+ +
+
+
+

+ {translate({ + id: "section.identities.title" + })} +

+ +

+ {translate({ + id: "section.identities.description" + })} +

+ + + {translate({ + id: "section.identities.link" + })} + +
+
+ + {`import { Identity } from "@semaphore-protocol/identity" + +const { trapdoor, nullifier, commitment } = new Identity()`} + +
+
+
+
+ +

+ {translate({ + id: "section.identities.box1.title" + })} +

+

+ {translate({ + id: "section.identities.box1.description" + })} +

+
+
+ +

+ {translate({ + id: "section.identities.box2.title" + })} +

+

+ {translate({ + id: "section.identities.box2.description" + })} +

+
+
+ + +

+ {translate({ + id: "section.identities.box3.title" + })} +

+

+ {translate({ + id: "section.identities.box3.description" + })} +

+
+
+
+ +
+ +
+
+
+

+ {translate({ + id: "section.groups.title" + })} +

+ +

+ {translate({ + id: "section.groups.description" + })} +

+ + + {translate({ + id: "section.groups.link" + })} + +
+
+ + {`import { Group } from "@semaphore-protocol/group" + +const group = new Group() + +group.addMember(commitment)`} + +
+
+
+
+ +

+ {translate({ + id: "section.groups.box1.title" + })} +

+

+ {translate({ + id: "section.groups.box1.description" + })} +

+
+
+ +

+ {translate({ + id: "section.groups.box2.title" + })} +

+

+ {translate({ + id: "section.groups.box2.description" + })} +

+
+
+ + +

+ {translate({ + id: "section.groups.box3.title" + })} +

+

+ {translate({ + id: "section.groups.box3.description" + })} +

+
+
+
+ +
+ +
+
+
+

+ {translate({ + id: "section.proofs.title" + })} +

+ +

+ {translate({ + id: "section.proofs.description" + })} +

+ + + {translate({ + id: "section.proofs.link" + })} + +
+
+ + {`import { generateProof, verifyProof } from "@semaphore-protocol/proof" +import { formatBytes32String } from "@ethersproject/strings" + +const externalNullifier = formatBytes32String("Topic") +const signal = formatBytes32String("Hello world") + +const fullProof = await generateProof(identity, group, externalNullifier, signal, { + zkeyFilePath: "./semaphore.zkey", + wasmFilePath: "./semaphore.wasm" +}) + +await verifyProof(fullProof, group.depth)`} + +
+
+
+
+ +

+ {translate({ + id: "section.proofs.box1.title" + })} +

+

+ {translate({ + id: "section.proofs.box1.description" + })} +

+
+
+ +

+ {translate({ + id: "section.proofs.box2.title" + })} +

+

+ {translate({ + id: "section.proofs.box2.description" + })} +

+
+
+ +

+ {translate({ + id: "section.proofs.box3.title" + })} +

+

+ {translate({ + id: "section.proofs.box3.description" + })} +

+
+
+
+
+ + ) +} diff --git a/apps/docs/src/pages/styles.module.scss b/apps/docs/src/pages/styles.module.scss new file mode 100644 index 00000000..49357b9e --- /dev/null +++ b/apps/docs/src/pages/styles.module.scss @@ -0,0 +1,258 @@ +.container { + display: flex; + flex-direction: column; + max-width: 1280px; + margin: 0 auto; + margin-bottom: 4rem; + + h1 { + font-size: 42px; + } + + h2 { + font-size: 36px; + } + + p { + font-size: 20px; + color: var(--ifm-color-primary); + } +} + +.jumbotron { + display: flex; + justify-content: space-between; + margin: 80px 0; + + > div, + > svg { + margin: 0 20px; + } + + > div { + max-width: 600px; + + > div { + margin-top: 40px; + display: flex; + flex-direction: column; + align-items: flex-start; + + a { + font-size: 22px; + margin-bottom: 10px; + } + } + } + + > svg { + max-width: 500px; + min-width: 400px; + height: auto; + } +} + +@media (max-width: 768px) { + .jumbotron { + margin-top: 50px; + flex-direction: column; + align-items: center; + + > div { + max-width: 700px; + } + + > svg { + min-width: 300px; + } + } +} + +.components { + display: flex; + flex-direction: column; + margin: 50px 20px 80px 20px; + + > h3 { + text-align: center; + font-weight: bold; + margin-bottom: 60px; + } + + > div { + display: flex; + justify-content: space-between; + + > a { + flex: 1; + margin: 0 16px; + + :first-child { + margin-left: 0; + } + + :last-child { + margin-right: 0; + } + } + } +} + +@media (max-width: 768px) { + .components { + margin-bottom: 40px; + + > p { + margin-bottom: 20px; + } + + > div { + flex-direction: column; + align-items: center; + + > a { + width: 100%; + margin: 16px 0; + } + } + } +} + +.section { + display: flex; + flex-direction: column; + margin: 100px 20px; + + > div:first-child { + display: flex; + + > div { + margin: 0 20px; + flex: 1; + + &:first-child { + margin-left: 0; + } + + &:last-child { + margin-right: 0; + width: 100%; + } + } + } + + > div:last-child { + margin-top: 80px; + display: flex; + justify-content: space-between; + + > div { + flex: 1; + margin: 0 20px; + + > img { + margin-bottom: 10px; + } + + &:first-child { + margin-left: 0; + } + + &:last-child { + margin-right: 0; + } + } + + h3 { + font-weight: bold; + } + + p { + font-size: 16px; + } + } +} + +@media (max-width: 1280px) { + .section { + > div:first-child { + flex-direction: column; + + > div { + margin: 20px 0; + } + } + } +} + +@media (max-width: 768px) { + .section { + margin: 40px 20px; + + > div:last-child { + margin-top: 20px; + flex-direction: column; + + > div { + margin: 10px 0; + } + } + } +} + +.divider { + height: 3px; + margin-top: 60px; +} + +@media (max-width: 1280px) { + .divider { + margin: 0 20px; + } +} + +html[data-theme="light"] { + .container { + h1 { + color: var(--custom-dark-3); + } + } + + .section > div:last-child { + svg path, + svg react { + fill: var(--custom-dark-2); + } + + svg circle { + stroke: var(--custom-dark-2); + } + } + + .divider { + background-color: var(--custom-gray-0); + } +} + +html[data-theme="dark"] { + .container { + h1 { + color: var(--custom-blue-0); + } + } + + .section > div:last-child { + svg path, + svg react { + fill: var(--custom-gray-0); + } + + svg circle { + stroke: var(--custom-gray-0); + } + } + + .divider { + background-color: var(--custom-dark-2); + } +} diff --git a/apps/docs/src/theme/Footer/index.tsx b/apps/docs/src/theme/Footer/index.tsx new file mode 100644 index 00000000..e2f5da2a --- /dev/null +++ b/apps/docs/src/theme/Footer/index.tsx @@ -0,0 +1,105 @@ +import Link from "@docusaurus/Link" +import { translate } from "@docusaurus/Translate" +import Logo from "@theme/Logo" +import clsx from "clsx" +import React from "react" +import styles from "./styles.module.scss" + +function Footer() { + return ( +
+
+
+
+

+ {translate({ + id: "footer.left.title" + })} +

+

+ {translate({ + id: "footer.left.description" + })} +

+ + pse.dev + +
+
+
+

+ {translate({ + id: "footer.right.usedby.title" + })} +

+ + {translate({ + id: "footer.right.usedby.link1" + })} + + + {translate({ + id: "footer.right.usedby.link2" + })} + +
+
+

+ {translate({ + id: "footer.right.learn.title" + })} +

+ + + {translate({ + id: "footer.right.learn.link1" + })} + + + {translate({ + id: "footer.right.learn.link2" + })} + +
+
+

+ {translate({ + id: "footer.right.connect.title" + })} +

+ + {translate({ + id: "footer.right.connect.link1" + })} + + + {translate({ + id: "footer.right.connect.link2" + })} + +
+
+
+ +
+ +
+

+ {translate({ + id: "footer.copyright" + })} +

+ + +
+
+
+ ) +} + +export default React.memo(Footer) diff --git a/apps/docs/src/theme/Footer/styles.module.scss b/apps/docs/src/theme/Footer/styles.module.scss new file mode 100644 index 00000000..4d0b2daa --- /dev/null +++ b/apps/docs/src/theme/Footer/styles.module.scss @@ -0,0 +1,137 @@ +.container { + display: flex; + flex-direction: column; + font-size: 14px; + + a { + color: var(--custom-blue-2); + font-weight: bold; + font-size: 16px; + } + + h3 { + font-weight: bold; + font-size: 18px; + white-space: nowrap; + } + + > div:first-child { + display: flex; + margin-bottom: 20px; + + > div:first-child { + flex: 1; + margin-right: 20px; + + > p { + max-width: 400px; + } + } + + > div:last-child { + flex: 1; + display: flex; + justify-content: right; + + > div { + display: flex; + flex-direction: column; + margin-left: 200px; + + > a { + margin-bottom: 5px; + } + } + } + } + + > div:last-child { + display: flex; + justify-content: space-between; + margin-top: 20px; + + > p { + margin: 0; + } + } +} + +@media (max-width: 1280px) { + .container { + > div:first-child { + > div:last-child { + > div { + margin-left: 50px; + } + } + } + } +} + +@media (max-width: 768px) { + .container { + > div:first-child { + flex-direction: column; + + > div:first-child { + margin-bottom: 30px; + + > p { + margin: 20px 0; + max-width: inherit; + } + } + + > div:last-child { + justify-content: space-between; + + > div { + margin-left: 0; + } + + > p { + font-size: 16px; + font-weight: bold; + } + + > a { + margin: 5px 0; + } + } + } + } +} + +@media (max-width: 640px) { + .container { + > div:last-child { + > a { + display: none; + } + } + } +} + +html[data-theme="light"] { + .container { + a { + color: var(--custom-blue-3); + } + } + + hr { + border-color: var(--custom-gray-1); + } +} + +html[data-theme="dark"] { + .container { + a { + color: var(--custom-blue-2); + } + } + + hr { + border-color: var(--custom-dark-1); + } +} diff --git a/apps/docs/src/theme/IconExternalLink/index.tsx b/apps/docs/src/theme/IconExternalLink/index.tsx new file mode 100644 index 00000000..49b40d7b --- /dev/null +++ b/apps/docs/src/theme/IconExternalLink/index.tsx @@ -0,0 +1,18 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import IconArrowTopRight from "@site/src/components/icons/IconArrowTopRight" +import React from "react" + +function IconExternalLink() { + return ( + + + + ) +} + +export default IconExternalLink diff --git a/apps/docs/src/theme/Navbar/Search/index.tsx b/apps/docs/src/theme/Navbar/Search/index.tsx new file mode 100644 index 00000000..63343b21 --- /dev/null +++ b/apps/docs/src/theme/Navbar/Search/index.tsx @@ -0,0 +1,11 @@ +import { useLocation } from "@docusaurus/router" +import SearchOriginal from "@theme-original/Navbar/Search" +import React from "react" + +export default function Search(props) { + const { pathname } = useLocation() + + const pathSegments = pathname.split("/") + + return pathSegments.includes("docs") && +} diff --git a/apps/docs/src/theme/NavbarItem/index.tsx b/apps/docs/src/theme/NavbarItem/index.tsx new file mode 100644 index 00000000..478b3bc9 --- /dev/null +++ b/apps/docs/src/theme/NavbarItem/index.tsx @@ -0,0 +1,33 @@ +import { useLocation } from "@docusaurus/router" +import useDocusaurusContext from "@docusaurus/useDocusaurusContext" +import OriginalNavBarItem from "@theme-original/NavbarItem" +import React from "react" + +export default function NavbarItem(props) { + const { pathname } = useLocation() + const { i18n } = useDocusaurusContext() + + const pathSegments = pathname.split("/") + + let docs: string, version: string + + if (i18n.locales.includes(pathSegments[1])) { + docs = pathSegments[2] + version = pathSegments[3] + } else { + docs = pathSegments[1] + version = pathSegments[2] + } + + let { className = "" } = props + + return ( + (!className || + !( + (className.includes("V1") && version !== "V1") || + (className.includes("V2") && version !== "V2") || + (className.includes("V3") && version !== "V3") || + (className.includes("homepage") && docs === "docs") + )) && + ) +} diff --git a/apps/docs/src/theme/Toggle/index.tsx b/apps/docs/src/theme/Toggle/index.tsx new file mode 100644 index 00000000..528fe34c --- /dev/null +++ b/apps/docs/src/theme/Toggle/index.tsx @@ -0,0 +1,64 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import useIsBrowser from "@docusaurus/useIsBrowser" +import IconMoon from "@site/src/components/icons/IconMoon" +import IconSun from "@site/src/components/icons/IconSun" +import clsx from "clsx" +import React, { memo, useRef, useState } from "react" +import styles from "./styles.module.scss" // Based on react-toggle (https://github.com/aaronshaf/react-toggle/). + +const ToggleComponent = memo(({ className, switchConfig, checked: defaultChecked, disabled, onChange }) => { + const [checked, setChecked] = useState(defaultChecked) + const [focused, setFocused] = useState(false) + const inputRef = useRef(null) + return ( +
+ {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */} +
inputRef.current?.click()}> +
+ + + +
+
+ + + +
+
+
+ + setChecked(!checked)} + onFocus={() => setFocused(true)} + onBlur={() => setFocused(false)} + onKeyDown={(e) => { + if (e.key === "Enter") { + inputRef.current?.click() + } + }} + /> +
+ ) +}) +export default function Toggle(props) { + const isBrowser = useIsBrowser() + + return +} diff --git a/apps/docs/src/theme/Toggle/styles.module.scss b/apps/docs/src/theme/Toggle/styles.module.scss new file mode 100644 index 00000000..c7ee6700 --- /dev/null +++ b/apps/docs/src/theme/Toggle/styles.module.scss @@ -0,0 +1,110 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +.toggle { + touch-action: pan-x; + position: relative; + cursor: pointer; + user-select: none; + margin-left: 10px; + -webkit-tap-highlight-color: transparent; +} + +.toggleScreenReader { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + position: absolute; + width: 1px; +} + +.toggleDisabled { + cursor: not-allowed; +} + +.toggleTrack { + width: 50px; + height: 24px; + border-radius: 30px; + background-color: var(--custom-dark-1); + transition: all 0.2s ease; +} + +.toggleTrackCheck { + position: absolute; + height: 15px; + top: 0; + bottom: 0; + margin: auto 0; + left: 8px; + opacity: 0; + transition: opacity 0.25s ease; +} + +.toggleChecked .toggleTrackCheck, +[data-theme="dark"] .toggle .toggleTrackCheck { + opacity: 1; + transition: opacity 0.25s ease; +} + +.toggleTrackX { + position: absolute; + width: 12px; + height: 15px; + top: 0; + bottom: 0; + margin: auto 0; + right: 10px; + opacity: 1; + transition: opacity 0.25s ease; +} + +.toggleChecked .toggleTrackX, +[data-theme="dark"] .toggle .toggleTrackX { + opacity: 0; +} + +.toggleTrackThumb { + position: absolute; + top: 1px; + left: 1px; + width: 22px; + height: 22px; + border: 1px solid #4d4d4d; + border-radius: 50%; + background-color: #fafafa; + transition: all 0.25s ease; +} + +.toggleFocused .toggleTrackThumb, +.toggle:hover .toggleTrackThumb { + box-shadow: 0 0 2px 3px var(--ifm-color-primary); +} + +/* stylelint-disable-next-line no-descending-specificity */ +.toggleChecked .toggleTrackThumb, +[data-theme="dark"] .toggle .toggleTrackThumb { + left: 27px; +} + +.toggle:active:not(.toggleDisabled) .toggleTrackThumb { + box-shadow: 0 0 5px 5px var(--ifm-color-primary); +} + +.toggleIcon { + align-items: center; + display: flex; + height: 15px; + justify-content: center; + width: 15px; + + svg > path { + fill: var(--custom-blue-0); + } +} diff --git a/apps/docs/src/types/global.d.ts b/apps/docs/src/types/global.d.ts new file mode 100644 index 00000000..e4089fc8 --- /dev/null +++ b/apps/docs/src/types/global.d.ts @@ -0,0 +1 @@ +declare module "*.scss" diff --git a/apps/docs/static/.nojekyll b/apps/docs/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/apps/docs/static/CNAME b/apps/docs/static/CNAME new file mode 100644 index 00000000..1de24771 --- /dev/null +++ b/apps/docs/static/CNAME @@ -0,0 +1 @@ +semaphore.pse.dev diff --git a/apps/docs/static/img/favicon.ico b/apps/docs/static/img/favicon.ico new file mode 100644 index 00000000..c695649f Binary files /dev/null and b/apps/docs/static/img/favicon.ico differ diff --git a/apps/docs/static/img/semaphore-icon-dark.svg b/apps/docs/static/img/semaphore-icon-dark.svg new file mode 100644 index 00000000..57c3ad70 --- /dev/null +++ b/apps/docs/static/img/semaphore-icon-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/docs/static/img/semaphore-icon.svg b/apps/docs/static/img/semaphore-icon.svg new file mode 100644 index 00000000..9db87451 --- /dev/null +++ b/apps/docs/static/img/semaphore-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/docs/static/img/semaphore-logo.svg b/apps/docs/static/img/semaphore-logo.svg new file mode 100644 index 00000000..5fd48c27 --- /dev/null +++ b/apps/docs/static/img/semaphore-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/docs/static/whitepaper-v1.pdf b/apps/docs/static/whitepaper-v1.pdf new file mode 100644 index 00000000..c87f10b3 Binary files /dev/null and b/apps/docs/static/whitepaper-v1.pdf differ diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json new file mode 100644 index 00000000..41ffdec4 --- /dev/null +++ b/apps/docs/tsconfig.json @@ -0,0 +1,7 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@tsconfig/docusaurus/tsconfig.json", + "compilerOptions": { + "baseUrl": "." + } +} diff --git a/apps/docs/versioned_docs/version-V1/audit.md b/apps/docs/versioned_docs/version-V1/audit.md new file mode 100644 index 00000000..d8c79479 --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/audit.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 8 +--- + +# Security audit + +The [Ethereum Foundation](https://ethereum.org/) and [POA +Network](https://www.poa.network/) commissioned [ABDK +Consulting](https://www.abdk.consulting) to audit the source code of Semaphore +as well as relevant circuits in +[circomlib](https://github.com/iden3/circomlib), which contains components +which the Semaphore zk-SNARK uses. + +The summary of the audit results can be found +[here](https://github.com/appliedzkp/semaphore/tree/master/audit). After three +rounds of fixes, all security and performance issues were fixed, and the few +remaining issues are minor and do not affect security. diff --git a/apps/docs/versioned_docs/version-V1/contract-api.md b/apps/docs/versioned_docs/version-V1/contract-api.md new file mode 100644 index 00000000..702a1ba5 --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/contract-api.md @@ -0,0 +1,105 @@ +--- +sidebar_position: 5 +--- + +# Contract API + +## Constructor + +**Contract ABI**: + +`constructor(uint8 _treeLevels, uint232 _firstExternalNullifier)` + +- `_treeLevels`: The depth of the identity tree. +- `_firstExternalNullifier`: The first identity nullifier to add. + +The depth of the identity tree determines how many identity commitments may be +added to this contract: `2 ^ _treeLevels`. Once the tree is full, further +insertions will fail with the revert reason `IncrementalMerkleTree: tree is full`. + +The first external nullifier will be added as an external nullifier to the +contract, and this external nullifier will be active once the deployment +completes. + +## Add, deactivate, or reactivate external nullifiiers + +**Contract ABI**: + +`addExternalNullifier(uint232 _externalNullifier)` + +Adds an external nullifier to the contract. Only the owner can do this. +This external nullifier is active once it is added. + +- `_externalNullifier`: The new external nullifier to set. + +`deactivateExternalNullifier(uint232 _externalNullifier)` + +- `_externalNullifier`: The existing external nullifier to deactivate. + +Deactivate an external nullifier. The external nullifier must already be active +for this function to work. Only the owner can do this. + +`reactivateExternalNullifier(uint232 _externalNullifier)` + +Reactivate an external nullifier. The external nullifier must already be +inactive for this function to work. Only the owner can do this. + +- `_externalNullifier`: The deactivated external nullifier to reactivate. + +## Insert identities + +**Contract ABI**: + +`function insertIdentity(uint256 _identityCommitment)` + +- `_identity_commitment`: The user's identity commitment, which is the hash of + their public key and their identity nullifier (a random 31-byte value). It + should be the output of a Pedersen hash. It is the responsibility of the + caller to verify this. + +**Off-chain `libsemaphore` helper functions**: + +Use `genIdentity()` to generate an `Identity` object, and +`genIdentityCommitment(identity: Identity)` to generate the +`_identityCommitment` value to pass to the contract. + +To convert `identity` to a string and back, so that you can store it in a +database or somewhere safe, use `serialiseIdentity()` and +`unSerialiseIdentity()`. + +See the [Usage section on inserting +identities](./usage#insert-identities) for more information. + +## Broadcast signals + +**Contract ABI**: + +``` +broadcastSignal( + bytes memory _signal, + uint256[8] memory _proof, + uint256 _root, + uint256 _nullifiersHash, + uint232 _externalNullifier +) +``` + +- `_signal`: the signal to broadcast. +- `_proof`: a zk-SNARK proof (see below). +- `_root`: The root of the identity tree, where the user's identity commitment + is the last-inserted leaf. +- `_nullifiersHash`: A uniquely derived hash of the external nullifier, user's + identity nullifier, and the Merkle path index to their identity commitment. + It ensures that a user cannot broadcast a signal with the same external + nullifier more than once. +- `_externalNullifier`: The external nullifier at which the signal is + broadcast. + +**Off-chain `libsemaphore` helper functions**: + +Use `libsemaphore`'s `genWitness()`, `genProof()`, `genPublicSignals()` and +finally `genBroadcastSignalParams()` to generate the parameters to the +contract's `broadcastSignal()` function. + +See the [Usage section on broadcasting +signals](./usage#broadcast-signals) for more information. diff --git a/apps/docs/versioned_docs/version-V1/creditsandresources.md b/apps/docs/versioned_docs/version-V1/creditsandresources.md new file mode 100644 index 00000000..5d712949 --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/creditsandresources.md @@ -0,0 +1,33 @@ +--- +sidebar_position: 9 +--- + +# Credits + +- Barry WhiteHat +- Chih Cheng Liang +- Kobi Gurkan +- Koh Wei Jie +- Harry Roberts + +Many thanks to: + +- ABDK Consulting +- Jordi Baylina / iden3 +- POA Network +- PepperSec +- Ethereum Foundation + +# Resources + +[To Mixers and Beyond: presenting Semaphore, a privacy gadget built on Ethereum](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) - Koh Wei Jie + +[Privacy in Ethereum](https://www.youtube.com/watch?v=maDHYyj30kg) - Barry WhiteHat at the Taipei Ethereum Meetup + +[Snarks for mixing, signaling and scaling by](https://www.youtube.com/watch?v=lv6iK9qezBY) - Barry WhiteHat at Devcon 4 + +[Privacy in Ethereum](https://www.youtube.com/watch?v=zBUo7G95wYE) - Barry WhiteHat at Devcon 5 + +[A trustless Ethereum mixer using zero-knowledge signalling](https://www.youtube.com/watch?v=GzVT16lFOHU) - Koh Wei Jie and Barry WhiteHat at Devcon 5 + +[Hands-on Applications of Zero-Knowledge Signalling](https://www.youtube.com/watch?v=7wd2aAN2jXI) - Koh Wei Jie at Devcon 5 diff --git a/apps/docs/versioned_docs/version-V1/howitworks.md b/apps/docs/versioned_docs/version-V1/howitworks.md new file mode 100644 index 00000000..d2c602cf --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/howitworks.md @@ -0,0 +1,137 @@ +--- +sidebar_position: 2 +--- + +# How it works + +## Inserting identities + +An identity is comprised of the following information: + +1. An [EdDSA](https://en.wikipedia.org/wiki/EdDSA) private key. Note that it is + _not_ an Ethereum private key. +2. An identity nullifier, whih is a random 32-byte value. +3. An identity trapdoor, whih is a random 32-byte value. + +An identity commitment is the Pedersen hash of: + +1. The public key associated with the identity's private key. +2. The identity nullifier. +3. The identity trapdoor. + +To register an identity, the user must insert their identity commitment into +Semaphore's identity tree. They can do this by calling the Semaphore contract's +`insertIdentity(uint256 _identityCommitment)` function. See the [API +reference](./contract-api) for more information. + +## Broadcasting signals + +To broadcast a signal, the user must invoke this Semaphore contract function: + +``` +broadcastSignal( + bytes memory _signal, + uint256[8] memory _proof, + uint256 _root, + uint256 _nullifiersHash, + uint232 _externalNullifier +) +``` + +- `_signal`: the signal to broadcast. +- `_proof`: a zk-SNARK proof (see below). +- `_root`: The root of the identity tree, where the user's identity commitment + is the last-inserted leaf. +- `_nullifiersHash`: A uniquely derived hash of the external nullifier, user's + identity nullifier, and the Merkle path index to their identity commitment. + It ensures that a user cannot broadcast a signal with the same external + nullifier more than once. +- `_externalNullifier`: The external nullifier at which the signal is + broadcast. + +To zk-SNARK proof must satisfy the constraints created by Semaphore's zk-SNARK +circuit as described below: + +### The zk-SNARK circuit + +The +[semaphore-base.circom](https://github.com/appliedzkp/semaphore/blob/master/circuits/circom/semaphore-base.circom) +circuit helps to prove the following: + +### That the identity commitment exists in the Merkle tree + +**Private inputs:** + +- `identity_pk`: the user's EdDSA public key +- `identity_nullifier`: a random 32-byte value which the user should save +- `identity_trapdoor`: a random 32-byte value which the user should save +- `identity_path_elements`: the values along the Merkle path to the + user's identity commitment +- `identity_path_index[n_levels]`: the direction (left/right) per tree level + corresponding to the Merkle path to the user's identity commitment + +**Public inputs:** + +- `root`: The Merkle root of the identity tree + +**Procedure:** + +The circuit hashes the public key, identity nullifier, and identity trapdoor to +generate an **identity commitment**. It then verifies the Merkle proof against +the Merkle root and the identity commitment. + +### That the signal was only broadcasted once + +**Private inputs:** + +- `identity_nullifier`: as above +- `identity_path_index`: as above + +**Public inputs:** + +- `external_nullifier`: the 29-byte external nullifier - see above +- `nullifiers_hash`: the hash of the identity nullifier, external nullifier, + and Merkle path index (`identity_path_index`) + +**Procedure:** + +The circuit hashes the given identity nullifier, external nullifier, and Merkle +path index, and checks that it matches the given nullifiers hash. Additionally, +the smart contract ensures that it has not previously seen this nullifiers +hash. This way, double-signalling is impossible. + +### That the signal was truly broadcasted by the user who generated the proof + +**Private inputs:** + +- `identity_pk`: as above +- `auth_sig_r`: the `r` value of the signature of the signal +- `auth_sig_s`: the `s` value of the signature of the signal + +**Public inputs:** + +- `signal_hash`: the hash of the signal +- `external_nullifier`: the 29-byte external nullifier - see above + +**Procedure:** + +The circuit hashes the signal hash and the external nullifier, and verifies +this output against the given public key and signature. This ensures the +authenticity of the signal and prevents front-running attacks. + +## Cryptographic primitives + +Semaphore uses MiMC for the Merkle tree, Pedersen commmitments for the identity +commitments, Blake2 for the nullifiers hash, and EdDSA for the signature. + +MiMC is a relatively new hash function. We use the recommended MiMC +construction from [Albrecht et al](https://eprint.iacr.org/2016/492.pdf), and +there is a prize to break MiMC at [http://mimchash.org](http://mimchash.org) +which has not been claimed yet. + +We have also implemented a version of Semaphore which uses the Poseidon hash +function for the Merkle tree and EdDSA signature verification. This may have +better security than MiMC, allows identity insertions to save about 20% gas, +and roughly halves the proving time. Note, however, that the Poseidon-related +circuits and EVM bytecode generator have not been audited, so use it with +caution. To use it, checkout the `feat/poseidon` branch of this repository. diff --git a/apps/docs/versioned_docs/version-V1/libsemaphore.md b/apps/docs/versioned_docs/version-V1/libsemaphore.md new file mode 100644 index 00000000..959ad2b4 --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/libsemaphore.md @@ -0,0 +1,245 @@ +--- +sidebar_position: 6 +--- + +# libsemaphore + +[`libsemaphore`](https://www.npmjs.com/package/libsemaphore) is a helper +library for Semaphore written in Typescript. Any dApp written in Javascript or +Typescript should use it as it provides useful abstractions over common tasks +and objects, such as identities and proof generation. + +Note that only v1.0.14 and above works with the Semaphore code in this +repository. v0.0.x is compatible with the pre-audited Semaphore code. + +## Available types, interfaces, and functions + +### Types + +**`SnarkBigInt`** + +A big integer type compatible with the `snarkjs` library. Note that it is not +advisable to mix variables of this type with `bigNumber`s or `BigInt`s. +Encapsulates `snarkjs.bigInt`. + +**`EddsaPrivateKey`** + +An [EdDSA](https://tools.ietf.org/html/rfc8032) private key which should be 32 +bytes long. Encapsulates a [`Buffer`](https://nodejs.org/api/buffer.html). + +**`EddsaPublicKey`** + +An EdDSA public key. Encapsulates an array of `SnarkBigInt`s. + +**`SnarkProvingKey`** + +A proving key, which when used with a secret _witness_, generates a zk-SNARK +proof about said witness. Encapsulates a `Buffer`. + +**`SnarkVerifyingKey`** + +A verifying key which when used with public inputs to a zk-SNARK and a +`SnarkProof`, can prove the proof's validity. Encapsulates a `Buffer`. + +**`SnarkWitness`** + +The secret inputs to a zk-SNARK. Encapsulates an array of `SnarkBigInt`s. + +**`SnarkPublicSignals`** + +The public inputs to a zk-SNARK. Encapsulates an array of `SnarkBigInt`s. + +### Interfaces + +**`EddsaKeyPair`** + +Encapsulates an `EddsaPublicKey` and an `EddsaPrivateKey`. + +```ts +interface EddsaKeyPair { + pubKey: EddsaPublicKey + privKey: EddsaPrivateKey +} +``` + +**`Identity`** + +Encapsulates all information required to generate an identity commitment, and +is crucial to creating `SnarkProof`s to broadcast signals. + +```ts +interface Identity { + keypair: EddsaKeyPair + identityNullifier: SnarkBigInt + identityTrapdoor: SnarkBigInt +} +``` + +**`SnarkProof`** + +Note that `broadcastSignal()` accepts a `uint256[8]` array for its `_proof` +parameter. See `genBroadcastSignalParams()`. + +```ts +interface SnarkProof { + pi_a: SnarkBigInt[] + pi_b: SnarkBigInt[][] + pi_c: SnarkBigInt[] +} +``` + +### Functions + +**`genPubKey(privKey: EddsaPrivateKey): EddsaPublicKey`** + +Generates a public EdDSA key from a supplied private key. To generate a private +key, use `crypto.randomBytes(32)` where `crypto` is the built-in Node or +browser module. + +**`genIdentity(): Identity`** + +This is a convenience function to generate a fresh and random `Identity`. That +is, the 32-byte private key for the `EddsaKeyPair` is randomly generated, as +are the distinct 31-byte identity nullifier and the 31-byte identity trapdoor +values. + +**`serialiseIdentity(identity: Identity): string`** + +Converts an `Identity` into a JSON string which looks like this: + +```text +["e82cc2b8654705e427df423c6300307a873a2e637028fab3163cf95b18bb172e","a02e517dfb3a4184adaa951d02bfe0fe092d1ee34438721d798db75b8db083","15c6540bf7bddb0616984fccda7e954a0fb5ea4679ac686509dc4bd7ba9c3b"] +``` + +You can also spell this function as `serializeIdentity`. + +To convert this string back into an `Identity`, use `unSerialiseIdentity()`. + +**`unSerialiseIdentity(string: serialisedId): Identity`** + +Converts the `string` output of `serialiseIdentity()` to an `Identity`. + +You can also spell this function as `unSerializeIdentity`. + +**`genIdentityCommitment(identity: Identity): SnarkBigInt`** + +Generates an identity commitment, which is the hash of the public key, the +identity nullifier, and the identity trapdoor. + +**`async genProof(witness: SnarkWitness, provingKey: SnarkProvingKey): SnarkProof`** + +Generates a `SnarkProof`, which can be sent to the Semaphore contract's +`broadcastSignal()` function. It can also be verified off-chain using +`verifyProof()` below. + +**`genPublicSignals(witness: SnarkWitness, circuit: SnarkCircuit): SnarkPublicSignals`** + +Extracts the public signals to be supplied to the contract or `verifyProof()`. + +**`verifyProof(verifyingKey: SnarkVerifyingKey, proof: SnarkProof, publicSignals: SnarkPublicSignals): boolean`** + +Returns `true` if the given `proof` is valid, given the correct verifying key +and public signals. + +Returns `false` otherwise. + +**`signMsg(privKey: EddsaPrivateKey, msg: SnarkBigInt): EdDSAMiMcSpongeSignature)`** + +Encapsualtes `circomlib.eddsa.signMiMCSponge` to sign a message `msg` using private key `privKey`. + +**`verifySignature(msg: SnarkBigInt, signature: EdDSAMiMcSpongeSignature, pubKey: EddsaPublicKey)`: boolean** + +Returns `true` if the cryptographic `signature` of the signed `msg` is from the +private key associated with `pubKey`. + +Returns `false` otherwise. + +**`setupTree(levels: number, prefix: string): MerkleTree`** + +Returns a Merkle tree created using +[`semaphore-merkle-tree`](https://www.npmjs.com/package/semaphore-merkle-tree) +with the same number of levels which the Semaphore zk-SNARK circuit expects. +This tree is also configured to use `MimcSpongeHasher`, which is also what the +circuit expects. + +`levels` sets the number of levels of the tree. A tree with 20 levels, for +instance, supports up to 1048576 deposits. + +**`genCircuit(circuitDefinition: any)`** + +Returns a `new snarkjs.Circuit(circuitDefinition)`. The `circuitDefinition` +object should be the `JSON.parse`d result of the `circom` command which +converts a `.circom` file to a `.json` file. + +**`async genWitness(...)`** + +This function has the following signature: + +```ts +const genWitness = async ( + signal: string, + circuit: SnarkCircuit, + identity: Identity, + idCommitments: SnarkBigInt[] | BigInt[] | ethers.utils.BigNumber[], + treeDepth: number, + externalNullifier: SnarkBigInt, +) +``` + +- `signal` is the string you wish to broadcast. +- `circuit` is the output of `genCircuit()`. +- `identity` is the `Identity` whose identity commitment you want to prove is + in the set of registered identities. +- `idCommitments` is an array of registered identity commmitments; i.e. the + leaves of the tree. +- `treeDepth` is the number of levels which the Merkle tree used has +- `externalNullifier` is the current external nullifier + +It returns an object as such: + +- `witness`: The witness to pass to `genProof()`. +- `signal`: The computed signal for Semaphore. This is the hash of the + recipient's address, relayer's address, and fee. +- `signalHash`: The hash of the computed signal. +- `msg`: The hash of the external nullifier and the signal hash +- `signature`: The signature on the above msg. +- `tree`: The Merkle tree object after it has been updated with the identity commitment +- `identityPath`: The Merkle path to the identity commmitment +- `identityPathIndex`: The leaf index of the identity commitment +- `identityPathElements`: The elements along the above Merkle path + +Only `witness` is essential to generate the proof; the other data is only +useful for debugging and additional off-chain checks, such as verifying the +signature and the Merkle tree root. + +**`formatForVerifierContract = (proof: SnarkProof, publicSignals: SnarkPublicSignals`** + +Converts the data in `proof` and `publicSignals` to strings and rearranges +elements of `proof.pi_b` so that `snarkjs`'s `verifier.sol` will accept it. +To be specific, it returns an object as such: + +```ts +{ + a: [ proof.pi_a[0].toString(), proof.pi_a[1].toString() ], + b: [ + [ proof.pi_b[0][1].toString(), proof.pi_b[0][0].toString() ], + [ proof.pi_b[1][1].toString(), proof.pi_b[1][0].toString() ], + ], + c: [ proof.pi_c[0].toString(), proof.pi_c[1].toString() ], + input: publicSignals.map((x) => x.toString()), +} +``` + +**`stringifyBigInts = (obj: any) => object`** + +Encapsulates `snarkjs.stringifyBigInts()`. Makes it easy to convert `SnarkProof`s to JSON. + +**`unstringifyBigInts = (obj: any) => object`** + +Encapsulates `snarkjs.unstringifyBigInts()`. Makes it easy to convert JSON to `SnarkProof`s. + +**`genExternalNullifier = (plaintext: string) => string`** + +Each external nullifier must be at most 29 bytes large. This function +keccak-256-hashes a given `plaintext`, takes the last 29 bytes, and pads it +(from the start) with 0s, and returns the resulting hex string. diff --git a/apps/docs/versioned_docs/version-V1/quickstart.md b/apps/docs/versioned_docs/version-V1/quickstart.md new file mode 100644 index 00000000..0a10bf7e --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/quickstart.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 3 +--- + +# Quick start + +Semaphore has been tested with Node 11.14.0. It will run with Node 12 LTE but +we highly recommend using Node 11.14.0 if you wish to develop on its source +code, as one of its dependencies, `script`, cannot compile when if you use Node 12. + +Use [`nvm`](https://github.com/nvm-sh/nvm) to manage your Node version. + +Clone this repository, install dependencies, and build the source code: + +```bash +git clone git@github.com:kobigurk/semaphore.git && \ +cd semaphore && \ +npm i && \ +npm run bootstrap && \ +npm run build +``` + +**Note**: we use `lerna` to manage the `circuits`, `config`, and `contracts` +subpackages. Do not run `npm install` within any of these directories. Instead, +just run `npm run bootstrap` in the main directory. + +Next, either download the compiled zk-SNARK circuit, proving key, and +verification key (note that these keys are for testing purposes, and not for +production, as there is no certainty that the toxic waste was securely +discarded). + +To download the circuit, proving key, and verification key, run: + +```bash +# Start from the base directory + +./circuits/scripts/download_snarks.sh +``` + +To generate the above files locally instead, run: + +```bash +# Start from the base directory + +./circuits/scripts/build_snarks.sh +``` + +This process should take about 45 minutes. + +Build the Solidity contracts (you need `solc` v 0.5.12 installed in your +`$PATH`): + +```bash +# Start from the base directory + +cd contracts && \ +npm run compileSol +``` + +Run tests while still in the `contracts/` directory: + +```bash +# The first command tests the Merkle tree contract and the second +# tests the Semaphore contract + +npm run test-semaphore && \ +npm run test-mt +``` diff --git a/apps/docs/versioned_docs/version-V1/trustedsetup.md b/apps/docs/versioned_docs/version-V1/trustedsetup.md new file mode 100644 index 00000000..a25473ef --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/trustedsetup.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 7 +--- + +# Multi-party trusted setup + +The Semaphore authors will use the [Perpetual Powers of +Tau](https://github.com/weijiekoh/perpetualpowersoftau/) ceremony and a random +beacon as phase 1 of the trusted setup. + +More details about phase 2 will be released soon. diff --git a/apps/docs/versioned_docs/version-V1/usage.md b/apps/docs/versioned_docs/version-V1/usage.md new file mode 100644 index 00000000..d0f62b22 --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/usage.md @@ -0,0 +1,144 @@ +--- +sidebar_position: 4 +--- + +# Usage + +The Semaphore contract forms a base layer for other contracts to create +applications that rely on anonymous signaling. + +First, you should ensure that the proving key, verification key, and circuit +file, which are static, be easily available to your users. These may be hosted +in a CDN or bundled with your application code. + +The Semaphore team has not performed a trusted setup yet, so trustworthy +versions of these files are not available yet. + +Untrusted versions of these files, however, may be obtained via the +`circuits/scripts/download_snarks.sh` script. + +Next, to have full flexibility over Semaphore's mechanisms, write a Client +contract and set the owner of the Semaphore contract as the address of the +Client contract. You may also write a Client contract which deploys a Semaphore +contract in its constructor, or on the fly. + +With the Client contract as the owner of the Semaphore contract, the Client +contract may call owner-only Semaphore functions such as +`addExternalNullifier()`. + +## Add, deactivate, or reactivate external nullifiiers + +These functions add, deactivate, and reactivate an external nullifier respectively. +As each identity can only signal once to an external nullifier, and as a signal +can only be successfully broadcasted to an active external nullifier, these +functions enable use cases where it is necessary to have multiple external +nullifiers or to activate and/or deactivate them. + +Refer to the [high-level explanation of +Semaphore](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) +for more details. + +## Set broadcast permissioning + +Note that `Semaphore.broadcastSignal()` is permissioned by default, so if you +wish for anyone to be able to broadcast a signal, the owner of the Semaphore +contract (either a Client contract or externally owned account) must first +invoke `setPermissioning(false)`. + +See [SemaphoreClient.sol](https://github.com/appliedzkp/semaphore/blob/master/contracts/sol/SemaphoreClient.sol) for an example. + +## Insert identities + +To generate an identity commitment, use the `libsemaphore` functions +`genIdentity()` and `genIdentityCommitment()` Typescript (or Javascript) +functions: + +```ts +const identity: Identity = genIdentity() +const identityCommitment = genIdentityCommitment(identity) +``` + +Be sure to store `identity` somewhere safe. The `serialiseIdentity()` function +can help with this: + +`const serialisedId: string = serialiseIdentity(identity: Identity)` + +It converts an `Identity` into a JSON string which looks like this: + +```text +["e82cc2b8654705e427df423c6300307a873a2e637028fab3163cf95b18bb172e","a02e517dfb3a4184adaa951d02bfe0fe092d1ee34438721d798db75b8db083","15c6540bf7bddb0616984fccda7e954a0fb5ea4679ac686509dc4bd7ba9c3b"] +``` + +To convert this string back into an `Identity`, use `unSerialiseIdentity()`. + +`const id: Identity = unSerialiseIdentity(serialisedId)` + +## Broadcast signals + +First obtain the leaves of the identity tree (in sequence, up to the user's +identity commitment, or more). + +```ts +const leaves = +``` + +Next, load the circuit from disk (or from a remote source): + +```ts +const circuitPath = path.join(__dirname, "/path/to/circuit.json") +const cirDef = JSON.parse(fs.readFileSync(circuitPath).toString()) +const circuit = genCircuit(cirDef) +``` + +Next, use `libsemaphore`'s `genWitness()` helper function as such: + +``` +const result = await genWitness( + signal, + circuit, + identity, + leaves, + num_levels, + external_nullifier, +) +``` + +- `signal`: a string which is the signal to broadcast. +- `circuit`: the output of `genCircuit()` (see above). +- `identity`: the user's identity as an `Identity` object. +- `leaves` the list of leaves in the tree (see above). +- `num_levels`: the depth of the Merkle tree. +- `external_nullifier`: the external nullifier at which to broadcast. + +Load the proving key from disk (or from a remote source): + +```ts +const provingKeyPath = path.join(__dirname, "/path/to/proving_key.bin") +const provingKey: SnarkProvingKey = fs.readFileSync(provingKeyPath) +``` + +Generate the proof (this takes about 30-45 seconds on a modern laptop): + +```ts +const proof = await genProof(result.witness, provingKey) +``` + +Generate the `broadcastSignal()` parameters: + +```ts +const publicSignals = genPublicSignals(result.witness, circuit) +const params = genBroadcastSignalParams(result, proof, publicSignals) +``` + +Finally, invoke `broadcastSignal()` with the parameters: + +```ts +const tx = await semaphoreClientContract.broadcastSignal( + ethers.utils.toUtf8Bytes(signal), + params.proof, + params.root, + params.nullifiersHash, + external_nullifier, + { gasLimit: 500000 } +) +``` diff --git a/apps/docs/versioned_docs/version-V1/what-is-semaphore.md b/apps/docs/versioned_docs/version-V1/what-is-semaphore.md new file mode 100644 index 00000000..40fa61b5 --- /dev/null +++ b/apps/docs/versioned_docs/version-V1/what-is-semaphore.md @@ -0,0 +1,105 @@ +--- +id: introduction +title: What Is Semaphore? +sidebar_position: 1 +--- + +## Overview + +[Semaphore](https://github.com/appliedzkp/semaphore) is a zero-knowledge gadget +which allows Ethereum users to prove their membership of a set which they had +previously joined without revealing their original identity. At the same time, +it allows users to signal their endorsement of an arbitrary string. It is +designed to be a simple and generic privacy layer for Ethereum dApps. Use cases +include private voting, whistleblowing, mixers, and anonymous authentication. +Finally, it provides a simple built-in mechanism to prevent double-signalling +or double-spending. + +This gadget comprises of smart contracts and +[zero-knowledge](https://z.cash/technology/zksnarks/) components which work in +tandem. The Semaphore smart contract handles state, permissions, and proof +verification on-chain. The zero-knowledge components work off-chain to allow +the user to generate proofs, which allow the smart contract to update its state +if these proofs are valid. + +For a formal description of Semaphore and its underlying cryptographic +mechanisms, also see this document +[here](https://github.com/appliedzkp/semaphore/tree/master/spec). + +Semaphore is designed for smart contract and dApp developers, not end users. +Developers should abstract its features away in order to provide user-friendly +privacy. + +Try a simple demo [here](https://weijiekoh.github.io/semaphore-ui/) or read a +high-level description of Semaphore +[here](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b). + +## Basic features + +In sum, Semaphore provides the ability to: + +1. Register an identity in a smart contract, and then: + +2. Broadcast a signal: + + - Anonymously prove that their identity is in the set of registered + identities, and at the same time: + + - Publicly store an arbitrary string in the contract, if and only if that + string is unique to the user and the contract’s current external + nullifier, which is a unique value akin to a topic. This means that + double-signalling the same message under the same external nullifier is + not possible. + +### External nullifiers + +Think of an external nullifier as a voting booth where each user may only cast +one vote. If they try to cast a second vote a the same booth, that vote is +invalid. + +An external nullifier is any 29-byte value. Semaphore always starts with one +external nullifier, which is set upon contract deployment. The owner of the +Semaphore contract may add more external nullifiers, deactivate, or reactivate +existing ones. + +The first time a particular user broadcasts a signal to an active external +nullifier `n`, and if the user's proof of membership of the set of registered +users is valid, the transaction will succeed. The second time she does so to +the same `n`, however, her transaction will fail. + +Additionally, all signals broadcast transactions to a deactivated external +nullifier will fail. + +Each client application must use the above features of Semaphore in a unique +way to achieve its privacy goals. A mixer, for instance, would use one external +nullifier as such: + +| Signal | External nullifier | +| ----------------------------------------------------------------------------- | ---------------------------- | +| The hash of the recipient's address, relayer's address, and the relayer's fee | The mixer contract's address | + +This allows anonymous withdrawals of funds (via a transaction relayer, who is +rewarded with a fee), and prevents double-spending as there is only one +external nullifier. + +An anonymous voting app would be configured differently: + +| Signal | External nullifier | +| ----------------------------------- | ------------------------ | +| The hash of the respondent's answer | The hash of the question | + +This allows any user to vote with an arbitary response (e.g. yes, no, or maybe) +to any question. The user, however, can only vote once per question. + +## About the code + +This repository contains the code for Semaphore's contracts written in +Soliidty, and zk-SNARK circuits written in +[circom](https://github.com/iden3/circom). It also contains Typescript code to +execute tests. + +The code has been audited by ABDK Consulting. Their suggested security and +efficiency fixes have been applied. + +A multi-party computation to produce the zk-SNARK proving and verification keys +for Semaphore will begin in the near future. diff --git a/apps/docs/versioned_docs/version-V2/credits.md b/apps/docs/versioned_docs/version-V2/credits.md new file mode 100644 index 00000000..44c69697 --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/credits.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 9 +--- + +# Credits + +Semaphore V2 is the work of several people, for a complete list of contributors you can visit our [Github pages](https://github.com/semaphore-protocol/semaphore/graphs/contributors). + +- [Barry WhiteHat](https://github.com/barryWhiteHat) +- [Kobi Gurkan](https://github.com/kobigurk) +- [Koh Wei Jie](https://github.com/weijiekoh) +- [Andrija Novakovic](https://github.com/akinovak) +- [Cedoor](https://github.com/cedoor) diff --git a/apps/docs/versioned_docs/version-V2/deployed-contracts.md b/apps/docs/versioned_docs/version-V2/deployed-contracts.md new file mode 100644 index 00000000..628c82dc --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/deployed-contracts.md @@ -0,0 +1,35 @@ +--- +sidebar_position: 5 +--- + +# Deployed contracts + +## Verifiers + +| Contract | Goerli | Arbitrum One | +| -------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| Verifier16.sol | [0xA525...6629](https://goerli.etherscan.io/address/0xA5253ba39381Aa99c4C2C5A4D5C2deC036d06629) | [0x6143...1609](https://arbiscan.io/address/0x6143ECd9Fd1A00EDe1046d456f8aab53a7D71609) | +| Verifier17.sol | [0xe041...01Ab](https://goerli.etherscan.io/address/0xe0418A5f8fBF051D6cbc41Ff29855Dd2a02201Ab) | [0xAc12...Fb02](https://arbiscan.io/address/0xAc12fFFE354D6446eb50dd33E683B78FED73Fb02) | +| Verifier18.sol | [0x7CdB...6797](https://goerli.etherscan.io/address/0x7CdB3336d7d7c55Bce0FB1508594C54521656797) | [0x610a...C701](https://arbiscan.io/address/0x610aeF0F2da3CD1C8bDefe4BDB434Ee146E0C701) | +| Verifier19.sol | [0xbd87...190B](https://goerli.etherscan.io/address/0xbd870921d8A5398a3314C950d1fc63b8C3AB190B) | [0x5477...FCb4](https://arbiscan.io/address/0x5477725177035bbC9d70443eb921D29749D6FCb4) | +| Verifier20.sol | [0x2a96...E099](https://goerli.etherscan.io/address/0x2a96c5696F85e3d2aa918496806B5c5a4D93E099) | [0x3fB2...3136](https://arbiscan.io/address/0x3fB2C0988a37b76e760c44e6516aF720935f3136) | +| Verifier21.sol | [0x5Ec7...67Cd](https://goerli.etherscan.io/address/0x5Ec7d851a52A2a25CEc528F42a7ACA8EcF4667Cd) | [0xDc8f...7DF8](https://arbiscan.io/address/0xDc8f6B8A42836d4566256f4c6C53131DFD127DF8) | +| Verifier22.sol | [0x919d...aA5b](https://goerli.etherscan.io/address/0x919d3d9c05FA7411e334deA5a763354fC7B6aA5b) | [0x6962...32f2](https://arbiscan.io/address/0x6962b5e706be5278eeCb01c286b50A48484632f2) | +| Verifier23.sol | [0x6391...E552](https://goerli.etherscan.io/address/0x63917b00a6dA7865bEfdd107AfC83CC2e6BDE552) | [0x41e4...dF6B](https://arbiscan.io/address/0x41e4796Bd89B4BF04013b559c93fC32E9a2BdF6B) | +| Verifier24.sol | [0xd05C...0E7D](https://goerli.etherscan.io/address/0xd05CAd7d940114c1419098EE3cEA0776ab510E7D) | [0xD528...5b60](https://arbiscan.io/address/0xD528B1D1408ab3583af4694F92b0aFEbE33d5b60) | +| Verifier25.sol | [0x6D98...5ACb](https://goerli.etherscan.io/address/0x6D9862e6140D94E932d94c8BcE74a0BDD0ea5ACb) | [0x1683...33e7](https://arbiscan.io/address/0x1683a27EF9c10c5286dB56412E1272cD0Ca733e7) | +| Verifier26.sol | [0x8c29...6c77](https://goerli.etherscan.io/address/0x8c29e0b77e32f704F03eeCE01c041192A5EB6c77) | [0x7819...4C00](https://arbiscan.io/address/0x78194bB665d1E33b97eE45B1A755c15717E94C00) | +| Verifier27.sol | [0x066c...9c4C](https://goerli.etherscan.io/address/0x066cC22f8CA2A8D90D7Ff77D8a10A27e629c9c4C) | [0x997D...6E42](https://arbiscan.io/address/0x997Dac00E6701Ef7F3518280E5a9922801126E42) | +| Verifier28.sol | [0x698F...6D15](https://goerli.etherscan.io/address/0x698F9507f504E2BD238be7da56E8D9fee60C6D15) | [0xDd3C...68c6](https://arbiscan.io/address/0xDd3C7f4cBA2467aE41c0F614A3c3E24bC80268c6) | +| Verifier29.sol | [0xbBfC...6346](https://goerli.etherscan.io/address/0xbBfC2E201C3c3c6F50063c3Edb4746c6Fcb36346) | [0xe53e...60Cd](https://arbiscan.io/address/0xe53eF12093933D5df5691EAbA3821bD1c1EB60Cd) | +| Verifier30.sol | [0x06bc...4bD1](https://goerli.etherscan.io/address/0x06bcD633988c1CE7Bd134DbE2C12119b6f3E4bD1) | [0x7FeA...340e](https://arbiscan.io/address/0x7FeA07c536ABBB0E7FB3c833376EE4EaDc21340e) | +| Verifier31.sol | [0x133b...cCFE](https://goerli.etherscan.io/address/0x133b69Ce47BF20C49368354914DF47519Ca6cCFE) | [0xe453...2178](https://arbiscan.io/address/0xe4539a592df18936202480FBe77E47DE012F2178) | +| Verifier32.sol | [0xe297...2e2D](https://goerli.etherscan.io/address/0xe2978F79cb4AF62e5C990EE5c7E12fb22ee22e2D) | [0x98c9...32F4](https://arbiscan.io/address/0x98c90845A7870e215cBd7265DDC653E6c07032F4) | + +## Semaphore + +| Contract | Goerli | Arbitrum One | +| ------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| Semaphore.sol | [0x5259...262f](https://goerli.etherscan.io/address/0x5259d32659F1806ccAfcE593ED5a89eBAb85262f) | [0x8633...A604](https://arbiscan.io/address/0x86337c87A56117f8264bbaBA70e5a522C6E8A604) | +| IncrementalBinaryTree.sol | [0x61AE...B236](https://goerli.etherscan.io/address/0x61AE89E372492e53D941DECaaC9821649fa9B236) | [0x91cD...3948](https://arbiscan.io/address/0x91cD2B8573629d00BeC72EA1188d446897BD3948) | +| PoseidonT3.sol | [0xe0A4...350F](https://goerli.etherscan.io/address/0xe0A452533853310C371b50Bd91BB9DCC8961350F) | [0xe0c8...61d0](https://arbiscan.io/address/0xe0c8d1e53D9Bfc9071F6564755FCFf6cC0dB61d0) | diff --git a/apps/docs/versioned_docs/version-V2/glossary.md b/apps/docs/versioned_docs/version-V2/glossary.md new file mode 100644 index 00000000..235fa2b0 --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/glossary.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 7 +--- + +# Glossary + +## Semaphore identity + +The identity of a user in the Semaphore protocol. +An identity contains the following three values: + +- [Identity commitment](#identity-commitment): the public value. +- Identity trapdoor and identity nullifier: secret values known only by the user. + +## Semaphore group + +A group is a binary incremental [Merkle tree](#merkle-tree) in which each leaf contains an [identity commitment](#identity-commitment) for a user. +The identity commitment proves that the user is a group member without revealing the Semaphore identity of the user. + +Semaphore uses the **Poseidon** hash function to create Merkle trees. +For more information, see the [Poseidon website](https://www.poseidon-hash.info/). + +## Identity commitment + +The public [Semaphore identity](#semaphore-identity) value used in [Semaphore groups](#semaphore-group). + +Semaphore uses the **Poseidon** hash function to create the identity commitment from the Semaphore identity secret values. +For more information, see the [Poseidon website](https://www.poseidon-hash.info/). + +## Merkle tree + +A tree in which every leaf (i.e., a node that doesn't have children) is labelled with the cryptographic hash of a data block, +and every node that isn't a leaf is labelled with the cryptographic hash of its child node labels. +In zero-knowledge protocols, Merkle trees can be used to efficiently summarize and validate large data sets. +To validate that a tree contains a specific leaf, a verifier only needs a portion of the complete data structure. + +For more information, see [Merkle tree in Wikipedia](https://en.wikipedia.org/wiki/Merkle_tree). + +## Nullifier + +A value used to prevent double entry or double signalling. + +See [Circuit nullifier hash](/docs/technical-reference/circuits/#nullifier-hash). + +## Relay + +A third-party who receives a fee for including relayed transactions in the blockchain (McMenamin, Daza, and Fitz. https://eprint.iacr.org/2022/155.pdf, p.3). +To preserve the anonymity of the user broadcasting a signal with Semaphore, an application may use a relayer to post the signal transaction to Ethereum on behalf of the user. + +Applications may provide rewards for relayers and implement front-running prevention mechanisms, such as requiring the signals to include the relayer’s address, binding the +signal to that specific address (https://semaphore.pse.dev/whitepaper-v1.pdf, p.6). + +## Trusted setup files + +The secure, verifiable parameters generated by Semaphore's trusted setup ceremony. +Semaphore uses the trusted setup files to generate and verify valid zero-knowledge proofs. +To generate or verify valid zero-knowledge proofs with Semaphore, applications must include the following Semaphore _trusted setup_ files: + +- semaphore.zkey +- semaphore.wasm +- semaphore.json + +For a complete list of ready-to-use files, see . +To learn more, see the [trusted setup ceremony](https://storage.googleapis.com/trustedsetup-a86f4.appspot.com/semaphore/semaphore_top_index.html). diff --git a/apps/docs/versioned_docs/version-V2/guides/_category_.json b/apps/docs/versioned_docs/version-V2/guides/_category_.json new file mode 100644 index 00000000..2a9d3fd8 --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/guides/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Guides", + "position": 2 +} diff --git a/apps/docs/versioned_docs/version-V2/guides/groups.md b/apps/docs/versioned_docs/version-V2/guides/groups.md new file mode 100644 index 00000000..546416ec --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/guides/groups.md @@ -0,0 +1,122 @@ +--- +sidebar_position: 2 +title: Groups +--- + +# Semaphore groups + + + +Use Semaphore in your application or smart contract to create off-chain and on-chain groups. + +A [Semaphore group](/docs/glossary/#semaphore-group) contains [identity commitments](/docs/glossary/#identity-commitment) of group members. +Example uses of groups include the following: + +- Poll question that attendees join to rate an event. +- Ballot that members join to vote on a proposal. +- Whistleblowers who are verified employees of an organization. + +A Semaphore group is an [incremental Merkle tree](/docs/glossary/#incremental-merkle-tree), and group members (i.e., [identity commitments](/docs/glossary/#identity-commitments)) are tree leaves. +Semaphore groups set the following two parameters: + +- **Tree depth**: the maximum number of members a group can contain (`max size = 2 ^ tree depth`). +- **Zero value**: the value used to calculate the zero nodes of the incremental Merkle tree. + +Learn how to work with groups. + +- [**Off-chain groups**](#off-chain-groups) +- [**On-chain groups**](#on-chain-groups) + +## Off-chain groups + +- [Create a group](#create-a-group) +- [Add members](#add-members) +- [Remove or update members](#remove-or-update-members) + +### Create a group + +Use the [`@semaphore-protocol/group`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/group) library `Group` class to create an off-chain group. + +#### Options + +- **Tree depth**: (_default `20`_) the maximum number of members a group can contain (`max size = 2 ^ tree depth`). +- **Zero value**: (_default `BigInt(0)`_) the value for a tree node that doesn't have a member assigned. + +To create a group with default _`treeDepth`_ and _`zeroValue`_, call the `Group` constructor without parameters--for example: + +```ts +import { Group } from "@semaphore-protocol/group" + +// Default parameters: treeDepth = 20, zeroValue = BigInt(0). +const group = new Group() +``` + +The following example code passes _`treeDepth`_ to create a group for `2 ^ 30 = 1073741824` members: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(30) +``` + +The following example code creates a group with a _`zeroValue`_ of `BigInt(1)`: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(20, BigInt(1)) +``` + +### Add members + +Use the `Group addMember` function to add a member (identity commitment) to a group--for example: + +```ts +group.addMember(identityCommitment) +``` + +To add a batch of members to a group, pass an array to the `Group addMembers` function--for example: + +```ts +group.addMembers([identityCommitment1, identityCommitment2]) +``` + +### Remove or update members + +To remove members from a group, pass the member index to the `Group removeMember` function--for example: + +```ts +group.removeMember(0) +``` + +To update members in a group, pass the member index and the new value to the `Group updateMember` function--for example: + +```ts +group.updateMember(0, 2) +``` + +:::caution +Removing a member from a group sets the node value to `zeroValue`. +Given that the node isn't removed, and the length of the `group.members` array doesn't change. +::: + +## On-chain groups + +The [`SemaphoreGroups`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/base/SemaphoreGroups.sol) contract uses the [`IncrementalBinaryTree`](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/incremental-merkle-tree.sol/contracts/IncrementalBinaryTree.sol) library and provides methods to create and manage groups. + +:::info +You can import `SemaphoreGroups` and other Semaphore contracts from the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) NPM module. +::: + +Alternatively, you can use an already deployed [`Semaphore`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/Semaphore.sol) contract and use its group external functions. diff --git a/apps/docs/versioned_docs/version-V2/guides/identities.md b/apps/docs/versioned_docs/version-V2/guides/identities.md new file mode 100644 index 00000000..ae3221bd --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/guides/identities.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 1 +title: Identities +--- + +# Semaphore identities + +In order to join a [Semaphore group](/docs/glossary#semaphore-group), a user must first create a [Semaphore identity](/docs/glossary#semaphore-identity). +A Semaphore identity contains two values generated with the identity: + +- Identity trapdoor +- identity nullifier + +To use and verify the identity, the identity owner (user) must know the trapdoor and nullifier values. +To prevent fraud, the owner should keep both values secret. + +## Create identities + +In your code, use the [`@semaphore-protocol/identity`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/identity) library to create a Semaphore identity _deterministically_ (from the hash of a message) or _randomly_. + +- [**Create random identities**](#create-random-identities) +- [**Create deterministic identities**](#create-deterministic-identities) + +### Create random identities + +To create a random identity, instantiate `Identity` without any parameters--for example: + +```ts +import { Identity } from "@semaphore-protocol/identity" + +const { trapdoor, nullifier, commitment } = new Identity() +``` + +The new identity contains two random secret values: `trapdoor` and `nullifier`, and one public value: `commitment`. + +The Poseidon hash of the identity nullifier and trapdoor is called the _identity secret_, +and its hash is the _identity commitment_. + +An identity commitment, similarly to Ethereum addresses, is a public value used +in Semaphore groups to represent the identity of a group member. The secret values are similar to +Ethereum private keys and are used to generate Semaphore zero-knowledge proofs and authenticate signals. + +### Create deterministic identities + +If you pass a message as a parameter, Semaphore generates `trapdoor` and `nullifier` +from the _SHA256_ hash of the message. +The message might be a password or a message that the user cryptographically signs with a private key. + +When using deterministic identities, you should always keep the message secret. +Given that the hash is deterministic, anyone with the same message can recreate the same identity. + +```ts +const identity = new Identity("secret-message") +``` + +:::tip +Building a system to save or recover secret values of Semaphore identities is nontrivial. +You may choose to delegate such functionality to existing wallets such as Metamask--for example: + +1. In Metamask, a user signs a message with the private key of their Ethereum account. +2. In your application, the user creates a deterministic identity with the signed message. +3. The user can now recreate their Semaphore identity whenever they want by signing the same message with their Ethereum account in Metamask. + +::: + +## Save your identities + +You can output an identity as a JSON string that you can save and reuse later. +The `Identity.toString()` method generates a JSON array from an identity--for example: + +```ts +console.log(identity.toString()) // View the identity trapdoor and nullifier. + +// '["8255d...", "62c41..."]' +``` + +The array contains the trapdoor and nullifier. + +To reuse the saved identity, pass the JSON to the `Identity()` constructor. + +```ts +const identity2 = new Identity(identity.toString()) +``` diff --git a/apps/docs/versioned_docs/version-V2/guides/proofs.md b/apps/docs/versioned_docs/version-V2/guides/proofs.md new file mode 100644 index 00000000..967e25ce --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/guides/proofs.md @@ -0,0 +1,110 @@ +--- +sidebar_position: 3 +title: Proofs +--- + +# Semaphore proofs + +Learn how to use Semaphore to generate and verify zero-knowledge proofs. + +Once a user joins their [Semaphore identity](/docs/glossary#semaphore-identity) to a [Semaphore group](/docs/glossary#semaphore-group), the user can signal anonymously with a zero-knowledge proof that proves the following: + +- The user is a member of the group. +- The same user created the signal and the proof. + +Developers can use Semaphore for the following: + +- [**Generate a proof off-chain**](#generate-a-proof-off-chain) +- [**Verify a proof off-chain**](#verify-a-proof-off-chain) +- [**Verify a proof on-chain**](#verify-a-proof-on-chain) + +## Generate a proof off-chain + +Use the [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/proof) library to generate an off-chain proof. +To generate a proof, pass the following properties to the `generateProof` function: + +- `identity`: The Semaphore identity of the user broadcasting the signal and generating the proof. +- `group`: The group to which the user belongs. +- `externalNullifier`: The value that prevents double-signaling. +- `signal`: The signal the user wants to send anonymously. +- `snarkArtifacts`: The `zkey` and `wasm` [trusted setup files](/docs/glossary/#trusted-setup-files). + +In the voting system use case, once all the voters have joined their [identities](/docs/guides/identities#create-an-identity) to the ballot [group](/docs/guides/groups), +a voter can generate a proof to vote for a proposal. +In the call to `generateProof`, the voting system passes the unique ballot ID (the [Merkle tree](/docs/glossary/#merkle-tree/) root of the group) as the +`externalNullifier` to prevent the voter signaling more than once for the ballot. +The following code sample shows how to use `generateProof` to generate the voting proof: + +```ts +import { generateProof } from "@semaphore-protocol/proof" + +const externalNullifier = group.root +const signal = "proposal_1" + +const fullProof = await generateProof(identity, group, externalNullifier, signal, { + zkeyFilePath: "./semaphore.zkey", + wasmFilePath: "./semaphore.wasm" +}) +``` + +## Verify a proof off-chain + +Use the [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/proof) library to verify a Semaphore proof off-chain. +To verify a proof, pass the following to the `verifyProof` function: + +- _`proof`_: the Semaphore proof. +- _`verificationKey`_: the JavaScript object in the `semaphore.json` [trusted setup file](/docs/glossary/#trusted-setup-files). + +The following code sample shows how to parse the verification key object from `semaphore.json` +and verify the previously generated proof: + +```ts +import { verifyProof } from "@semaphore-protocol/proof" + +const verificationKey = JSON.parse(fs.readFileSync("./semaphore.json", "utf-8")) + +await verifyProof(verificationKey, fullProof) // true or false. +``` + +`verifyProof` returns a Promise that resolves to `true` or `false`. + +## Verify a proof on-chain + +Use the [`SemaphoreCore`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/base/SemaphoreCore.sol) contract to verify proofs on-chain. It uses a verifier deployed to Ethereum and provides methods hash the signal and verify a proof. + +:::info +You can import `SemaphoreCore` and other Semaphore contracts from the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) NPM module. +::: + +To verify Semaphore proofs in your contract, import `SemaphoreCore` and pass the following to the `_verifyProof` internal method: + +- _`signal`_: The Semaphore signal to prove. +- _`root`_: The root of the Merkle tree. +- _`nullifierHash`_: a [nullifier hash](#retrieve-a-nullifier-hash). +- _`externalNullifier`_: The external nullifier. +- _`proof`_: A [_Solidity-compatible_ Semaphore proof](#generate-a-solidity-compatible-proof). +- _`verifier`_: The verifier address. + +Remember to save the `nullifierHash` on-chain to avoid double-signaling. + +Alternatively, you can use an already deployed [`Semaphore`](https://github.com/semaphore-protocol/semaphore/blob/v2.6.1/packages/contracts/contracts/Semaphore.sol) contract and use its `verifyProof` external function. + +### Generate a Solidity-compatible proof + +To transform a proof to be compatible with Solidity contracts, pass the proof to the `packToSolidityProof` utility function--for example: + +```ts +import { packToSolidityProof } from "@semaphore-protocol/proof" + +const solidityProof = packToSolidityProof(fullProof.proof) +``` + +Semaphore returns a new Solidity-compatible instance of the proof. + +### Retrieve a nullifier hash + +To get the Semaphore proof nullifier hash, access the proof's `publicSignals.nullifierHash` property--for example: + +```ts +const { nullifierHash } = fullProof.publicSignals +``` diff --git a/apps/docs/versioned_docs/version-V2/quick-setup.md b/apps/docs/versioned_docs/version-V2/quick-setup.md new file mode 100644 index 00000000..ac8cc2be --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/quick-setup.md @@ -0,0 +1,304 @@ +--- +sidebar_position: 2 +--- + +# Quick setup + +Set up a new Hardhat project with Semaphore. +Learn how to create and test an Ethereum smart contract that uses zero-knowledge +proofs to verify membership. + +To check out the code used in this guide, visit the +[quick-setup](https://github.com/semaphore-protocol/quick-setup) repository. + +1. [**Create a Node.js project**](#create-a-nodejs-project) +2. [**Install Hardhat**](#install-hardhat) +3. [**Install Semaphore packages**](#install-semaphore-packages) +4. [**Create the Semaphore contract**](#create-the-semaphore-contract) +5. [**Create a Hardhat task**](#create-a-hardhat-task) +6. [**Test your contracts**](#test-your-contract) +7. [**Deploy your contract**](#deploy-your-contract) + +## Create a Node.js project + +1. Follow the [Node.js _LTS version_](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) + instructions to install `node` (Hardhat may not work with Node.js _Current_). + +2. Follow the [Yarn](https://yarnpkg.com/getting-started/install) instructions + to download and install the `yarn` package manager. + +3. Create a directory for the project and change to the new directory. + + ```bash + mkdir semaphore-example + cd semaphore-example + ``` + +4. In your terminal, run `yarn init` to initialize the Node.js project. + +## Install Hardhat + +[Hardhat](https://hardhat.org/) is a development environment you can use to +compile, deploy, test, and debug Ethereum software. +Hardhat includes the Hardhat Network, a local Ethereum network for development. + +1. Use `yarn` to install [Hardhat](https://hardhat.org/getting-started/): + + ```bash + yarn add hardhat --dev + ``` + +2. Use `yarn` to run `hardhat` and create a JavaScript project: + + ```bash + yarn hardhat + # At the prompt, select "Create a JavaScript project" + # and then enter through the prompts. + ``` + +## Install Semaphore packages + +Semaphore provides contracts, JavaScript libraries and a Hardhat plugin for developers building zero-knowledge applications. + +- `@semaphore-protocol/contracts` provides contracts to manage groups and verify Semaphore proofs on-chain. +- JavaScript libraries help developers build zero-knowledge applications. +- `@semaphore-protocol/hardhat` allows developers Hardhat tasks to deploy verifiers and Semaphore contracts. + +To install these dependencies for your project, do the following: + +1. Use `yarn` to install `@semaphore-protocol/contracts`: + + ```bash + yarn add @semaphore-protocol/contracts@2.6.1 + ``` + +2. Use `yarn` to install the Semaphore JavaScript libraries and the Hardhat plugin: + + ```bash + yarn add @semaphore-protocol/identity@2.6.1 @semaphore-protocol/group@2.6.1 @semaphore-protocol/proof@2.6.1 @semaphore-protocol/hardhat@0.1.0 --dev + ``` + +For more detail about _Semaphore contracts_, see [Contracts](https://semaphore.pse.dev/docs/technical-reference/contracts). +To view the source of our packages, see the [semaphore](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1#-packages) repository. + +## Create the Semaphore contract + +Create a `Greeter` contract that uses the `Semaphore.sol` contract: + +1. Rename `Lock.sol` to `Greeter.sol` and replace the content with the following: + + ```solidity title="./contracts/Greeter.sol" + //SPDX-License-Identifier: MIT + pragma solidity ^0.8.0; + + import "@semaphore-protocol/contracts/interfaces/ISemaphore.sol"; + + /// @title Greeter contract. + /// @dev The following code is just an example to show how Semaphore can be used. + contract Greeter { + event NewGreeting(bytes32 greeting); + event NewUser(uint256 identityCommitment, bytes32 username); + + ISemaphore public semaphore; + + uint256 groupId; + mapping(uint256 => bytes32) users; + + constructor(address semaphoreAddress, uint256 _groupId) { + semaphore = ISemaphore(semaphoreAddress); + groupId = _groupId; + + semaphore.createGroup(groupId, 20, 0, address(this)); + } + + function joinGroup(uint256 identityCommitment, bytes32 username) external { + semaphore.addMember(groupId, identityCommitment); + + users[identityCommitment] = username; + + emit NewUser(identityCommitment, username); + } + + function greet( + bytes32 greeting, + uint256 merkleTreeRoot, + uint256 nullifierHash, + uint256[8] calldata proof + ) external { + semaphore.verifyProof(groupId, merkleTreeRoot, greeting, nullifierHash, groupId, proof); + + emit NewGreeting(greeting); + } + } + ``` + +## Create a Hardhat task + +Hardhat lets you write [tasks](https://hardhat.org/guides/create-task.html#creating-a-task) +that automate building and deploying smart contracts and dApps. +To create a task that deploys the `Greeter` contract, do the following: + +1. Create a `tasks` folder and add a `./tasks/deploy.js` file that contains the following: + + ```javascript title="./tasks/deploy.js" + const { task, types } = require("hardhat/config") + + task("deploy", "Deploy a Greeter contract") + .addOptionalParam("semaphore", "Semaphore contract address", undefined, types.address) + .addParam("group", "Group identifier", 42, types.int) + .addOptionalParam("logs", "Print the logs", true, types.boolean) + .setAction(async ({ logs, semaphore: semaphoreAddress, group: groupId }, { ethers, run }) => { + if (!semaphoreAddress) { + const { address: verifierAddress } = await run("deploy:verifier", { logs, merkleTreeDepth: 20 }) + + const { address } = await run("deploy:semaphore", { + logs, + verifiers: [ + { + merkleTreeDepth: 20, + contractAddress: verifierAddress + } + ] + }) + + semaphoreAddress = address + } + + const Greeter = await ethers.getContractFactory("Greeter") + + const greeter = await Greeter.deploy(semaphoreAddress, groupId) + + await greeter.deployed() + + if (logs) { + console.log(`Greeter contract has been deployed to: ${greeter.address}`) + } + + return greeter + }) + ``` + +2. In your `hardhat.config.js` file, add the following: + + ```javascript title="./hardhat.config.js" + require("@nomiclabs/hardhat-waffle") + require("@semaphore-protocol/hardhat") + require("./tasks/deploy") // Your deploy task. + + module.exports = { + solidity: "0.8.4" + } + ``` + +## Test your contract + +[`hardhat-waffle`](https://hardhat.org/plugins/nomiclabs-hardhat-waffle.html) +lets you write tests with the [Waffle](https://getwaffle.io/) test framework +and [Chai assertions](https://www.chaijs.com/). + +1. Use `yarn` to install the `hardhat-waffle` plugin and dependencies for smart + contract tests: + + ```bash + yarn add -D @nomiclabs/hardhat-waffle 'ethereum-waffle@^3.0.0' \ + @nomiclabs/hardhat-ethers 'ethers@^5.0.0' chai + ``` + +2. Download the Semaphore [zk trusted setup files](http://www.trusted-setup-pse.org/) + and copy them to the `./static` folder. + + ```bash + cd static + wget http://www.trusted-setup-pse.org/semaphore/20/semaphore.zkey + wget http://www.trusted-setup-pse.org/semaphore/20/semaphore.wasm + ``` + + Learn more about [trusted setup files](/docs/glossary/#trusted-setup-files). + +3. Rename the `Lock.js` test file to `Greeter.js` and replace the content with the following: + + ```javascript title="./test/Greeter.js" + const { Identity } = require("@semaphore-protocol/identity") + const { Group } = require("@semaphore-protocol/group") + const { generateProof, packToSolidityProof, verifyProof } = require("@semaphore-protocol/proof") + const { expect } = require("chai") + const { run, ethers } = require("hardhat") + + describe("Greeter", function () { + let greeter + + const users = [] + const groupId = 42 + const group = new Group() + + before(async () => { + greeter = await run("deploy", { logs: false, group: groupId }) + + users.push({ + identity: new Identity(), + username: ethers.utils.formatBytes32String("anon1") + }) + + users.push({ + identity: new Identity(), + username: ethers.utils.formatBytes32String("anon2") + }) + + group.addMember(users[0].identity.generateCommitment()) + group.addMember(users[1].identity.generateCommitment()) + }) + + describe("# joinGroup", () => { + it("Should allow users to join the group", async () => { + for (let i = 0; i < group.members.length; i++) { + const transaction = greeter.joinGroup(group.members[i], users[i].username) + + await expect(transaction).to.emit(greeter, "NewUser").withArgs(group.members[i], users[i].username) + } + }) + }) + + describe("# greet", () => { + const wasmFilePath = "./static/semaphore.wasm" + const zkeyFilePath = "./static/semaphore.zkey" + + it("Should allow users to greet", async () => { + const greeting = ethers.utils.formatBytes32String("Hello World") + + const fullProof = await generateProof(users[1].identity, group, groupId, greeting, { + wasmFilePath, + zkeyFilePath + }) + const solidityProof = packToSolidityProof(fullProof.proof) + + const transaction = greeter.greet( + greeting, + fullProof.publicSignals.merkleRoot, + fullProof.publicSignals.nullifierHash, + solidityProof + ) + + await expect(transaction).to.emit(greeter, "NewGreeting").withArgs(greeting) + }) + }) + }) + ``` + +4. Run the following `yarn` commands to compile and test your contract: + + ```bash + yarn hardhat compile + yarn hardhat test + ``` + +## Deploy your contract + +To deploy your contract in a local Hardhat network (and use it in your dApp), run the following `yarn` commands: + +```bash +yarn hardhat node +yarn hardhat deploy --group 42 --network localhost # In another tab. +``` + +For a more complete demo that provides a starting point for your dApp, +see [semaphore-boilerplate](https://github.com/semaphore-protocol/boilerplate/). diff --git a/apps/docs/versioned_docs/version-V2/resources.md b/apps/docs/versioned_docs/version-V2/resources.md new file mode 100644 index 00000000..4cf095b6 --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/resources.md @@ -0,0 +1,19 @@ +--- +sidebar_position: 8 +--- + +# Resources + +[Semaphore V2 is Live!](https://medium.com/privacy-scaling-explorations/semaphore-v2-is-live-f263e9372579) - Privacy and Scaling Explorations + +[To Mixers and Beyond: presenting Semaphore, a privacy gadget built on Ethereum](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) - Koh Wei Jie + +[Privacy in Ethereum](https://www.youtube.com/watch?v=maDHYyj30kg) - Barry WhiteHat at the Taipei Ethereum Meetup + +[Snarks for mixing, signaling and scaling by](https://www.youtube.com/watch?v=lv6iK9qezBY) - Barry WhiteHat at Devcon 4 + +[Privacy in Ethereum](https://www.youtube.com/watch?v=zBUo7G95wYE) - Barry WhiteHat at Devcon 5 + +[A trustless Ethereum mixer using zero-knowledge signalling](https://www.youtube.com/watch?v=GzVT16lFOHU) - Koh Wei Jie and Barry WhiteHat at Devcon 5 + +[Hands-on Applications of Zero-Knowledge Signalling](https://www.youtube.com/watch?v=7wd2aAN2jXI) - Koh Wei Jie at Devcon 5 diff --git a/apps/docs/versioned_docs/version-V2/subgraph.md b/apps/docs/versioned_docs/version-V2/subgraph.md new file mode 100644 index 00000000..6805aa7e --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/subgraph.md @@ -0,0 +1,51 @@ +--- +sidebar_position: 6 +--- + +# Subgraph + +[The Graph](https://thegraph.com/) is a protocol for indexing networks like Ethereum and IPFS. +Site owners publish _subgraphs_ that expose site data for anyone to query. +Semaphore's subgraph allows you to retrieve data from the [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/Semaphore.sol) smart contract. + +:::tip +The Graph protocol uses the [GraphQL](https://graphql.org/) query lanaguage. For examples, see the [GraphQL API documentation](https://thegraph.com/docs/developer/graphql-api). Visit the [subgraph repository](https://github.com/semaphore-protocol/subgraph) to see the list of Semaphore subgraphs. +::: + +## Schema + +### MerkleTree + +- `id`: unique identifier among all MerkleTree entities, +- `depth`: Merkle tree depth, +- `root`: Merkle tree root, +- `zeroValue`: Merkle tree zero value, +- `numberOfLeaves`: total number of tree leaves, +- `group`: link to the Group entity. + +### Group + +- `id`: unique identifier among all Group entities, +- `merkleTree`: link to the MerkleTree entity, +- `timestamp`: block timestamp, +- `admin`: admin of the group, +- `members`: list of group members. +- `verifiedProofs`: list of group proofs. + +### Member + +- `id`: unique identifier among all Member entities, +- `identityCommitment`: Semaphore identity commitment, +- `timestamp`: block timestamp, +- `index`: index of the tree leaf, +- `group`: link to the Group entity. + +### VerifiedProof + +- `id`: unique identifier among all VerifiedProof entities, +- `signal`: user's signal, +- `merkleTreeRoot`: Merkle tree root, +- `nullifierHash`: nullifier hash, +- `externalNullifier`: external nullifier, +- `timestamp`: block timestamp, +- `group`: link to the Group entity. diff --git a/apps/docs/versioned_docs/version-V2/technical-reference/_category_.json b/apps/docs/versioned_docs/version-V2/technical-reference/_category_.json new file mode 100644 index 00000000..2187e794 --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/technical-reference/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Technical reference", + "position": 4 +} diff --git a/apps/docs/versioned_docs/version-V2/technical-reference/circuits.md b/apps/docs/versioned_docs/version-V2/technical-reference/circuits.md new file mode 100644 index 00000000..07265883 --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/technical-reference/circuits.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 2 +--- + +# Circuits + +The [Semaphore circuit](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/circuits) is the heart of the protocol and consists of three parts: + +- [**Proof of membership**](/docs/technical-reference/circuits#proof-of-membership) +- [**Nullifier hash**](/docs/technical-reference/circuits#nullifier-hash) +- [**Signal**](/docs/technical-reference/circuits#signal) + +![Semaphore circuit](https://github.com/semaphore-protocol/semaphore/raw/v2.6.1/packages/circuits/scheme.png) + +The diagram above shows how the input signals are used in the Semaphore circuit and how the outputs are calculated. + +## Proof of membership + +The circuit hashes the hash of the identity nullifier with the identity trapdoor to generate an identity commitment. Then, it verifies the proof of membership against the Merkle root and the identity commitment. + +**Private inputs:** + +- `treeSiblings[nLevels]`: the values along the Merkle path to the user's identity commitment, +- `treePathIndices[nLevels]`: the direction (0/1) per tree level corresponding to the Merkle path to the user's identity commitment, +- `identityNullifier`: the 32-byte identity secret used as nullifier, +- `identityTrapdoor`: the 32-byte identity secret used as trapdoor. + +**Public outputs:** + +- `root`: The Merkle root of the tree. + +## Nullifier hash + +The circuit hashes the identity nullifier with the external nullifier and then checks that the result matches the provided nullifier hash. +Nullifier hashes saved in a Semaphore smart contract allow the contract to reject a proof that contains a used nullifier hash. + +**Private inputs:** + +- `identityNullifier`: the 32-byte identity secret used as a nullifier. + +**Public inputs:** + +- `externalNullifier`: the 32-byte external nullifier. + +**Public outputs:** + +- `nullifierHash`: the hash of the identity nullifier and the external nullifier; used to prevent double-signaling. + +## Signal + +The circuit calculates a dummy square of the signal hash to prevent any tampering with the proof. + +**Public inputs:** + +- `signalHash`: the hash of the user's signal. diff --git a/apps/docs/versioned_docs/version-V2/technical-reference/contracts.md b/apps/docs/versioned_docs/version-V2/technical-reference/contracts.md new file mode 100644 index 00000000..d3caa5de --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/technical-reference/contracts.md @@ -0,0 +1,50 @@ +--- +sidebar_position: 3 +--- + +# Contracts + +Semaphore includes three types of contracts: + +- [**Base contracts**](/docs/technical-reference/contracts#base-contracts) +- [**Extension contracts**](/docs/technical-reference/contracts#extension-contracts) +- [**Verifiers**](/docs/technical-reference/contracts#verifiers) + +:::info +To use Semaphore contracts and interfaces in your project, +install the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) NPM package. +::: + +## Base contracts + +Semaphore provides the following base contracts: + +- [`SemaphoreCore.sol`](https://github.com/semaphore-protocol/semaphore/blob/v2.6.1/packages/contracts/contracts/base/SemaphoreCore.sol): contains the functions to verify Semaphore proofs; +- [`SemaphoreGroups.sol`](https://github.com/semaphore-protocol/semaphore/blob/v2.6.1/packages/contracts/contracts/base/SemaphoreGroups.sol): contains the functions to create groups and add/remove members. + +These contracts are closely related to the protocol. +You can inherit them in your contract or you can use [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/Semaphore.sol), which inherits them for you. +See our [deployed contracts](/docs/deployed-contracts#semaphore) to find the addresses for your network. + +:::info +While some dApps may use on-chain groups, others may prefer to use off-chain groups, saving only their tree roots in the contract. +::: + +## Extension contracts + +- [`SemaphoreVoting.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/extensions/SemaphoreVoting.sol): voting contract that contains the essential functions to create polls, add voters, and anonymously cast votes. +- [`SemaphoreWhistleblowing.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/extensions/SemaphoreWhistleblowing.sol): whistleblowing contract that contains the essential functions to create entities (for example: non-profit organizations), add whistleblowers, and anonymously publish leaks. + +These contracts extend the protocol to provide application logic for specific use-cases. +More extensions will be added in the future. + +## Verifiers + +To verify Semaphore proofs, the [`SemaphoreCore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/base/SemaphoreCore.sol) contract requires the address of a deployed verifier contract. +You can choose to manually deploy the [verifier](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/contracts/verifiers) you prefer or you can use one of our [deployed verifiers](/docs/deployed-contracts#verifiers). + +Each verifier name indicates the tree depth that it can verify. +For example, given a Semaphore proof generated with a tree depth `20`: + +- The `Verifier20.sol` contract can verify the proof. +- The [group](/docs/guides/groups) used for the proof can have a maximum `2^20=1048576` members. diff --git a/apps/docs/versioned_docs/version-V2/use-cases/_category_.json b/apps/docs/versioned_docs/version-V2/use-cases/_category_.json new file mode 100644 index 00000000..25e2a80c --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/use-cases/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Use cases", + "position": 3 +} diff --git a/apps/docs/versioned_docs/version-V2/use-cases/private-voting.md b/apps/docs/versioned_docs/version-V2/use-cases/private-voting.md new file mode 100644 index 00000000..95909aff --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/use-cases/private-voting.md @@ -0,0 +1,137 @@ +--- +sidebar_position: 1 +--- + +# Private voting use case + +The private voting use case describes how Semaphore interacts with your users and Ethereum to allow users to cast private votes in your application. +Learn how Semaphore enables applications to do the following: + +- Register members as voters. +- Allow members to vote anonymously. +- Prove voter membership. +- Record and prove votes. +- Prevent double-voting. + +## Roles + +- **[Developer or community admin](#developer-or-community-admin)** +- **[Community member (dApp user)](#community-member)** +- **[Relay](#relay)** + +### Developer or community admin + +As a developer or community admin, you deploy the following: + +- **Smart contract on Ethereum**: implements the Semaphore **base contract** to create a poll (Semaphore **group** that members join to vote), post transactions, and verify proofs on Ethereum. +- **Decentralized application (dApp)**: your application that provides a user interface (UI) where members join a poll and vote on a proposal. + +### Community member + +Community members connect their wallets to the dApp to take the following actions: + +1. Verify ownership of the community token. +2. Generate an anonymous ID. +3. Cast a vote. + +### Relay + +To preserve anonymity and avoid disclosing the member's wallet address, the dApp may use a [relay](/docs/glossary/#relay) to broadcast the vote. +The relay calls the **contract** function that then posts the member's vote transaction to Ethereum. + +## Private voting + +Consider a scenario where your community issues a token that users can mint. +The token might be a Proof of Attendance (POAP), NFT, or social token that your users can mint to receive membership and vote in your community. + +The voting scenario has the following steps: + +1. [Create a poll](#create-a-poll): Coordinator creates a poll, or _group_, in which members can vote on a proposal. +2. [Register voters](#register-voters): Members join the poll to vote. +3. [Record votes](#record-votes): Once the poll opens, members may cast one vote, or _signal_, on the topic. + +### Create a poll + +A community coordinator or dApp administrator uses the deployed smart contract to create an on-chain (Ethereum) poll, a [Semaphore group](/docs/guides/groups/) that members can join and cast votes to. + +In the following sample code, the voting contract declares a `createPoll` function that uses the Semaphore base `_createGroup` function: + +```ts title="https://github.com/semaphore-protocol/semaphore/contracts/extensions/SemaphoreVoting.sol" + +function createPoll( + uint256 pollId, + address coordinator, + uint8 depth +) public override { + require(address(verifiers[depth]) != address(0), "SemaphoreVoting: depth value is not supported"); + + // highlight-next-line + _createGroup(pollId, depth, 0); + + Poll memory poll; + + poll.coordinator = coordinator; + + polls[pollId] = poll; + + emit PollCreated(pollId, coordinator); +} +``` + +A poll is a Semaphore [group](/docs/guides/groups/) that stores the following: + +- A topic to vote on. +- The public ID of the poll creator. +- [Semaphore IDs](/docs/guides/identities/) of members who joined the poll. + +To create the poll, the administrator calls the smart contract function--for example: + +```ts +SemaphoreVoting.createPoll(pollId, coordinator, depth) +``` + +Next, learn how to [register voters](#register-voters) for the poll. + +### Register voters + +Before a user can register to vote, the dApp needs to verify membership by checking the user's wallet for the NFT. +To grant access to the wallet, the user clicks a `Connect wallet` button in the dApp and allows the dApp to check for the NFT. +Once a member is verified, the dApp provides the following member interactions: + +1. [Generate a private identity](#generate-a-private-identity). +2. [Join a poll](#join-a-poll). + +:::info +To learn how to connect to Ethereum wallets, visit the [ethers.js Getting Started documentation](https://docs.ethers.io/v5/getting-started). +::: + +#### Generate a private identity + +To generate a private identity, the member completes a form in the dApp UI. +With the form values and the `@semaphore-protocol/identity` library, the dApp prompts the member to sign a wallet message and then generates the signed private identity. +The private identity is known only to the member and can be used in future interactions with the dApp. + +Next, learn how members [join a poll](#join-a-poll). + +#### Join a poll + +Once the member has a private identity for the dApp, the member may select a poll to vote in. +When the member selects a poll, the dApp does the following: + +1. Uses the `@semaphore-protocol/identity` library to generate an anonymous Semaphore ID, or _identity commitment_, from the private identity. +2. Calls a contract function that adds the new Semaphore ID to the on-chain poll. + +With a member registered for a poll, learn how the dApp [records votes](#record-votes). + +### Record votes + +Once members have joined a poll, the coordinator starts the poll to allow voting. +When a member votes (for example, by selecting a radio button), then the dApp takes the following actions: + +1. Uses the `@semaphore-protocol/proof` library to create a proof of the vote, the poll identifier, the Semaphore ID, and a [nullifier](/docs/glossary/#nullifier) that prevents double-voting. +2. Sends the vote proof to the [relay](#relay). + +### Related + +- To get started developing with Semaphore, see the [Quick setup](/docs/quick-setup/) guide. +- For an example app that you can use to start your own project, see [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate). diff --git a/apps/docs/versioned_docs/version-V2/what-is-semaphore.md b/apps/docs/versioned_docs/version-V2/what-is-semaphore.md new file mode 100644 index 00000000..9674090c --- /dev/null +++ b/apps/docs/versioned_docs/version-V2/what-is-semaphore.md @@ -0,0 +1,49 @@ +--- +id: introduction +title: What Is Semaphore? +sidebar_position: 1 +--- + +## Overview + +[Semaphore](https://github.com/semaphore-protocol/semaphore) is a [zero-knowledge](https://z.cash/technology/zksnarks) protocol that allows you to cast a signal (for example, a vote or endorsement) as a provable group member without revealing your identity. +Additionally, it provides a simple mechanism to prevent double-signaling. +Use cases include private voting, whistleblowing, anonymous DAOs and mixers. + +## Features + +With Semaphore, you can allow your users to do the following: + +1. [Create a Semaphore identity](/docs/guides/identities/). +2. [Add their Semaphore identity to a group (i.e. _Merkle tree_)](/docs/guides/groups/). +3. [Send a verifiable, anonymous signal (e.g a vote or endorsement)](/docs/guides/proofs/). + +When a user broadcasts a signal (for example: a vote), Semaphore zero-knowledge +proofs can ensure that the user has joined the group and hasn't already cast a signal with their nullifier. + +Semaphore uses on-chain Solidity contracts and off-chain JavaScript libraries that work in tandem. + +- Off chain, JavaScript libraries can be used to create identities, manage groups and generate proofs. +- On chain, Solidity contracts can be used to manage groups and verify proofs. + +## Developer benefits + +Semaphore is designed to be a simple and generic _privacy layer_ for decentralized applications (dApps) on Ethereum. It encourages modular application design, allowing dApp developers to choose and customize the on-chain and off-chain components they need. + +## About the code + +The core of the protocol is the [circuit logic](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/circuits/scheme.png). +In addition to circuits, +Semaphore provides [Solidity contracts](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts) +and [JavaScript libraries](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1#-packages) that allow developers to generate zero-knowledge proofs and verify them with minimal effort. + +### Audits + +| Version | Report | Scope | +| ------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------ | +| v2.0.0 | [Semaphore_2.0.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9850441/Semaphore_2.0.0_Audit.pdf) | `circuits`, `contracts` | +| v2.5.0 | [Semaphore_2.5.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9845008/Semaphore_2.5.0_Audit.pdf) | `contracts`, `libraries` | + +:::info +If you are using the previous version of Semaphore, see the [Semaphore V1](/docs/V1/introduction) documentation. +::: diff --git a/apps/docs/versioned_docs/version-V3/credits.md b/apps/docs/versioned_docs/version-V3/credits.md new file mode 100644 index 00000000..66a881d4 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/credits.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 10 +--- + +# Credits + +Semaphore is the work of several people, for a complete list of contributors you can visit our [Github pages](https://github.com/semaphore-protocol/semaphore/graphs/contributors). + +- [Barry WhiteHat](https://github.com/barryWhiteHat) +- [Kobi Gurkan](https://github.com/kobigurk) +- [Koh Wei Jie](https://github.com/weijiekoh) +- [Andrija Novakovic](https://github.com/akinovak) +- [Cedoor](https://github.com/cedoor) +- [Rachel Aux](https://github.com/rachelaux) +- [Andy Guzman](https://github.com/aguzmant103) +- [Vivian Plasencia](https://github.com/vplasencia) +- [LauNaMu](https://github.com/0xyNaMu) diff --git a/apps/docs/versioned_docs/version-V3/deployed-contracts.md b/apps/docs/versioned_docs/version-V3/deployed-contracts.md new file mode 100644 index 00000000..8205d19e --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/deployed-contracts.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 5 +--- + +# Deployed contracts + +| Contract | Goerli\* | Sepolia | Mumbai | Optimism Goerli\* | Arbitrum Goerli\* | Arbitrum One | +| ------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| Semaphore.sol | [0x3889...6131](https://goerli.etherscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://sepolia.etherscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://mumbai.polygonscan.com/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://goerli-optimism.etherscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0x3889...6131](https://goerli.arbiscan.io/address/0x3889927F0B5Eb1a02C6E2C20b39a1Bd4EAd76131) | [0xc60E...1520](https://arbiscan.io/address/0xc60E0Ee1a2770d5F619858C641f14FC4a6401520) | +| SemaphoreVerifier.sol | [0xb908...217C](https://goerli.etherscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://sepolia.etherscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://mumbai.polygonscan.com/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://goerli-optimism.etherscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xb908...217C](https://goerli.arbiscan.io/address/0xb908Bcb798e5353fB90155C692BddE3b4937217C) | [0xCAbe...4d07](https://arbiscan.io/address/0xCAbeED6cB96a287000aBd834b0B79c05e6Ea4d07) | +| Pairing.sol | [0xEe44...d7e8](https://goerli.etherscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://sepolia.etherscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://mumbai.polygonscan.com/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://goerli-optimism.etherscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xEe44...d7e8](https://goerli.arbiscan.io/address/0xEe44c1e83A768E80A3588B409f1A010f9D1dd7e8) | [0xE3a4...A74C](https://arbiscan.io/address/0xE3a4C2FE9f025405cA6F60f6E960B4558604A74C) | +| IncrementalBinaryTree.sol | [0x4621...7F49](https://goerli.etherscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://sepolia.etherscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://mumbai.polygonscan.com/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://goerli-optimism.etherscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0x4621...7F49](https://goerli.arbiscan.io/address/0x4621EE309EAc747425F0FEd51931dDC241A27F49) | [0xcDF8...fFb0](https://arbiscan.io/address/0xcDF8efE6334c68aF283C83f2F14648da51fcfFb0) | +| PoseidonT3.sol | [0xe136...2595](https://goerli.etherscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://sepolia.etherscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://mumbai.polygonscan.com/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://goerli-optimism.etherscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe136...2595](https://goerli.arbiscan.io/address/0xe136aBACf78E05988154ed85F4Ea911105302595) | [0xe0c8...61d0](https://arbiscan.io/address/0xe0c8d1e53D9Bfc9071F6564755FCFf6cC0dB61d0) | + +:::caution +The Goerli testnet is planned to be deprecated in Q4 2023. Please, check the following links for more information. + +- Goerli: https://ethereum.org/en/developers/docs/networks/#goerli +- Optimism Goerli: https://community.optimism.io/docs/useful-tools/networks/#op-goerli +- Arbitrum Goerli: https://docs.arbitrum.io/for-devs/concepts/public-chains#arbitrum-goerli + ::: diff --git a/apps/docs/versioned_docs/version-V3/faq.md b/apps/docs/versioned_docs/version-V3/faq.md new file mode 100644 index 00000000..5ef01327 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/faq.md @@ -0,0 +1,80 @@ +--- +sidebar_position: 8 +--- + +# FAQ + +## What is Semaphore? + +Semaphore is a zero-knowledge protocol that allows users to prove their membership in a group and send signals such as votes, feedback, or text messages without revealing the user’s identity. + +This means that signals have no connection to the identities. + +It also provides a simple mechanism to prevent double-signaling, which means you cannot verify the same proof twice. + +## Where can I ask questions about Semaphore? + +You can ask questions about Semaphore on [Discord](https://semaphore.pse.dev/discord) or by opening a [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions). + +## Why do identities require both the `identity trapdoor` and the `identity nullifier`? + +Having two private values provides an additional security layer. If someone breaks the nullifier hash (imagine there is some malleability that Poseidon preimage is easy to find when hashed with specific value X, which is the external nullifier chosen by devs), the attacker can find all messages the same person sent, but they cannot find which person, because there is also the trapdoor, which could be more difficult to break. + +## What is the difference between the `identity nullifier`, `external nullifier` and `nullifier hash`? + +The identity nullifier is one of the user's secret values, whearas the external nullifier can be used like a topic on which users can generate a valid proof (e.g. send anonymous votes) a limited number of times. + +Both the identity nullifier and the external nullifier are used to prevent the same proof from being verified twice, which means that if a user generates the same proof (with same identity and same external nullifier) twice, the second one will not be valid. + +Finally, the nullifier hash is just the hash of the identity nullifier and the external nullifier which is used to check if the same proof has already been generated. + +In the case of a voting application, if you have a group and you want all members of this group to vote only once, you can use the id of the group as an external nullifier. When a user votes the first time, you can save the hash of their identity nullifier and the group id (i.e. the nullifier hash) and prevent double-voting by checking if that hash already exists. + +See the [Semaphore circuits](https://semaphore.pse.dev/docs/technical-reference/circuits) for more technical information, or the [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate) for a real use-case. + +## Why should I prevent proofs from being verified twice? + +Since zero-knowledge proofs are completely anonymous, it is important to prevent those generated by eligible identities from being reused by a malicious party. + +In an anonymous voting application for example, without any checks, a valid proof could be reused to vote again. + +## Where can I find examples of applications using Semaphore? + +You can find some applications that are using Semaphore in [this blog post](https://mirror.xyz/privacy-scaling-explorations.eth/Yi4muh-vzDZmIqJIcM9Mawu2e7jw8MRnwxvhFcyfns8). + +## How can I start a project using Semaphore? + +There are three ways you can start using Semaphore in your project: using the [Semaphore CLI](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli), using the [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate) as a template or forking it, or installing the Semaphore packages manually. + +### Semaphore CLI + +To create a new project you could use `npx` or install the [Semaphore CLI](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli) globally using `npm` and then create the new project using the `semaphore create` command. See the [Quick Setup](https://semaphore.pse.dev/docs/quick-setup) for more information. + +There are three supported templates right now: `contracts-hardhat`, `monorepo-ethers` and `monorepo-subgraph`. + +- `contracts-hardhat`: It contains a basic Semaphore use case. It comes with a sample contract, a test for that contract and a sample task that deploys that contract. +- `monorepo-ethers`: It is a complete application that demonstrates a basic Semaphore use case. It comes with a sample contract, a test for that contract and a sample task that deploys that contract. It also contains a frontend to play around with the contract. This template uses [Ethers](https://github.com/ethers-io/ethers.js/) under the hood to get on-chain data. +- `monorepo-subgraph`: It is the same as the monorepo-ethers template, but uses [The Graph protocol](https://thegraph.com/) under the hood to get on-chain data. + +The Semaphore CLI can also be used to get group data from a supported network. There are commands like: `get-groups`, `get-group`, `get-members`, `get-proofs`: + +- `get-groups`: It shows the list of groups from a supported network. +- `get-group`: It shows the data of a group from a supported network. +- `get-members`: It shows the members of a group from a supported network. +- `get-proofs`: It shows the proofs of a group from a supported network. + +### Semaphore boilerplate + +To create a project, you could also use the [Semaphore boilerplate](https://github.com/semaphore-protocol/boilerplate). You could fork it or use it as a template. + +The Semaphore CLI templates and the Semaphore boilerplate contain the same code, which is a feedback application where you can create an identity, join a group, and send your feedback anonymously. They are almost the same, the only difference is that the templates use plain CSS so you can decide the CSS framework or library you want to use and the boilerplate uses [ChakraUI](https://chakra-ui.com/) by default. + +You can also try the live Semaphore boilerplate app here: https://demo.semaphore.pse.dev. + +### Manual install + +Alternatively, you can also install all packages manually using npm or yarn following the [Semaphore documentation](https://semaphore.pse.dev/docs/introduction). + +## How can I contribute to the protocol? + +There are several ways you could contribute to the protocol, you can find more information about it here: https://github.com/semaphore-protocol#ways-to-contribute. diff --git a/apps/docs/versioned_docs/version-V3/glossary.md b/apps/docs/versioned_docs/version-V3/glossary.md new file mode 100644 index 00000000..f12f6728 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/glossary.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 7 +--- + +# Glossary + +## Semaphore identity + +The identity of a user in the Semaphore protocol. +An identity contains the following three values: + +- [Identity commitment](#identity-commitment): the public value. +- Identity trapdoor and identity nullifier: secret values known only by the user. + +## Identity commitment + +The public [Semaphore identity](#semaphore-identity) value used in [Semaphore groups](#semaphore-group). + +Semaphore uses the [Poseidon](https://www.poseidon-hash.info/) hash function to create the identity commitment from the Semaphore identity secret values. + +## Semaphore group + +A group is a binary incremental [Merkle tree](#merkle-tree) in which each leaf contains an [identity commitment](#identity-commitment) for a user. +The identity commitment proves that the user is a group member without revealing the Semaphore identity of the user. + +Semaphore uses the **Poseidon** hash function to create Merkle trees. +For more information, see the [Poseidon website](https://www.poseidon-hash.info/). + +## Merkle tree + +A tree in which every leaf (i.e., a node that doesn't have children) is labelled with the cryptographic hash of a data block, +and every node that isn't a leaf is labelled with the cryptographic hash of its child node labels. +In zero-knowledge protocols, Merkle trees can be used to efficiently summarize and validate large data sets. +To validate that a tree contains a specific leaf, a verifier only needs a portion of the complete data structure. + +For more information, see [Merkle tree in Wikipedia](https://en.wikipedia.org/wiki/Merkle_tree). + +## Nullifier + +A value used to prevent double entry or double signalling. + +See [Circuit nullifier hash](/docs/technical-reference/circuits/#nullifier-hash). + +## Relay + +A third-party who receives a fee for including relayed transactions in the blockchain (McMenamin, Daza, and Fitz. https://eprint.iacr.org/2022/155.pdf, p.3). +To preserve the anonymity of the user broadcasting a signal with Semaphore, an application may use a relayer to post the signal transaction to Ethereum on behalf of the user. + +Applications may provide rewards for relayers and implement front-running prevention mechanisms, such as requiring the signals to include the relayer’s address, binding the +signal to that specific address (https://semaphore.pse.dev/whitepaper-v1.pdf, p.6). + +## Trusted setup files + +The secure, verifiable parameters generated by Semaphore's trusted setup ceremony. +Semaphore uses the trusted setup files to generate and verify valid zero-knowledge proofs. +To generate or verify valid zero-knowledge proofs with Semaphore, applications must include the following Semaphore _trusted setup_ files: + +- semaphore.zkey +- semaphore.wasm +- semaphore.json + +For a complete list of ready-to-use files, see . +To learn more, see the [trusted setup ceremony](https://storage.googleapis.com/trustedsetup-a86f4.appspot.com/semaphore/semaphore_top_index.html). + +## Signals + +The term "signals" in Semaphore refers to the values the user broadcasts when voting, confirming, sending a message and so on. On the other hand, "[signals](https://docs.circom.io/circom-language/signals/)" in Circom refers to data that contain elements within the field of Z/pZ. In Circom, "signals" can be defined as input or output, and are considered intermediate signals otherwise. diff --git a/apps/docs/versioned_docs/version-V3/guides/_category_.json b/apps/docs/versioned_docs/version-V3/guides/_category_.json new file mode 100644 index 00000000..680845a9 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/guides/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Guides", + "position": 3 +} diff --git a/apps/docs/versioned_docs/version-V3/guides/fetching-data.mdx b/apps/docs/versioned_docs/version-V3/guides/fetching-data.mdx new file mode 100644 index 00000000..def27b02 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/guides/fetching-data.mdx @@ -0,0 +1,173 @@ +--- +sidebar_position: 4 +title: Fetching data +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Semaphore data + +To fetch on-chain data from the [Semaphore.sol](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol) contract, you can use the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) library. + +There are two ways to do this, using [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) or [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts). The `SemaphoreSubgraph` class uses the [Semaphore subgraph](https://github.com/semaphore-protocol/subgraph), which uses [The Graph Protocol](https://thegraph.com/) under the hood, and the `SemaphoreEthers` class uses [Ethers](https://github.com/ethers-io/ethers.js/). + +- [**Fetch data using SemaphoreSubgraph**](#fetch-data-using-semaphoresubgraph) +- [**Fetch data using SemaphoreEthers**](#fetch-data-using-semaphoreethers) + +## Install library + + + + +```bash +npm install @semaphore-protocol/data +``` + + + + +```bash +yarn add @semaphore-protocol/data +``` + + + + +## Fetch data using SemaphoreSubgraph + +To fetch data using the Semaphore subgraph you can use the [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) class from the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) package. + +```typescript +import { SemaphoreSubgraph } from "@semaphore-protocol/data" + +const semaphoreSubgraph = new SemaphoreSubgraph() + +// or: +const semaphoreSubgraph = new SemaphoreSubgraph("arbitrum") + +// or: +const semaphoreSubgraph = new SemaphoreSubgraph( + "https://api.studio.thegraph.com/query/14377//" +) +``` + +### Get group Ids + +```typescript +const groupIds = await semaphoreSubgraph.getGroupIds() +``` + +### Get groups + +```typescript +const groups = await semaphoreSubgraph.getGroups() + +// or + +const groups = await semaphoreSubgraph.getGroups({ members: true, verifiedProofs: true }) +``` + +### Get group + +```typescript +const group = await semaphoreSubgraph.getGroup("42") + +// or + +const { members, verifiedProofs } = semaphoreSubgraph.getGroup("42", { members: true, verifiedProofs: true }) +``` + +### Check if an identity commitment is a member of a group + +```ts +await semaphoreSubgraph.isGroupMember( + "42", + "16948514235341957898454876473214737047419402240398321289450170535251226167324" +) +``` + +:::info +You can create an off-chain group using the SemaphoreSubgraph class to fetch members like so: + +```typescript +import { Group } from "@semaphore-protocol/group" +import { SemaphoreSubgraph } from "@semaphore-protocol/data" + +const groupId = "3" +const semaphoreSubgraph = new SemaphoreSubgraph("sepolia") +const { members } = await semaphoreSubgraph.getGroup(groupId, { members: true }) +const group = new Group(groupId, 20, members) +``` +::: + +## Fetch data using SemaphoreEthers + +To fetch data using Ethers you can use the [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts) class from the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) package. + +```typescript +import { SemaphoreEthers } from "@semaphore-protocol/data" + +const semaphoreEthers = new SemaphoreEthers() + +// or: +const semaphoreEthers = new SemaphoreEthers("homestead", { + address: "semaphore-address", + startBlock: 0 +}) + +// or: +const semaphoreEthers = new SemaphoreEthers("http://localhost:8545", { + address: "semaphore-address" +}) +``` + +### Get group Ids + +```typescript +const groupIds = await semaphoreEthers.getGroupIds() +``` + +### Get group + +```typescript +const group = await semaphoreEthers.getGroup("42") +``` + +### Get group admin + +```typescript +const admin = await semaphoreEthers.getGroupAdmin("42") +``` + +### Get group members + +```typescript +const members = await semaphoreEthers.getGroupMembers("42") +``` + +### Get group verified proofs + +```typescript +const verifiedProofs = await semaphoreEthers.getGroupVerifiedProofs("42") +``` + +:::info +You can create an off-chain group using the SemaphoreEthers class to fetch members like so: + +```typescript +import { Group } from "@semaphore-protocol/group" +import { SemaphoreEthers } from "@semaphore-protocol/data" + +const groupId = "3" +const semaphoreEthers = new SemaphoreEthers("sepolia") +const members = await semaphoreEthers.getGroupMembers(groupId) +const group = new Group(groupId, 20, members) +``` +::: \ No newline at end of file diff --git a/apps/docs/versioned_docs/version-V3/guides/groups.mdx b/apps/docs/versioned_docs/version-V3/guides/groups.mdx new file mode 100644 index 00000000..1db46319 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/guides/groups.mdx @@ -0,0 +1,151 @@ +--- +sidebar_position: 2 +title: Groups +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Semaphore groups + +A [Semaphore group](/docs/glossary/#semaphore-group) contains [identity commitments](/docs/glossary/#identity-commitment) of group members. +Example uses of groups include the following: + +- poll question that attendees join to rate an event, +- ballot that members join to vote on a proposal, +- whistleblowers who are verified employees of an organization. + +A Semaphore group is an [incremental Merkle tree](/docs/glossary/#incremental-merkle-tree), and group members (i.e., [identity commitments](/docs/glossary/#identity-commitments)) are tree leaves. +Semaphore groups set the following three parameters: + +- **Group id**: a unique identifier for the group; +- **Tree depth**: the maximum number of members a group can contain (`max size = 2 ^ tree depth`); +- **Members**: the list of members to initialize the group. + +Learn how to work with groups. + +- [**Off-chain groups**](#off-chain-groups) +- [**On-chain groups**](#on-chain-groups) + +## Off-chain groups + +- [Create a group](#create-a-group) +- [Add members](#add-members) +- [Remove or update members](#remove-or-update-members) + +### Create a group + +Use the [`@semaphore-protocol/group`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/group) library `Group` class to create an off-chain group with the following parameters: + +- `Group id`: a unique identifier for the group; +- `Tree depth`: (_default `20`_) the maximum number of members a group can contain (`max size = 2 ^ tree depth`). +- `Members`: (_default `[]`_) the list of members to initialize the group. + +#### Install library: + + + + +```bash +npm install @semaphore-protocol/group +``` + + + + +```bash +yarn add @semaphore-protocol/group +``` + + + + +To create a group with default _`treeDepth`_, call the `Group` constructor without the second parameter. For example: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(1) +``` + +The following example code passes _`treeDepth`_ to create a group for `2 ^ 30 = 1073741824` members: + +```ts +import { Group } from "@semaphore-protocol/group" + +const group = new Group(1, 30) +``` + +You can also initialize a group with multiple members by passing the list of identity commitments (members) as the third parameter when creating the group: + +```ts +import { Group } from "@semaphore-protocol/group" + +const members = [ + "11237622825477336339577122413451117718539783476837539122310492284566644730311", + "9332663527862709610616009715800254142772436825222910251631161087138559093425", + "13255821893820536903335282929376140649646180444238593676033702344407594536519" +] +const group = new Group(1, 20, members) +``` + +### Add members + +Use the `Group addMember` function to add a member (identity commitment) to a group. For example: + +```ts +group.addMember(identityCommitment) +``` + +To add a batch of members to a group, pass an array to the `Group addMembers` function. For example: + +```ts +group.addMembers([identityCommitment1, identityCommitment2]) +``` + +:::caution +When you use the same Semaphore identity across multiple groups, if an attacker takes control of that identity all the groups it is part of will be compromised. Consider using different identities for each group. +::: + +### Remove or update members + +To remove members from a group, pass the member index to the `Group removeMember` function. For example: + +```ts +group.removeMember(0) +``` + +To update members in a group, pass the member index and the new value to the `Group updateMember` function. For example: + +```ts +group.updateMember(0, 2) +``` + +:::caution +Removing a member from a group sets the node value to a special value (i.e. `zeroValue`). +Given that the node isn't removed, and the length of the `group.members` array doesn't change. +::: + +## On-chain groups + +The [`SemaphoreGroups`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/base/SemaphoreGroups.sol) contract uses the [`IncrementalBinaryTree`](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/incremental-merkle-tree.sol/contracts/IncrementalBinaryTree.sol) library and provides methods to create and manage groups. + +:::info +You can import `SemaphoreGroups.sol` and other Semaphore contracts from the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts) NPM module. +::: + +Alternatively, you can use an already deployed [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol) contract and use its group external functions. + +:::caution +`Semaphore.sol` does not check if a member with a specific identity commitment already exists in a group. This check must be done off-chain. +::: + +:::caution +`Semaphore.sol` includes a mechanism to verify Semaphore proofs created with old Merkle tree roots, the duration of which can be defined by the admin in the `createGroup` function. Members of a group could then continue to generate valid proofs even after being removed. For more info see the issue [#98](https://github.com/semaphore-protocol/semaphore/issues/98). +::: diff --git a/apps/docs/versioned_docs/version-V3/guides/identities.mdx b/apps/docs/versioned_docs/version-V3/guides/identities.mdx new file mode 100644 index 00000000..8d207801 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/guides/identities.mdx @@ -0,0 +1,111 @@ +--- +sidebar_position: 1 +title: Identities +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Semaphore identities + +In order to join a [Semaphore group](/docs/glossary#semaphore-group), a user must first create a [Semaphore identity](/docs/glossary#semaphore-identity). +A Semaphore identity contains two values generated with the identity: + +- Identity trapdoor +- identity nullifier + +To use and verify the identity, the identity owner (user) must know the trapdoor and nullifier values. +To prevent fraud, the owner should keep both values secret. + +## Create identities + +In your code, use the [`@semaphore-protocol/identity`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity) library to create a Semaphore identity _deterministically_ (from the hash of a message) or _randomly_. + +- [**Create random identities**](#create-random-identities) +- [**Create deterministic identities**](#create-deterministic-identities) + +### Install library: + + + + +```bash +npm install @semaphore-protocol/identity +``` + + + + +```bash +yarn add @semaphore-protocol/identity +``` + + + + +### Create random identities + +To create a random identity, instantiate `Identity` without any parameters. For example: + +```ts +import { Identity } from "@semaphore-protocol/identity" + +const { trapdoor, nullifier, commitment } = new Identity() +``` + +The new identity contains two random secret values: `trapdoor` and `nullifier`, and one public value: `commitment`. + +The Poseidon hash of the identity nullifier and trapdoor is called the _identity secret_, +and its hash is the _identity commitment_. + +An identity commitment, similarly to Ethereum addresses, is a public value used +in Semaphore groups to represent the identity of a group member. The secret values are similar to +Ethereum private keys and are used to generate Semaphore zero-knowledge proofs and authenticate signals. + +### Create deterministic identities + +If you pass a message as a parameter, Semaphore generates `trapdoor` and `nullifier` +from the _SHA256_ hash of the message. +The message might be a password or a message that the user cryptographically signs with a private key. + +When using deterministic identities, you should always keep the message secret. +Given that the hash is deterministic, anyone with the same message can recreate the same identity. + +```ts +const identity = new Identity("secret-message") +``` + +:::tip +Building a system to save or recover secret values of Semaphore identities is nontrivial. +You may choose to delegate such functionality to existing wallets such as Metamask. For example: + +1. In Metamask, a user signs a message with the private key of their Ethereum account. +2. In your application, the user creates a deterministic identity with the signed message. +3. The user can now recreate their Semaphore identity whenever they want by signing the same message with their Ethereum account in Metamask. + +::: + +## Save your identities + +You can output an identity as a JSON string that you can save and reuse later. +The `Identity.toString()` method generates a JSON array from an identity. For example: + +```ts +console.log(identity.toString()) // View the identity trapdoor and nullifier. + +// '["8255d...", "62c41..."]' +``` + +The array contains the trapdoor and nullifier. + +To reuse the saved identity, pass the JSON to the `Identity()` constructor. + +```ts +const identity2 = new Identity(identity.toString()) +``` diff --git a/apps/docs/versioned_docs/version-V3/guides/proofs.mdx b/apps/docs/versioned_docs/version-V3/guides/proofs.mdx new file mode 100644 index 00000000..db65cb0e --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/guides/proofs.mdx @@ -0,0 +1,121 @@ +--- +sidebar_position: 3 +title: Proofs +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Semaphore proofs + +Once a user joins their [Semaphore identity](/docs/glossary#semaphore-identity) to a [Semaphore group](/docs/glossary#semaphore-group), the user can signal anonymously with a zero-knowledge proof that proves the following: + +- the user is a member of the group, +- the same user created the signal and the proof. + +Developers can use Semaphore for the following: + +- [**Generate a proof off-chain**](#generate-a-proof-off-chain) +- [**Verify a proof off-chain**](#verify-a-proof-off-chain) +- [**Verify a proof on-chain**](#verify-a-proof-on-chain) + +## Generate a proof off-chain + +Use the [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof) library to generate an off-chain proof. +To generate a proof, pass the following parameters to the `generateProof` function: + +- `identity`: the Semaphore identity of the user broadcasting the signal and generating the proof; +- `group`: the group to which the user belongs; +- `externalNullifier`: the value that prevents double-signaling; +- `signal`: the signal the user wants to send anonymously; +- `snarkArtifacts`: the `zkey` and `wasm` [trusted setup files](/docs/glossary/#trusted-setup-files). + +#### Install library: + + + + +```bash +npm install @semaphore-protocol/proof +``` + + + + +```bash +yarn add @semaphore-protocol/proof +``` + + + + +In the voting system use case, once all the voters have joined their [identities](/docs/guides/identities#create-an-identity) to the ballot [group](/docs/guides/groups), +a voter can generate a proof to vote for a proposal. +In the call to `generateProof`, the voting system passes the unique ballot ID (the [Merkle tree](/docs/glossary/#merkle-tree/) root of the group) as the +`externalNullifier` to prevent the voter signaling more than once for the ballot. +The following code sample shows how to use `generateProof` to generate the voting proof: + +```ts +import { generateProof } from "@semaphore-protocol/proof" + +const externalNullifier = group.root +const signal = 1 + +const fullProof = await generateProof(identity, group, externalNullifier, signal, { + zkeyFilePath: "./semaphore.zkey", + wasmFilePath: "./semaphore.wasm" +}) +``` + +:::info +If you are generating the proof on the client side, you can avoid adding the snark artifacts because they are fetched automatically: + +```ts +const fullProof = await generateProof(identity, group, externalNullifier, signal) +``` +::: + +## Verify a proof off-chain + +Use the [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof) library to verify a Semaphore proof off-chain. +To verify a proof, pass the following to the `verifyProof` function: + +- `fullProof`: the Semaphore proof; +- `treeDepth`: the Merkle tree depth. + +The following code sample shows how to verify the previously generated proof: + +```ts +import { verifyProof } from "@semaphore-protocol/proof" + +await verifyProof(fullProof, 20) // true or false. +``` + +`verifyProof` returns a Promise that resolves to `true` or `false`. + +## Verify a proof on-chain + +Use the [`Semaphore.sol`](/docs/technical-reference/contracts#semaphoresol) contract to verify proofs on-chain. + +:::info +See our [deployed contracts](/docs/deployed-contracts) to find the addresses for your network. +:::: + +To verify Semaphore proofs in your contract, import `ISemaphore.sol`, pass it the `Semaphore.sol` address and call the `verifyProof` method with following parameters: + +- `groupId`: the identifier of the group; +- `merkleTreeRoot`: the root of the Merkle tree; +- `signal`: the signal the user wants to send anonymously; +- `nullifierHash`: a [nullifier hash](#retrieve-a-nullifier-hash); +- `externalNullifier`: the value that prevents double-signaling; +- `proof`: a [Solidity-compatible Semaphore proof](#generate-a-solidity-compatible-proof). + +:::info +You can import `ISemaphore.sol` and other Semaphore contracts from the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts) NPM module. +::: diff --git a/apps/docs/versioned_docs/version-V3/quick-setup.mdx b/apps/docs/versioned_docs/version-V3/quick-setup.mdx new file mode 100644 index 00000000..32f5672e --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/quick-setup.mdx @@ -0,0 +1,279 @@ +--- +sidebar_position: 2 +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Quick setup + +Semaphore provides an official CLI to set up your project with Hardhat. If your NPM version is 5.2 or higher you can use NPX: + +```bash +npx @semaphore-protocol/cli@latest create my-app --template monorepo-ethers +``` + +Otherwise, install `@semaphore-protocol/cli` globally and run the `create` command: + +```bash +npm i -g @semaphore-protocol/cli@latest +semaphore create my-app --template monorepo-ethers +``` + +:::info +The supported templates are: [`contracts-hardhat`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli-template-contracts-hardhat), [`monorepo-ethers`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli-template-monorepo-ethers), [`monorepo-subgraph`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli-template-monorepo-subgraph). +::: + +:::info +The [`semaphore CLI`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli) can also be used to get group data from a supported network (e.g `semaphore get-groups --network arbitrum-goerli`). +::: + +To start working on your project, install the dependencies: + + + + +```bash +cd my-app +npm i +``` + + + + +```bash +cd my-app +yarn +``` + + + + +## Output + +The `create` command will create a directory called my-app (or whatever name you choose) inside the current folder. That directory will contain the initial project structure, which includes a simple contract, a task to deploy it, some tests and a Next.js application (the web-app folder) to interact with that contract. + +``` +my-app +├── .yarn +├── apps +│   └── contracts +│ │   └── contracts +| │ │   └── Feedback.sol +│ │   └── scripts +| │ │   └── download-snark-artifacts.ts +│ │   └── tasks +| │ │   └── deploy.ts +│ │   └── test +| │ │   └── Feedback.ts +│ │   └── hardhat.config.ts +│ │   └── package.json +│ │   └── tsconfig.json +│   └── web-app +├── scripts +│   └── copy-contracts-artifacts.ts +├── .editorconfig +├── .env +├── .env.example +├── .eslintignore +├── .eslintrc.json +├── .gitignore +├── .prettierignore +├── .prettierrc.json +├── .yarnrc.yml +├── package.json +├── README.md +└── tsconfig.json +``` + +The `Feedback.sol` contract creates a Semaphore group, allows users to join that group with their Semaphore identity, and finally allows group members to send an anonymous feedback. + +## Usage + +### Compile contracts + +Go to the `contracts` folder: + +```bash +cd apps/contracts +``` + +And compile your contracts: + + + + +```bash +npm run compile +``` + + + + +```bash +yarn compile +``` + + + + +### Test contracts + +Test your contracts: + + + + +```bash +npm test +``` + + + + +```bash +yarn test +``` + + + + +Generate a test coverage report: + + + + +```bash +npm run test:coverage +``` + + + + +```bash +yarn test:coverage +``` + + + + +Or a test gas report: + + + + +```bash +npm run test:report-gas +``` + + + + +```bash +yarn test:report-gas +``` + + + + +### Deploy contracts + +Follow the instructions below to deploy your contracts: + +In the project root folder: + +1. Add your environment variables in the `.env` file. + + :::note + You should at least set a valid Infura API Key (you could use Alchemy as well) and a private key with some ethers. + ::: + +2. Go to the `apps/contracts` folder and deploy your contract. + + + + + ```bash + npm run deploy -- --semaphore --group --network arbitrum-goerli + ``` + + + + + ```bash + yarn deploy --semaphore --group --network arbitrum-goerli + ``` + + + + + :::note + Check the Semaphore contract addresses [here](/docs/deployed-contracts). + ::: + + :::caution + The group id is a number. + ::: + +### Start app + +Start the application: + + + + +```bash +npm run dev +``` + + + + +```bash +yarn dev +``` + + + diff --git a/apps/docs/versioned_docs/version-V3/resources.md b/apps/docs/versioned_docs/version-V3/resources.md new file mode 100644 index 00000000..7836d5cf --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/resources.md @@ -0,0 +1,33 @@ +--- +sidebar_position: 9 +--- + +# Resources + +## Articles + +[Community Proposal: Semaphore: Zero-Knowledge Signaling on Ethereum (Whitepaper v1)](https://semaphore.pse.dev/whitepaper-v1.pdf) - Kobi Gurkan, Koh Wei Jie and Barry WhiteHat + +[To Mixers and Beyond: presenting Semaphore, a privacy gadget built on Ethereum](https://medium.com/coinmonks/to-mixers-and-beyond-presenting-semaphore-a-privacy-gadget-built-on-ethereum-4c8b00857c9b) - Koh Wei Jie + +[Semaphore V2 is Live!](https://medium.com/privacy-scaling-explorations/semaphore-v2-is-live-f263e9372579) - Privacy and Scaling Explorations + +## Videos + +[Privacy in Ethereum](https://www.youtube.com/watch?v=maDHYyj30kg) - Barry WhiteHat at the Taipei Ethereum Meetup + +[Snarks for mixing, signaling and scaling by](https://www.youtube.com/watch?v=lv6iK9qezBY) - Barry WhiteHat at Devcon 4 + +[Privacy in Ethereum](https://www.youtube.com/watch?v=zBUo7G95wYE) - Barry WhiteHat at Devcon 5 + +[A trustless Ethereum mixer using zero-knowledge signalling](https://www.youtube.com/watch?v=GzVT16lFOHU) - Koh Wei Jie and Barry WhiteHat at Devcon 5 + +[Hands-on Applications of Zero-Knowledge Signalling](https://www.youtube.com/watch?v=7wd2aAN2jXI) - Koh Wei Jie at Devcon 5 + +[Succinct Proofs in Ethereum](https://www.youtube.com/watch?v=TtsDNneTDDY) - Barry WhiteHat during the 2nd ZKProof Workshop + +[Semaphore Roadmap for Ethereum](https://www.youtube.com/watch?v=gOub903iWFs) - Barry WhiteHat at Zcon1 + +[Proposal: Semaphore - Zero-Knowledge Signaling on Ethereum](https://www.youtube.com/watch?v=y5uV9eRb3-w) - Kobi Gurkan and Koh Wei Jie at ZKProof Home Edition + +[Anonymous Signalling on Ethereum](https://www.youtube.com/watch?v=dxAfL91Sbw4) - Cedoor at Devcon 6 Bogotá diff --git a/apps/docs/versioned_docs/version-V3/subgraph.md b/apps/docs/versioned_docs/version-V3/subgraph.md new file mode 100644 index 00000000..113f1f5e --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/subgraph.md @@ -0,0 +1,51 @@ +--- +sidebar_position: 6 +--- + +# Subgraph + +[The Graph](https://thegraph.com/) is a protocol for indexing networks like Ethereum and IPFS. +Site owners publish _subgraphs_ that expose site data for anyone to query. +Semaphore's subgraph allows you to retrieve data from the [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/Semaphore.sol) smart contract. + +:::tip +The Graph protocol uses the [GraphQL](https://graphql.org/) query language. For examples, see the [GraphQL API documentation](https://thegraph.com/docs/developer/graphql-api). Visit the [subgraph repository](https://github.com/semaphore-protocol/subgraph) to see the list of Semaphore subgraphs. +::: + +## Schema + +### MerkleTree + +- `id`: unique identifier among all MerkleTree entities, +- `depth`: Merkle tree depth, +- `root`: Merkle tree root, +- `zeroValue`: Merkle tree zero value, +- `numberOfLeaves`: total number of tree leaves, +- `group`: link to the Group entity. + +### Group + +- `id`: unique identifier among all Group entities, +- `merkleTree`: link to the MerkleTree entity, +- `timestamp`: block timestamp, +- `admin`: admin of the group, +- `members`: list of group members. +- `verifiedProofs`: list of group proofs. + +### Member + +- `id`: unique identifier among all Member entities, +- `identityCommitment`: Semaphore identity commitment, +- `timestamp`: block timestamp, +- `index`: index of the tree leaf, +- `group`: link to the Group entity. + +### VerifiedProof + +- `id`: unique identifier among all VerifiedProof entities, +- `signal`: user's signal, +- `merkleTreeRoot`: Merkle tree root, +- `nullifierHash`: nullifier hash, +- `externalNullifier`: external nullifier, +- `timestamp`: block timestamp, +- `group`: link to the Group entity. diff --git a/apps/docs/versioned_docs/version-V3/technical-reference/_category_.json b/apps/docs/versioned_docs/version-V3/technical-reference/_category_.json new file mode 100644 index 00000000..2187e794 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/technical-reference/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Technical reference", + "position": 4 +} diff --git a/apps/docs/versioned_docs/version-V3/technical-reference/circuits.md b/apps/docs/versioned_docs/version-V3/technical-reference/circuits.md new file mode 100644 index 00000000..8cc83bc0 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/technical-reference/circuits.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 2 +--- + +# Circuits + +The [Semaphore circuit](https://github.com/semaphore-protocol/semaphore/tree/main/packages/circuits) is the heart of the protocol and consists of three parts: + +- [**Proof of membership**](/docs/technical-reference/circuits#proof-of-membership) +- [**Nullifier hash**](/docs/technical-reference/circuits#nullifier-hash) +- [**Signal**](/docs/technical-reference/circuits#signal) + +![Semaphore circuit](https://github.com/semaphore-protocol/semaphore/raw/main/packages/circuits/scheme.png) + +The diagram above shows how the input signals are used in the Semaphore circuit and how the outputs are calculated. + +## Proof of membership + +The circuit hashes the hash of the identity nullifier with the identity trapdoor to generate an identity commitment. Then, it verifies the proof of membership against the Merkle root and the identity commitment. + +**Private inputs:** + +- `treeSiblings[nLevels]`: the values along the Merkle path to the user's identity commitment, +- `treePathIndices[nLevels]`: the direction (0/1) per tree level corresponding to the Merkle path to the user's identity commitment, +- `identityNullifier`: the 32-byte identity secret used as nullifier, +- `identityTrapdoor`: the 32-byte identity secret used as trapdoor. + +**Public outputs:** + +- `root`: The Merkle root of the tree. + +## Nullifier hash + +The circuit hashes the identity nullifier with the external nullifier and then checks that the result matches the provided nullifier hash. +Nullifier hashes saved in a Semaphore smart contract allow the contract to reject a proof that contains a used nullifier hash. + +**Private inputs:** + +- `identityNullifier`: the 32-byte identity secret used as a nullifier. + +**Public inputs:** + +- `externalNullifier`: the 32-byte external nullifier. + +**Public outputs:** + +- `nullifierHash`: the hash of the identity nullifier and the external nullifier; used to prevent double-signaling. + +## Signal + +The circuit calculates a dummy square of the signal hash to prevent any tampering with the proof. + +**Public inputs:** + +- `signalHash`: the hash of the user's signal. diff --git a/apps/docs/versioned_docs/version-V3/technical-reference/contracts.md b/apps/docs/versioned_docs/version-V3/technical-reference/contracts.md new file mode 100644 index 00000000..ad5c5b23 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/technical-reference/contracts.md @@ -0,0 +1,51 @@ +--- +sidebar_position: 3 +--- + +# Contracts + +Semaphore includes two types of contracts: + +- [**Base contracts**](/docs/technical-reference/contracts#base-contracts) +- [**Extension contracts**](/docs/technical-reference/contracts#extension-contracts) + +And [**Semaphore.sol**](/docs/technical-reference/contracts#semaphoresol), the main contract deployed on the networks supported by Semaphore. + +:::info +To use Semaphore contracts and interfaces in your project, +install the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts) NPM package. +::: + +## Base contracts + +Semaphore provides the following base contracts: + +- [`SemaphoreVerifier.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/base/SemaphoreVerifier.sol): contains a function to verify Semaphore proofs; +- [`SemaphoreGroups.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/base/SemaphoreGroups.sol): contains the functions to create groups and add/remove/update members. + +These contracts are closely related to the protocol. +You can use them in your contract or you can use [**Semaphore.sol**](/docs/technical-reference/contracts#semaphoresol), which integrates them for you. + +:::info +While some DApps may use on-chain groups, others may prefer to use off-chain groups, saving only their tree roots in the contract. +::: + +## Extension contracts + +- [`SemaphoreVoting.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/extensions/SemaphoreVoting.sol): voting contract that contains the essential functions to create polls, add voters, and anonymously cast votes; +- [`SemaphoreWhistleblowing.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/extensions/SemaphoreWhistleblowing.sol): whistleblowing contract that contains the essential functions to create entities (for example: non-profit organizations), add whistleblowers, and anonymously publish leaks. + +These contracts extend the protocol to provide application logic for specific use-cases. +More extensions will be added in the future. + +## Semaphore.sol + +[`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol) is based on the base contracts. It integrates them and additionally provides: + +- a system to allow only admins (i.e. Ethereum accounts or smart contracts) to manage groups; +- a mechanism to save the [nullifier hashes](/docs/technical-reference/circuits#nullifier-hash) of each group and prevent double-signaling; +- a mechanism to allow Semaphore proofs generated with old Merkle roots to be verified for a certain period of time defined by the group admin. + +:::info +See our [deployed contracts](/docs/deployed-contracts) to find the addresses for your network. +:::: diff --git a/apps/docs/versioned_docs/version-V3/troubleshooting.mdx b/apps/docs/versioned_docs/version-V3/troubleshooting.mdx new file mode 100644 index 00000000..a23427ff --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/troubleshooting.mdx @@ -0,0 +1,222 @@ +--- +sidebar_position: 11 +--- + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +# Troubleshooting + +If these suggestions do not work, feel free to ask in the [Semaphore Discussions](https://github.com/semaphore-protocol/semaphore/discussions) or in the `dev-chat` channel in the [Semaphore Discord](https://semaphore.pse.dev/discord). + +## Using Semaphore in the frontend + +Semaphore works with any JavaScript frontend framework, but the [`@semaphore-protocol/proof`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof) package is using [snarkjs](https://github.com/iden3/snarkjs), which uses Node.js modules which are not compatible with frontend frameworks and there are some changes that we need to do to make it work on the client side. + +### Semaphore with Nextjs + +You will see an error like this: + +``` +Module not found: Can't resolve 'fs' +``` + +To solve this, in your `next.config.js` file, inside the `nextConfig` object, add: + +```javascript +webpack: (config, { isServer }) => { + if (!isServer) { + config.resolve.fallback = { + fs: false + } + } + + return config + } +``` + +Your `next.config.js` file would be something like this: + +```javascript +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + webpack: (config, { isServer }) => { + if (!isServer) { + config.resolve.fallback = { + fs: false + } + } + + return config + } +} + +module.exports = nextConfig +``` + +### Semaphore with React + Vite or Vuejs + Vite + +You will see an error like this: + +```bash +readman.js:43 Uncaught ReferenceError: process is not defined + at stringToBase64 (threadman.js:43:5) + at threadman.js:50:22 +``` + +To solve that: + +1- Install `@esbuild-plugins/node-globals-polyfill` and `@esbuild-plugins/node-modules-polyfill` + + + + +```bash +npm install @esbuild-plugins/node-globals-polyfill +``` + + + + +```bash +yarn add @esbuild-plugins/node-globals-polyfill +``` + + + + + + + +```bash +npm install @esbuild-plugins/node-modules-polyfill +``` + + + + +```bash +yarn add @esbuild-plugins/node-modules-polyfill +``` + + + + +2- Modify the `vite.config.ts` to add them: + +```typescript +import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill" +import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill" +``` + +and in `defineConfig` add: + +```typescript +optimizeDeps: { + esbuildOptions: { + // Enable esbuild polyfill plugins + plugins: [ + NodeGlobalsPolyfillPlugin({ + process: true, + buffer: true + }), + NodeModulesPolyfillPlugin() + ] + } +} +``` + +Your `vite.config.ts` should be something like: + +```typescript +import { fileURLToPath, URL } from "node:url" + +import { defineConfig } from "vite" +import vue from "@vitejs/plugin-vue" + +import { NodeGlobalsPolyfillPlugin } from "@esbuild-plugins/node-globals-polyfill" +import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill" + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)) + } + }, + optimizeDeps: { + esbuildOptions: { + // Enable esbuild polyfill plugins + plugins: [ + NodeGlobalsPolyfillPlugin({ + process: true, + buffer: true + }), + NodeModulesPolyfillPlugin() + ] + } + } +}) +``` + +:::info +In case of React with Vite, if you see a red wavy underline on every Semaphore module which says `Could not find a declaration file for module ...`, change the `moduleResolution` from `bundler` to `Node` in the `tsconfig.json` file inside `compilerOptions`. + +Your `tsconfig.json` file would be something like this: + +```json +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "Node", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} +``` + +::: + +## Semaphore Groups + +### Creating a Group + +When you create a group and the transaction is reverted, make sure that the group id you are using does not exist on the network you are using. + +To check that, you can use the [Semaphore CLI](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli) with the command `get-groups` and the network you are using and then, make sure that your group id is not part of that list. You can also use the [Semaphore explorer](https://explorer.semaphore.pse.dev/). + +## Semaphore Proofs + +### Transaction reverted when using the same external nullifier + +When you generate a proof using the same external nullifier you used to verify a proof before, the transaction will be reverted because that external nullifier was already used. If you want to send and verify several proofs from the same identity, you should use a different external nullifier each time you generate a proof. diff --git a/apps/docs/versioned_docs/version-V3/what-is-semaphore.md b/apps/docs/versioned_docs/version-V3/what-is-semaphore.md new file mode 100644 index 00000000..f2284691 --- /dev/null +++ b/apps/docs/versioned_docs/version-V3/what-is-semaphore.md @@ -0,0 +1,54 @@ +--- +id: introduction +title: What Is Semaphore? +sidebar_position: 1 +--- + +## Overview + +[Semaphore](https://github.com/semaphore-protocol/semaphore) is a [zero-knowledge](https://z.cash/technology/zksnarks) protocol that allows you to cast a signal (for example, a vote or endorsement) as a provable group member without revealing your identity. +Additionally, it provides a simple mechanism to prevent double-signaling. +Use cases include private voting, whistleblowing, anonymous DAOs and mixers. + +## Features + +With Semaphore, you can allow your users to do the following: + +1. [Create a Semaphore identity](/docs/guides/identities/). +2. [Add their Semaphore identity to a group (i.e. _Merkle tree_)](/docs/guides/groups/). +3. [Send a verifiable, anonymous signal (e.g a vote or endorsement)](/docs/guides/proofs/). + +When a user broadcasts a signal (for example: a vote), Semaphore zero-knowledge +proofs can ensure that the user has joined the group and hasn't already cast a signal with their nullifier. + +Semaphore uses on-chain Solidity contracts and off-chain JavaScript libraries that work in tandem. + +- Off chain, JavaScript libraries can be used to create identities, manage groups and generate proofs. +- On chain, Solidity contracts can be used to manage groups and verify proofs. + +## Developer benefits + +Semaphore is designed to be a simple and generic _privacy layer_ for decentralized applications (dApps) on Ethereum. It encourages modular application design, allowing dApp developers to choose and customize the on-chain and off-chain components they need. + +## About the code + +The core of the protocol is the [circuit logic](https://github.com/semaphore-protocol/semaphore/tree/main/packages/circuits/scheme.png). +In addition to circuits, +Semaphore provides [Solidity contracts](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts) +and [JavaScript libraries](https://github.com/semaphore-protocol/semaphore#-packages) that allow developers to generate zero-knowledge proofs and verify them with minimal effort. + +### Trusted Setup Ceremony + +The [secure parameters](/docs/glossary#trusted-setup-files) for generating valid proofs with Semaphore circuits were generated in a [Trusted Setup Ceremony](https://storage.googleapis.com/trustedsetup-a86f4.appspot.com/semaphore/semaphore_top_index.html) that was completed with over 300 participants on [29 March 2022](https://etherscan.io/tx/0xec6dbe68883c7593c2bea82f55af18b3aeb5cc146e026d0083a9b3faa9aa0b65#eventlog). + +### Audits + +| Version | Auditors | Report | Scope | +| ------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------ | +| v2.0.0 | [PSE](https://pse.dev/) | [Semaphore_2.0.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9850441/Semaphore_2.0.0_Audit.pdf) | `circuits`, `contracts` | +| v2.5.0 | [PSE](https://pse.dev/) | [Semaphore_2.5.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/9845008/Semaphore_2.5.0_Audit.pdf) | `contracts`, `libraries` | +| v3.0.0 | [Veridise](https://veridise.com/) | [Semaphore_3.0.0_Audit.pdf](https://github.com/semaphore-protocol/semaphore/files/10513776/Semaphore_3.0.0_Audit.pdf) | `circuits`, `contracts` | + +:::info +If you are using one of the previous versions of Semaphore, see the [Semaphore V1](/docs/V1/introduction) or the [Semaphore V2](/docs/V2/introduction) documentation. +::: diff --git a/apps/docs/versioned_sidebars/version-V1-sidebars.json b/apps/docs/versioned_sidebars/version-V1-sidebars.json new file mode 100644 index 00000000..dd1208ba --- /dev/null +++ b/apps/docs/versioned_sidebars/version-V1-sidebars.json @@ -0,0 +1,8 @@ +{ + "version-V1/mySidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] +} diff --git a/apps/docs/versioned_sidebars/version-V2-sidebars.json b/apps/docs/versioned_sidebars/version-V2-sidebars.json new file mode 100644 index 00000000..5272f916 --- /dev/null +++ b/apps/docs/versioned_sidebars/version-V2-sidebars.json @@ -0,0 +1,8 @@ +{ + "version-V2/mySidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] +} diff --git a/apps/docs/versioned_sidebars/version-V3-sidebars.json b/apps/docs/versioned_sidebars/version-V3-sidebars.json new file mode 100644 index 00000000..34a4519b --- /dev/null +++ b/apps/docs/versioned_sidebars/version-V3-sidebars.json @@ -0,0 +1,8 @@ +{ + "version-V3/mySidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] +} diff --git a/apps/docs/versions.json b/apps/docs/versions.json new file mode 100644 index 00000000..b2bc2bf5 --- /dev/null +++ b/apps/docs/versions.json @@ -0,0 +1 @@ +["V3", "V2", "V1"] diff --git a/yarn.lock b/yarn.lock index c45775a0..4ba15981 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,188 @@ __metadata: version: 6 cacheKey: 8 +"@algolia/autocomplete-core@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-core@npm:1.9.3" + dependencies: + "@algolia/autocomplete-plugin-algolia-insights": 1.9.3 + "@algolia/autocomplete-shared": 1.9.3 + checksum: ce78048568660184a4fa3c6548f344a7f5ce0ba45d4cfc233f9756b6d4f360afd5ae3a18efefcd27a626d3a0d6cf22d9cba3e21b217afae62b8e9d11bc4960da + languageName: node + linkType: hard + +"@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3" + dependencies: + "@algolia/autocomplete-shared": 1.9.3 + peerDependencies: + search-insights: ">= 1 < 3" + checksum: 030695bf692021c27f52a3d4931efed23032796e326d4ae7957ae91b51c36a10dc2d885fb043909e853f961c994b8e9ff087f50bb918cfa075370562251a199f + languageName: node + linkType: hard + +"@algolia/autocomplete-preset-algolia@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-preset-algolia@npm:1.9.3" + dependencies: + "@algolia/autocomplete-shared": 1.9.3 + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 1ab3273d3054b348eed286ad1a54b21807846326485507b872477b827dc688006d4f14233cebd0bf49b2932ec8e29eca6d76e48a3c9e9e963b25153b987549c0 + languageName: node + linkType: hard + +"@algolia/autocomplete-shared@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-shared@npm:1.9.3" + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 06014c8b08d30c452de079f48c0235d8fa09904bf511da8dc1b7e491819940fd4ff36b9bf65340242b2e157a26799a3b9aea01feee9c5bf67be3c48d7dff43d7 + languageName: node + linkType: hard + +"@algolia/cache-browser-local-storage@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/cache-browser-local-storage@npm:4.22.0" + dependencies: + "@algolia/cache-common": 4.22.0 + checksum: 4fa21d73f0e808832d937d9582ca1f45b0bcc5cd4276ab2ac9330bcdef08918dd34831787973ff1bb493cb16eb606004b41f4f0f904eee26cb1d47b18f99ce2e + languageName: node + linkType: hard + +"@algolia/cache-common@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/cache-common@npm:4.22.0" + checksum: 9ad444f8799d2dd4e7720d0ea203c4526d1b19687adf31bebe81f0537b2db8b6c9dd6eda997801e7bbc921694a19853a071c5885e69566c30e4398ec0da4efcd + languageName: node + linkType: hard + +"@algolia/cache-in-memory@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/cache-in-memory@npm:4.22.0" + dependencies: + "@algolia/cache-common": 4.22.0 + checksum: 55b09ec4cab57d30387111bdf79fd536a1f3c344fed6305dce7ee63f420135db09632821e3fbc2423c89d84a7cbfee495b509fa4e788de424ea98ac2c62ca392 + languageName: node + linkType: hard + +"@algolia/client-account@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/client-account@npm:4.22.0" + dependencies: + "@algolia/client-common": 4.22.0 + "@algolia/client-search": 4.22.0 + "@algolia/transporter": 4.22.0 + checksum: d6793c855356155332ee25253fa5cc0f6df0a3508ee649f1e330e2a83a6dfca44b13cd13ee42a92aff56c76be4291704e9242b6f4ed79ed9f7ffe75a00008b67 + languageName: node + linkType: hard + +"@algolia/client-analytics@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/client-analytics@npm:4.22.0" + dependencies: + "@algolia/client-common": 4.22.0 + "@algolia/client-search": 4.22.0 + "@algolia/requester-common": 4.22.0 + "@algolia/transporter": 4.22.0 + checksum: ace1b5a8959f9d0dbed51f9a745bd5942158e407b84dcf248cc0acd4354f18d6eb44430530fc00723d399afc4c223256fa80664521dc5010469c55ef0ef53365 + languageName: node + linkType: hard + +"@algolia/client-common@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/client-common@npm:4.22.0" + dependencies: + "@algolia/requester-common": 4.22.0 + "@algolia/transporter": 4.22.0 + checksum: 7207d014d027837f4b12736a66067306e0336dacb061b3d5e78029e0d83bc726de160658a0771e23c0d47ee774c249f62ed565eb0ea594bacc8e1c2ed46ccc5e + languageName: node + linkType: hard + +"@algolia/client-personalization@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/client-personalization@npm:4.22.0" + dependencies: + "@algolia/client-common": 4.22.0 + "@algolia/requester-common": 4.22.0 + "@algolia/transporter": 4.22.0 + checksum: da5a948c5db8a8bc0c2531c103b706bae5b4c8392be65082bde0712d8ed188f0019a705ec5f5937e18c5d4a8a946de0a04c0a445bf53416041cbc715e19d4d33 + languageName: node + linkType: hard + +"@algolia/client-search@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/client-search@npm:4.22.0" + dependencies: + "@algolia/client-common": 4.22.0 + "@algolia/requester-common": 4.22.0 + "@algolia/transporter": 4.22.0 + checksum: 32ad4878ea8c188dc34cf97793d2ad1caa557cab6522f2ecf0291998c16ba6cbb6bf2532e424017d6938862c6b586588776d3d965e746daab028c3c8725eaca1 + languageName: node + linkType: hard + +"@algolia/events@npm:^4.0.1": + version: 4.0.1 + resolution: "@algolia/events@npm:4.0.1" + checksum: 4f63943f4554cfcfed91d8b8c009a49dca192b81056d8c75e532796f64828cd69899852013e81ff3fff07030df8782b9b95c19a3da0845786bdfe22af42442c2 + languageName: node + linkType: hard + +"@algolia/logger-common@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/logger-common@npm:4.22.0" + checksum: 9ea190eaa0ddca0a7a0810a0cabcc98a794ef3f5e1fe7ed4eaeb07c81c55f8b5ee4052365af589e4fccbef8115ba101746293f2c09382adda472dc335a43e3b9 + languageName: node + linkType: hard + +"@algolia/logger-console@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/logger-console@npm:4.22.0" + dependencies: + "@algolia/logger-common": 4.22.0 + checksum: 4eda252ca82e080a0f3a6dc5327f62910ae80c43fa50a7181ce035408f5a92127c4887f1e1f559210769bd3e8d6dfbac050f076ed70bfc1ed39d7ec40b9ee8fd + languageName: node + linkType: hard + +"@algolia/requester-browser-xhr@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/requester-browser-xhr@npm:4.22.0" + dependencies: + "@algolia/requester-common": 4.22.0 + checksum: 3abb3881970b1aca5500dd8cb6e91c02b8e55a5f25c075702ce32472328a271fdd63e197b6a0049967f5ec7e23f98e9aca909f01a4d199befd7da8924dd2d42c + languageName: node + linkType: hard + +"@algolia/requester-common@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/requester-common@npm:4.22.0" + checksum: 59c8d857b9f88e743b34e4f1c259b0c85e2e2d93bdf7ebc2b3e31baee3dc7d64e0ba7bb3ada7c98dc790af6006efaa2984ccde4f7494c52aaeb42ca6590e4820 + languageName: node + linkType: hard + +"@algolia/requester-node-http@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/requester-node-http@npm:4.22.0" + dependencies: + "@algolia/requester-common": 4.22.0 + checksum: a140c7421b8c72e3018e2f0305cdd8fa51ebadd31ff6e2de60857fe4f9a32442bb0312bede95925f3676c02242787c1657af246d794c5dfb819fcf9600f3f2d3 + languageName: node + linkType: hard + +"@algolia/transporter@npm:4.22.0": + version: 4.22.0 + resolution: "@algolia/transporter@npm:4.22.0" + dependencies: + "@algolia/cache-common": 4.22.0 + "@algolia/logger-common": 4.22.0 + "@algolia/requester-common": 4.22.0 + checksum: 6173f67e9c14b9d29d26955bd0dc8f1ec9b04eab18e9a87292a3ef3bdd5b16f1b376dbb264309f5f191dc370eae359c17e4f45163514883c73b86207ba4b5ea9 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.1.0, @ampproject/remapping@npm:^2.2.0": version: 2.2.0 resolution: "@ampproject/remapping@npm:2.2.0" @@ -53,6 +235,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.8.3": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" + dependencies: + "@babel/highlight": ^7.23.4 + chalk: ^2.4.2 + checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.21.4": version: 7.21.4 resolution: "@babel/compat-data@npm:7.21.4" @@ -67,6 +259,37 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 + languageName: node + linkType: hard + +"@babel/core@npm:7.12.9": + version: 7.12.9 + resolution: "@babel/core@npm:7.12.9" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/generator": ^7.12.5 + "@babel/helper-module-transforms": ^7.12.1 + "@babel/helpers": ^7.12.5 + "@babel/parser": ^7.12.7 + "@babel/template": ^7.12.7 + "@babel/traverse": ^7.12.9 + "@babel/types": ^7.12.7 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.1 + json5: ^2.1.2 + lodash: ^4.17.19 + resolve: ^1.3.2 + semver: ^5.4.1 + source-map: ^0.5.0 + checksum: 4d34eca4688214a4eb6bd5dde906b69a7824f17b931f52cd03628a8ac94d8fbe15565aebffdde106e974c8738cd64ac62c6a6060baa7139a06db1f18c4ff872d + languageName: node + linkType: hard + "@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.7, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": version: 7.19.1 resolution: "@babel/core@npm:7.19.1" @@ -113,6 +336,41 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.18.6, @babel/core@npm:^7.19.6": + version: 7.23.6 + resolution: "@babel/core@npm:7.23.6" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.23.6 + "@babel/parser": ^7.23.6 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.6 + "@babel/types": ^7.23.6 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 4bddd1b80394a64b2ee33eeb216e8a2a49ad3d74f0ca9ba678c84a37f4502b2540662d72530d78228a2a349fda837fa852eea5cd3ae28465d1188acc6055868e + languageName: node + linkType: hard + +"@babel/generator@npm:^7.12.5, @babel/generator@npm:^7.18.7, @babel/generator@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/generator@npm:7.23.6" + dependencies: + "@babel/types": ^7.23.6 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 1a1a1c4eac210f174cd108d479464d053930a812798e09fee069377de39a893422df5b5b146199ead7239ae6d3a04697b45fc9ac6e38e0f6b76374390f91fc6c + languageName: node + linkType: hard + "@babel/generator@npm:^7.19.0": version: 7.19.0 resolution: "@babel/generator@npm:7.19.0" @@ -145,6 +403,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": version: 7.18.9 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" @@ -155,6 +422,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.21.4": version: 7.21.4 resolution: "@babel/helper-compilation-targets@npm:7.21.4" @@ -184,6 +460,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" + dependencies: + "@babel/compat-data": ^7.23.5 + "@babel/helper-validator-option": ^7.23.5 + browserslist: ^4.22.2 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0": version: 7.21.4 resolution: "@babel/helper-create-class-features-plugin@npm:7.21.4" @@ -202,6 +491,25 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.6" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-member-expression-to-functions": ^7.23.0 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 356b71b9f4a3a95917432bf6a452f475a292d394d9310e9c8b23c8edb564bee91e40d4290b8aa8779d2987a7c39ae717b2d76edc7c952078b8952df1a20259e3 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.20.5": version: 7.21.4 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.21.4" @@ -226,6 +534,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + regexpu-core: ^5.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.3.3": version: 0.3.3 resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" @@ -242,6 +563,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.4.4": + version: 0.4.4 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2453cdd79f18a4cb8653d8a7e06b2eb0d8e31bae0d35070fc5abadbddca246a36d82b758064b421cca49b48d0e696d331d54520ba8582c1d61fb706d6d831817 + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-environment-visitor@npm:7.18.9" @@ -249,6 +585,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 + languageName: node + linkType: hard + "@babel/helper-explode-assignable-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" @@ -268,6 +611,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + languageName: node + linkType: hard + "@babel/helper-hoist-variables@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-hoist-variables@npm:7.18.6" @@ -277,6 +630,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-member-expression-to-functions@npm:7.18.9" @@ -295,6 +657,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" + dependencies: + "@babel/types": ^7.23.0 + checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.10.4": version: 7.21.4 resolution: "@babel/helper-module-imports@npm:7.21.4" @@ -304,7 +675,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7": +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" dependencies: @@ -322,6 +693,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.12.1, @babel/helper-module-transforms@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/helper-module-transforms@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.21.2": version: 7.21.2 resolution: "@babel/helper-module-transforms@npm:7.21.2" @@ -363,6 +749,22 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:7.10.4": + version: 7.10.4 + resolution: "@babel/helper-plugin-utils@npm:7.10.4" + checksum: 639ed8fc462b97a83226cee6bb081b1d77e7f73e8b033d2592ed107ee41d96601e321e5ea53a33e47469c7f1146b250a3dcda5ab873c7de162ab62120c341a41 + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.19.0 resolution: "@babel/helper-plugin-utils@npm:7.19.0" @@ -377,6 +779,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-plugin-utils@npm:7.22.5" + checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.18.6, @babel/helper-remap-async-to-generator@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-remap-async-to-generator@npm:7.18.9" @@ -391,6 +800,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.20.7": version: 7.20.7 resolution: "@babel/helper-replace-supers@npm:7.20.7" @@ -418,6 +840,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.22.15 + "@babel/helper-optimise-call-expression": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-simple-access@npm:7.18.6" @@ -436,6 +871,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-simple-access@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.18.9" @@ -454,6 +898,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-split-export-declaration@npm:7.18.6" @@ -463,6 +916,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.18.10": version: 7.18.10 resolution: "@babel/helper-string-parser@npm:7.18.10" @@ -484,6 +946,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/helper-string-parser@npm:7.23.4" + checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": version: 7.19.1 resolution: "@babel/helper-validator-identifier@npm:7.19.1" @@ -512,6 +981,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.18.9": version: 7.20.5 resolution: "@babel/helper-wrap-function@npm:7.20.5" @@ -524,6 +1000,28 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" + dependencies: + "@babel/helper-function-name": ^7.22.5 + "@babel/template": ^7.22.15 + "@babel/types": ^7.22.19 + checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.12.5, @babel/helpers@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helpers@npm:7.23.6" + dependencies: + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.6 + "@babel/types": ^7.23.6 + checksum: c5ba62497e1d717161d107c4b3de727565c68b6b9f50f59d6298e613afeca8895799b227c256e06d362e565aec34e26fb5c675b9c3d25055c52b945a21c21e21 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.19.0": version: 7.19.0 resolution: "@babel/helpers@npm:7.19.0" @@ -557,6 +1055,17 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4": version: 7.21.4 resolution: "@babel/parser@npm:7.21.4" @@ -566,6 +1075,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.12.7, @babel/parser@npm:^7.18.8, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" + bin: + parser: ./bin/babel-parser.js + checksum: 140801c43731a6c41fd193f5c02bc71fd647a0360ca616b23d2db8be4b9739b9f951a03fc7c2db4f9b9214f4b27c1074db0f18bc3fa653783082d5af7c8860d5 + languageName: node + linkType: hard + "@babel/parser@npm:^7.18.10, @babel/parser@npm:^7.19.1": version: 7.19.1 resolution: "@babel/parser@npm:7.19.1" @@ -586,6 +1104,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ddbaf2c396b7780f15e80ee01d6dd790db076985f3dfeb6527d1a8d4cacf370e49250396a3aa005b2c40233cac214a106232f83703d5e8491848bde273938232 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.18.9" @@ -612,6 +1141,31 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.23.3 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 434b9d710ae856fa1a456678cc304fbc93915af86d581ee316e077af746a709a741ea39d7e1d4f5b98861b629cc7e87f002d3138f5e836775632466d4c74aef2 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 4690123f0ef7c11d6bf1a9579e4f463ce363563b75ec3f6ca66cf68687e39d8d747a82c833847653962f79da367eca895d9095c60d8ebb224a1d4277003acc11 + languageName: node + linkType: hard + "@babel/plugin-proposal-async-generator-functions@npm:^7.19.1": version: 7.19.1 resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.19.1" @@ -762,6 +1316,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-object-rest-spread@npm:7.12.1": + version: 7.12.1 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.12.1" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.0 + "@babel/plugin-transform-parameters": ^7.12.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 221a41630c9a7162bf0416c71695b3f7f38482078a1d0d3af7abdc4f07ea1c9feed890399158d56c1d0278c971fe6f565ce822e9351e4481f7d98e9ff735dced + languageName: node + linkType: hard + "@babel/plugin-proposal-object-rest-spread@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.18.9" @@ -842,6 +1409,15 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 + languageName: node + linkType: hard + "@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.18.6" @@ -970,7 +1546,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.8.3": +"@babel/plugin-syntax-import-assertions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 883e6b35b2da205138caab832d54505271a3fee3fc1e8dc0894502434fc2b5d517cbe93bbfbfef8068a0fb6ec48ebc9eef3f605200a489065ba43d8cddc1c9a7 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9aed7661ffb920ca75df9f494757466ca92744e43072e0848d87fa4aa61a3f2ee5a22198ac1959856c036434b5614a8f46f1fb70298835dbe28220cdd1d4c11e + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: @@ -992,6 +1590,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:7.12.1": + version: 7.12.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.12.1" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d4b9b589c484b2e0856799770f060dff34c67b24d7f4526f66309a0e0e9cf388a5c1f2c0da329d1973cc87d1b2cede8f3dc8facfac59e785d6393a003bcdd0f9 + languageName: node + linkType: hard + "@babel/plugin-syntax-jsx@npm:^7.21.4": version: 7.21.4 resolution: "@babel/plugin-syntax-jsx@npm:7.21.4" @@ -1003,6 +1612,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -1036,7 +1656,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": +"@babel/plugin-syntax-object-rest-spread@npm:7.8.3, @babel/plugin-syntax-object-rest-spread@npm:^7.8.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" dependencies: @@ -1102,6 +1722,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: abfad3a19290d258b028e285a1f34c9b8a0cbe46ef79eafed4ed7ffce11b5d0720b5e536c82f91cbd8442cde35a3dd8e861fa70366d87ff06fdc0d4756e30876 + languageName: node + linkType: hard + +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + "@babel/plugin-transform-arrow-functions@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-arrow-functions@npm:7.18.6" @@ -1124,6 +1767,31 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-arrow-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1e99118176e5366c2636064d09477016ab5272b2a92e78b8edb571d20bc3eaa881789a905b20042942c3c2d04efc530726cf703f937226db5ebc495f5d067e66 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.20 + "@babel/plugin-syntax-async-generators": ^7.8.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e2fc132c9033711d55209f4781e1fc73f0f4da5e0ca80a2da73dec805166b73c92a6e83571a8994cd2c893a28302e24107e90856202b24781bab734f800102bb + languageName: node + linkType: hard + "@babel/plugin-transform-async-to-generator@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-async-to-generator@npm:7.18.6" @@ -1150,6 +1818,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-to-generator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" + dependencies: + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2e9d9795d4b3b3d8090332104e37061c677f29a1ce65bcbda4099a32d243e5d9520270a44bbabf0fb1fb40d463bd937685b1a1042e646979086c546d55319c3c + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" @@ -1161,6 +1842,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e63b16d94ee5f4d917e669da3db5ea53d1e7e79141a2ec873c1e644678cdafe98daa556d0d359963c827863d6b3665d23d4938a94a4c5053a1619c4ebd01d020 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoping@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-block-scoping@npm:7.18.9" @@ -1183,6 +1875,42 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoping@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fc4b2100dd9f2c47d694b4b35ae8153214ccb4e24ef545c259a9db17211b18b6a430f22799b56db8f6844deaeaa201af45a03331d0c80cc28b0c4e3c814570e4 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9c6f8366f667897541d360246de176dd29efc7a13d80a5b48361882f7173d9173be4646c3b7d9b003ccc0e01e25df122330308f33db921fa553aa17ad544b3fc + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: c8bfaba19a674fc2eb54edad71e958647360474e3163e8226f1acd63e4e2dbec32a171a0af596c1dc5359aee402cc120fea7abd1fb0e0354b6527f0fc9e8aa1e + languageName: node + linkType: hard + "@babel/plugin-transform-classes@npm:^7.19.0": version: 7.19.0 resolution: "@babel/plugin-transform-classes@npm:7.19.0" @@ -1221,6 +1949,25 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/plugin-transform-classes@npm:7.23.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-split-export-declaration": ^7.22.6 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6d0dd3b0828e84a139a51b368f33f315edee5688ef72c68ba25e0175c68ea7357f9c8810b3f61713e368a3063cdcec94f3a2db952e453b0b14ef428a34aa8169 + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-computed-properties@npm:7.18.9" @@ -1244,6 +1991,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-computed-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/template": ^7.22.15 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 80452661dc25a0956f89fe98cb562e8637a9556fb6c00d312c57653ce7df8798f58d138603c7e1aad96614ee9ccd10c47e50ab9ded6b6eded5adeb230d2a982e + languageName: node + linkType: hard + "@babel/plugin-transform-destructuring@npm:^7.18.13": version: 7.18.13 resolution: "@babel/plugin-transform-destructuring@npm:7.18.13" @@ -1266,6 +2025,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9e015099877272501162419bfe781689aec5c462cd2aec752ee22288f209eec65969ff11b8fdadca2eaddea71d705d3bba5b9c60752fcc1be67874fcec687105 + languageName: node + linkType: hard + "@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": version: 7.18.6 resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" @@ -1278,6 +2048,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dotall-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a2dbbf7f1ea16a97948c37df925cb364337668c41a3948b8d91453f140507bd8a3429030c7ce66d09c299987b27746c19a2dd18b6f17dcb474854b14fd9159a3 + languageName: node + linkType: hard + "@babel/plugin-transform-duplicate-keys@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.18.9" @@ -1289,6 +2071,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c2a21c34dc0839590cd945192cbc46fde541a27e140c48fe1808315934664cdbf18db64889e23c4eeb6bad9d3e049482efdca91d29de5734ffc887c4fbabaa16 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 57a722604c430d9f3dacff22001a5f31250e34785d4969527a2ae9160fa86858d0892c5b9ff7a06a04076f8c76c9e6862e0541aadca9c057849961343aab0845 + languageName: node + linkType: hard + "@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" @@ -1301,6 +2106,30 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 00d05ab14ad0f299160fcf9d8f55a1cc1b740e012ab0b5ce30207d2365f091665115557af7d989cd6260d075a252d9e4283de5f2b247dfbbe0e42ae586e6bf66 + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9f770a81bfd03b48d6ba155d452946fd56d6ffe5b7d871e9ec2a0b15e0f424273b632f3ed61838b90015b25bbda988896b7a46c7d964fbf8f6feb5820b309f93 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.18.8": version: 7.18.8 resolution: "@babel/plugin-transform-for-of@npm:7.18.8" @@ -1323,6 +2152,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-for-of@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/plugin-transform-for-of@npm:7.23.6" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 228c060aa61f6aa89dc447170075f8214863b94f830624e74ade99c1a09316897c12d76e848460b0b506593e58dbc42739af6dc4cb0fe9b84dffe4a596050a36 + languageName: node + linkType: hard + "@babel/plugin-transform-function-name@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-function-name@npm:7.18.9" @@ -1336,6 +2177,31 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-function-name@npm:7.23.3" + dependencies: + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 355c6dbe07c919575ad42b2f7e020f320866d72f8b79181a16f8e0cd424a2c761d979f03f47d583d9471b55dcd68a8a9d829b58e1eebcd572145b934b48975a6 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de + languageName: node + linkType: hard + "@babel/plugin-transform-literals@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-literals@npm:7.18.9" @@ -1347,6 +2213,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" @@ -1358,6 +2247,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db + languageName: node + linkType: hard + "@babel/plugin-transform-modules-amd@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-modules-amd@npm:7.18.6" @@ -1383,6 +2283,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-amd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff + languageName: node + linkType: hard + "@babel/plugin-transform-modules-commonjs@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.18.6" @@ -1410,6 +2322,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.19.0": version: 7.19.0 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.19.0" @@ -1439,6 +2364,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-systemjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" + dependencies: + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0d2fdd993c785aecac9e0850cd5ed7f7d448f0fbb42992a950cc0590167144df25d82af5aac9a5c99ef913d2286782afa44e577af30c10901c5ee8984910fa1f + languageName: node + linkType: hard + "@babel/plugin-transform-modules-umd@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" @@ -1451,6 +2390,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-umd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 586a7a2241e8b4e753a37af9466a9ffa8a67b4ba9aa756ad7500712c05d8fa9a8c1ed4f7bd25fae2a8265e6cf8fe781ec85a8ee885dd34cf50d8955ee65f12dc + languageName: node + linkType: hard + "@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1": version: 7.19.1 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.19.1" @@ -1475,6 +2426,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + languageName: node + linkType: hard + "@babel/plugin-transform-new-target@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-new-target@npm:7.18.6" @@ -1486,6 +2449,56 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-new-target@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-new-target@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e5053389316fce73ad5201b7777437164f333e24787fbcda4ae489cd2580dbbbdfb5694a7237bad91fabb46b591d771975d69beb1c740b82cb4761625379f00b + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a27d73ea134d3d9560a6b2e26ab60012fba15f1db95865aa0153c18f5ec82cfef6a7b3d8df74e3c2fca81534fa5efeb6cacaf7b08bdb7d123e3dafdd079886a3 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6ba0e5db3c620a3ec81f9e94507c821f483c15f196868df13fa454cbac719a5449baf73840f5b6eb7d77311b24a2cf8e45db53700d41727f693d46f7caf3eec3 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" + dependencies: + "@babel/compat-data": ^7.23.3 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 73fec495e327ca3959c1c03d07a621be09df00036c69fff0455af9a008291677ee9d368eec48adacdc6feac703269a649747568b4af4c4e9f134aa71cc5b378d + languageName: node + linkType: hard + "@babel/plugin-transform-object-super@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-object-super@npm:7.18.6" @@ -1498,6 +2511,54 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-super@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-object-super@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e495497186f621fa79026e183b4f1fbb172fd9df812cbd2d7f02c05b08adbe58012b1a6eb6dd58d11a30343f6ec80d0f4074f9b501d70aa1c94df76d59164c53 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d50b5ee142cdb088d8b5de1ccf7cea85b18b85d85b52f86618f6e45226372f01ad4cdb29abd4fd35ea99a71fefb37009e0107db7a787dcc21d4d402f97470faf + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e7a4c08038288057b7a08d68c4d55396ada9278095509ca51ed8dfb72a7f13f26bdd7c5185de21079fe0a9d60d22c227cb32e300d266c1bda40f70eee9f4bc1e + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-parameters@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a735b3e85316d17ec102e3d3d1b6993b429bdb3b494651c9d754e3b7d270462ee1f1a126ccd5e3d871af5e683727e9ef98c9d34d4a42204fffaabff91052ed16 + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.18.8": version: 7.18.8 resolution: "@babel/plugin-transform-parameters@npm:7.18.8" @@ -1520,6 +2581,32 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-methods@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cedc1285c49b5a6d9a3d0e5e413b756ac40b3ac2f8f68bdfc3ae268bc8d27b00abd8bb0861c72756ff5dd8bf1eb77211b7feb5baf4fdae2ebbaabe49b9adc1d0 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fb7adfe94ea97542f250a70de32bddbc3e0b802381c92be947fec83ebffda57e68533c4d0697152719a3496fdd3ebf3798d451c024cd4ac848fc15ac26b70aa7 + languageName: node + linkType: hard + "@babel/plugin-transform-property-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" @@ -1531,6 +2618,77 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-property-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 16b048c8e87f25095f6d53634ab7912992f78e6997a6ff549edc3cf519db4fca01c7b4e0798530d7f6a05228ceee479251245cdd850a5531c6e6f404104d6cc9 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-constant-elements@npm:^7.12.1, @babel/plugin-transform-react-constant-elements@npm:^7.18.12": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f386fe59657910a00c5d276918765c6a74e52c9a223d79463a4eecd652b4da4a6c0a16710fcf5e17b838c336e0c46b552b79e47c1d6eeebc74a813788e0611f7 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-display-name@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": + version: 7.23.4 + resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/types": ^7.23.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a + languageName: node + linkType: hard + +"@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9ea3698b1d422561d93c0187ac1ed8f2367e4250b10e259785ead5aa643c265830fd0f4cf5087a5bedbc4007444c06da2f2006686613220acf0949895f453666 + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-regenerator@npm:7.18.6" @@ -1555,6 +2713,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regenerator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + regenerator-transform: ^0.15.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7fdacc7b40008883871b519c9e5cdea493f75495118ccc56ac104b874983569a24edd024f0f5894ba1875c54ee2b442f295d6241c3280e61c725d0dd3317c8e6 + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-reserved-words@npm:7.18.6" @@ -1566,6 +2736,33 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-reserved-words@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 298c4440ddc136784ff920127cea137168e068404e635dc946ddb5d7b2a27b66f1dd4c4acb01f7184478ff7d5c3e7177a127279479926519042948fb7fa0fa48 + languageName: node + linkType: hard + +"@babel/plugin-transform-runtime@npm:^7.18.6": + version: 7.23.6 + resolution: "@babel/plugin-transform-runtime@npm:7.23.6" + dependencies: + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + babel-plugin-polyfill-corejs2: ^0.4.6 + babel-plugin-polyfill-corejs3: ^0.8.5 + babel-plugin-polyfill-regenerator: ^0.5.3 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d87da909e40d31e984ca5487ba36fa229449b773bc0f3fbf1d3c5ccac788ad3aef7481f1d4a3384c1813ee4f958af52b449089d96c0d5625868c028dd630d683 + languageName: node + linkType: hard + "@babel/plugin-transform-shorthand-properties@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6" @@ -1577,6 +2774,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5d677a03676f9fff969b0246c423d64d77502e90a832665dc872a5a5e05e5708161ce1effd56bb3c0f2c20a1112fca874be57c8a759d8b08152755519281f326 + languageName: node + linkType: hard + "@babel/plugin-transform-spread@npm:^7.19.0": version: 7.19.0 resolution: "@babel/plugin-transform-spread@npm:7.19.0" @@ -1601,6 +2809,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-spread@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-spread@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8fd5cac201e77a0b4825745f4e07a25f923842f282f006b3a79223c00f61075c8868d12eafec86b2642cd0b32077cdd32314e27bcb75ee5e6a68c0144140dcf2 + languageName: node + linkType: hard + "@babel/plugin-transform-sticky-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-sticky-regex@npm:7.18.6" @@ -1612,6 +2832,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-sticky-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 + languageName: node + linkType: hard + "@babel/plugin-transform-template-literals@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-template-literals@npm:7.18.9" @@ -1623,6 +2854,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-template-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 + languageName: node + linkType: hard + "@babel/plugin-transform-typeof-symbol@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.18.9" @@ -1634,6 +2876,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 + languageName: node + linkType: hard + "@babel/plugin-transform-typescript@npm:^7.21.3": version: 7.21.3 resolution: "@babel/plugin-transform-typescript@npm:7.21.3" @@ -1648,6 +2901,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.23.3": + version: 7.23.6 + resolution: "@babel/plugin-transform-typescript@npm:7.23.6" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.23.6 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-typescript": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0462241843d14dff9f1a4c49ab182a6f01a5f7679957c786b08165dac3e8d49184011f05ca204183d164c54b9d3496d1b3005f904fa8708e394e6f15bf5548e6 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.18.10": version: 7.18.10 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" @@ -1659,6 +2926,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-escapes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2298461a194758086d17c23c26c7de37aa533af910f9ebf31ebd0893d4aa317468043d23f73edc782ec21151d3c46cf0ff8098a83b725c49a59de28a1d4d6225 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-unicode-regex@npm:7.18.6" @@ -1671,6 +2961,30 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c5f835d17483ba899787f92e313dfa5b0055e3deab332f1d254078a2bba27ede47574b6599fcf34d3763f0c048ae0779dc21d2d8db09295edb4057478dc80a9a + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 79d0b4c951955ca68235c87b91ab2b393c96285f8aeaa34d6db416d2ddac90000c9bd6e8c4d82b60a2b484da69930507245035f28ba63c6cae341cf3ba68fdef + languageName: node + linkType: hard + "@babel/preset-env@npm:^7.11.0": version: 7.21.4 resolution: "@babel/preset-env@npm:7.21.4" @@ -1756,6 +3070,96 @@ __metadata: languageName: node linkType: hard +"@babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.18.6, @babel/preset-env@npm:^7.19.4": + version: 7.23.6 + resolution: "@babel/preset-env@npm:7.23.6" + dependencies: + "@babel/compat-data": ^7.23.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.3 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.23.3 + "@babel/plugin-syntax-import-attributes": ^7.23.3 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.23.3 + "@babel/plugin-transform-async-generator-functions": ^7.23.4 + "@babel/plugin-transform-async-to-generator": ^7.23.3 + "@babel/plugin-transform-block-scoped-functions": ^7.23.3 + "@babel/plugin-transform-block-scoping": ^7.23.4 + "@babel/plugin-transform-class-properties": ^7.23.3 + "@babel/plugin-transform-class-static-block": ^7.23.4 + "@babel/plugin-transform-classes": ^7.23.5 + "@babel/plugin-transform-computed-properties": ^7.23.3 + "@babel/plugin-transform-destructuring": ^7.23.3 + "@babel/plugin-transform-dotall-regex": ^7.23.3 + "@babel/plugin-transform-duplicate-keys": ^7.23.3 + "@babel/plugin-transform-dynamic-import": ^7.23.4 + "@babel/plugin-transform-exponentiation-operator": ^7.23.3 + "@babel/plugin-transform-export-namespace-from": ^7.23.4 + "@babel/plugin-transform-for-of": ^7.23.6 + "@babel/plugin-transform-function-name": ^7.23.3 + "@babel/plugin-transform-json-strings": ^7.23.4 + "@babel/plugin-transform-literals": ^7.23.3 + "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 + "@babel/plugin-transform-member-expression-literals": ^7.23.3 + "@babel/plugin-transform-modules-amd": ^7.23.3 + "@babel/plugin-transform-modules-commonjs": ^7.23.3 + "@babel/plugin-transform-modules-systemjs": ^7.23.3 + "@babel/plugin-transform-modules-umd": ^7.23.3 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 + "@babel/plugin-transform-new-target": ^7.23.3 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 + "@babel/plugin-transform-numeric-separator": ^7.23.4 + "@babel/plugin-transform-object-rest-spread": ^7.23.4 + "@babel/plugin-transform-object-super": ^7.23.3 + "@babel/plugin-transform-optional-catch-binding": ^7.23.4 + "@babel/plugin-transform-optional-chaining": ^7.23.4 + "@babel/plugin-transform-parameters": ^7.23.3 + "@babel/plugin-transform-private-methods": ^7.23.3 + "@babel/plugin-transform-private-property-in-object": ^7.23.4 + "@babel/plugin-transform-property-literals": ^7.23.3 + "@babel/plugin-transform-regenerator": ^7.23.3 + "@babel/plugin-transform-reserved-words": ^7.23.3 + "@babel/plugin-transform-shorthand-properties": ^7.23.3 + "@babel/plugin-transform-spread": ^7.23.3 + "@babel/plugin-transform-sticky-regex": ^7.23.3 + "@babel/plugin-transform-template-literals": ^7.23.3 + "@babel/plugin-transform-typeof-symbol": ^7.23.3 + "@babel/plugin-transform-unicode-escapes": ^7.23.3 + "@babel/plugin-transform-unicode-property-regex": ^7.23.3 + "@babel/plugin-transform-unicode-regex": ^7.23.3 + "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 + "@babel/preset-modules": 0.1.6-no-external-plugins + babel-plugin-polyfill-corejs2: ^0.4.6 + babel-plugin-polyfill-corejs3: ^0.8.5 + babel-plugin-polyfill-regenerator: ^0.5.3 + core-js-compat: ^3.31.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 130262f263c8a76915ff5361f78afa9e63b4ecbf3ade8e833dc7546db7b9552ab507835bdea0feb5e70861345ca128a31327fd2e187084a215fc9dd1cc0ed38e + languageName: node + linkType: hard + "@babel/preset-env@npm:^7.16.8": version: 7.19.1 resolution: "@babel/preset-env@npm:7.19.1" @@ -1841,6 +3245,19 @@ __metadata: languageName: node linkType: hard +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 + languageName: node + linkType: hard + "@babel/preset-modules@npm:^0.1.5": version: 0.1.5 resolution: "@babel/preset-modules@npm:0.1.5" @@ -1856,6 +3273,22 @@ __metadata: languageName: node linkType: hard +"@babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/preset-react@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-transform-react-display-name": ^7.23.3 + "@babel/plugin-transform-react-jsx": ^7.22.15 + "@babel/plugin-transform-react-jsx-development": ^7.22.5 + "@babel/plugin-transform-react-pure-annotations": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2d90961e7e627a74b44551e88ad36a440579e283e8dc27972bf2f50682152bbc77228673a3ea22c0e0d005b70cbc487eccd64897c5e5e0384e5ce18f300b21eb + languageName: node + linkType: hard + "@babel/preset-typescript@npm:^7.17.12": version: 7.21.4 resolution: "@babel/preset-typescript@npm:7.21.4" @@ -1871,6 +3304,21 @@ __metadata: languageName: node linkType: hard +"@babel/preset-typescript@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/preset-typescript@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/plugin-transform-modules-commonjs": ^7.23.3 + "@babel/plugin-transform-typescript": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 105a2d39bbc464da0f7e1ad7f535c77c5f62d6b410219355b20e552e7d29933567a5c55339b5d0aec1a5c7a0a7dfdf1b54aae601a4fe15a157d54dcbfcb3e854 + languageName: node + linkType: hard + "@babel/regjsgen@npm:^0.8.0": version: 0.8.0 resolution: "@babel/regjsgen@npm:0.8.0" @@ -1878,6 +3326,16 @@ __metadata: languageName: node linkType: hard +"@babel/runtime-corejs3@npm:^7.18.6": + version: 7.23.6 + resolution: "@babel/runtime-corejs3@npm:7.23.6" + dependencies: + core-js-pure: ^3.30.2 + regenerator-runtime: ^0.14.0 + checksum: 92576ea17ff674025aa3cd208bfb8301e4bde432cfa404b56f94242948cbd40125c1a4c9c54a99134e08ded8bcde305633a22b1f4c676687c3b868557d23b762 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.3.1": version: 7.23.2 resolution: "@babel/runtime@npm:7.23.2" @@ -1887,6 +3345,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.20.13": + version: 7.23.6 + resolution: "@babel/runtime@npm:7.23.6" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: 1a8eaf3d3a103ef5227b60ca7ab5c589118c36ca65ef2d64e65380b32a98a3f3b5b3ef96660fa0471b079a18b619a8317f3e7f03ab2b930c45282a8b69ed9a16 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.11.2": version: 7.21.0 resolution: "@babel/runtime@npm:7.21.0" @@ -1905,6 +3372,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.12.7, @babel/template@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd + languageName: node + linkType: hard + "@babel/template@npm:^7.18.10, @babel/template@npm:^7.3.3": version: 7.18.10 resolution: "@babel/template@npm:7.18.10" @@ -1927,6 +3405,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.18.8, @babel/traverse@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/traverse@npm:7.23.6" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.6 + "@babel/types": ^7.23.6 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 48f2eac0e86b6cb60dab13a5ea6a26ba45c450262fccdffc334c01089e75935f7546be195e260e97f6e43cea419862eda095018531a2718fef8189153d479f88 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.1": version: 7.19.1 resolution: "@babel/traverse@npm:7.19.1" @@ -1974,6 +3470,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.12.6, @babel/types@npm:^7.12.7, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/types@npm:7.23.6" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 68187dbec0d637f79bc96263ac95ec8b06d424396678e7e225492be866414ce28ebc918a75354d4c28659be6efe30020b4f0f6df81cc418a2d30645b690a8de0 + languageName: node + linkType: hard + "@babel/types@npm:^7.18.10, @babel/types@npm:^7.19.0": version: 7.19.0 resolution: "@babel/types@npm:7.19.0" @@ -3251,6 +4758,13 @@ __metadata: languageName: node linkType: hard +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 + languageName: node + linkType: hard + "@commitlint/cli@npm:^16.0.2": version: 16.3.0 resolution: "@commitlint/cli@npm:16.3.0" @@ -3510,6 +5024,546 @@ __metadata: languageName: node linkType: hard +"@discoveryjs/json-ext@npm:0.5.7": + version: 0.5.7 + resolution: "@discoveryjs/json-ext@npm:0.5.7" + checksum: 2176d301cc258ea5c2324402997cf8134ebb212469c0d397591636cea8d3c02f2b3cf9fd58dcb748c7a0dade77ebdc1b10284fa63e608c033a1db52fddc69918 + languageName: node + linkType: hard + +"@docsearch/css@npm:3.5.2": + version: 3.5.2 + resolution: "@docsearch/css@npm:3.5.2" + checksum: d1d60dd230dd48f896755f21bd20b59583ba844212d7d336953ae48d389baaf868bdf83320fb734a4ed679c3f95b15d620cf3764cd538f6941cae239f8c9d35d + languageName: node + linkType: hard + +"@docsearch/react@npm:^3.1.1": + version: 3.5.2 + resolution: "@docsearch/react@npm:3.5.2" + dependencies: + "@algolia/autocomplete-core": 1.9.3 + "@algolia/autocomplete-preset-algolia": 1.9.3 + "@docsearch/css": 3.5.2 + algoliasearch: ^4.19.1 + peerDependencies: + "@types/react": ">= 16.8.0 < 19.0.0" + react: ">= 16.8.0 < 19.0.0" + react-dom: ">= 16.8.0 < 19.0.0" + search-insights: ">= 1 < 3" + peerDependenciesMeta: + "@types/react": + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + checksum: 4b4584c2c73fc18cbd599047538896450974e134c2c74f19eb202db0ce8e6c3c49c6f65ed6ade61c796d476d3cbb55d6be58df62bc9568a0c72d88e42fca1d16 + languageName: node + linkType: hard + +"@docusaurus/core@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/core@npm:2.2.0" + dependencies: + "@babel/core": ^7.18.6 + "@babel/generator": ^7.18.7 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-transform-runtime": ^7.18.6 + "@babel/preset-env": ^7.18.6 + "@babel/preset-react": ^7.18.6 + "@babel/preset-typescript": ^7.18.6 + "@babel/runtime": ^7.18.6 + "@babel/runtime-corejs3": ^7.18.6 + "@babel/traverse": ^7.18.8 + "@docusaurus/cssnano-preset": 2.2.0 + "@docusaurus/logger": 2.2.0 + "@docusaurus/mdx-loader": 2.2.0 + "@docusaurus/react-loadable": 5.5.2 + "@docusaurus/utils": 2.2.0 + "@docusaurus/utils-common": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + "@slorber/static-site-generator-webpack-plugin": ^4.0.7 + "@svgr/webpack": ^6.2.1 + autoprefixer: ^10.4.7 + babel-loader: ^8.2.5 + babel-plugin-dynamic-import-node: ^2.3.3 + boxen: ^6.2.1 + chalk: ^4.1.2 + chokidar: ^3.5.3 + clean-css: ^5.3.0 + cli-table3: ^0.6.2 + combine-promises: ^1.1.0 + commander: ^5.1.0 + copy-webpack-plugin: ^11.0.0 + core-js: ^3.23.3 + css-loader: ^6.7.1 + css-minimizer-webpack-plugin: ^4.0.0 + cssnano: ^5.1.12 + del: ^6.1.1 + detect-port: ^1.3.0 + escape-html: ^1.0.3 + eta: ^1.12.3 + file-loader: ^6.2.0 + fs-extra: ^10.1.0 + html-minifier-terser: ^6.1.0 + html-tags: ^3.2.0 + html-webpack-plugin: ^5.5.0 + import-fresh: ^3.3.0 + leven: ^3.1.0 + lodash: ^4.17.21 + mini-css-extract-plugin: ^2.6.1 + postcss: ^8.4.14 + postcss-loader: ^7.0.0 + prompts: ^2.4.2 + react-dev-utils: ^12.0.1 + react-helmet-async: ^1.3.0 + react-loadable: "npm:@docusaurus/react-loadable@5.5.2" + react-loadable-ssr-addon-v5-slorber: ^1.0.1 + react-router: ^5.3.3 + react-router-config: ^5.1.1 + react-router-dom: ^5.3.3 + rtl-detect: ^1.0.4 + semver: ^7.3.7 + serve-handler: ^6.1.3 + shelljs: ^0.8.5 + terser-webpack-plugin: ^5.3.3 + tslib: ^2.4.0 + update-notifier: ^5.1.0 + url-loader: ^4.1.1 + wait-on: ^6.0.1 + webpack: ^5.73.0 + webpack-bundle-analyzer: ^4.5.0 + webpack-dev-server: ^4.9.3 + webpack-merge: ^5.8.0 + webpackbar: ^5.0.2 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + bin: + docusaurus: bin/docusaurus.mjs + checksum: ff47e6cf85b0f7dc0a9e5b9b0d26e33a6f7385f067566ff4f9b026d044839e4dfb4c3bc9476cfab7a7e95a0065478a534cda403dac3bb7bac9987406f1978a11 + languageName: node + linkType: hard + +"@docusaurus/cssnano-preset@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/cssnano-preset@npm:2.2.0" + dependencies: + cssnano-preset-advanced: ^5.3.8 + postcss: ^8.4.14 + postcss-sort-media-queries: ^4.2.1 + tslib: ^2.4.0 + checksum: eff9707414867bf844ef5d84bde1c843593b9b7f542dd1a0a7acc88798b0c5ddb721124229912c234bd88b93cb18d8d69c6115cbf706c2a790497f7d9dd23757 + languageName: node + linkType: hard + +"@docusaurus/logger@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/logger@npm:2.2.0" + dependencies: + chalk: ^4.1.2 + tslib: ^2.4.0 + checksum: b3ce6e18721a34793a892221485c941d5f7112ae96d569f7918d12c1f50bde9c99bc4195f4d225e874b2bd5800a35413bfeaf78b63c6fbae5f3015d44d118eee + languageName: node + linkType: hard + +"@docusaurus/mdx-loader@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/mdx-loader@npm:2.2.0" + dependencies: + "@babel/parser": ^7.18.8 + "@babel/traverse": ^7.18.8 + "@docusaurus/logger": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@mdx-js/mdx": ^1.6.22 + escape-html: ^1.0.3 + file-loader: ^6.2.0 + fs-extra: ^10.1.0 + image-size: ^1.0.1 + mdast-util-to-string: ^2.0.0 + remark-emoji: ^2.2.0 + stringify-object: ^3.3.0 + tslib: ^2.4.0 + unified: ^9.2.2 + unist-util-visit: ^2.0.3 + url-loader: ^4.1.1 + webpack: ^5.73.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: fee586498f43c46581062e681424c4637e75d505d813d8bf25f5315c912560f6600cd925bc5b07a93d5d5966741439578e7e72f30030b4c58a5cfdf72e0d8928 + languageName: node + linkType: hard + +"@docusaurus/module-type-aliases@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/module-type-aliases@npm:2.2.0" + dependencies: + "@docusaurus/react-loadable": 5.5.2 + "@docusaurus/types": 2.2.0 + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router-config": "*" + "@types/react-router-dom": "*" + react-helmet-async: "*" + react-loadable: "npm:@docusaurus/react-loadable@5.5.2" + peerDependencies: + react: "*" + react-dom: "*" + checksum: ebcb9dff2f88b5962cd34aaa78b1a48531da4776229ef507665e3f053cccb185aadcc16c3703f21031e14ccb6c8312662a6eec1a2a06bc0a423221ad200e1e9e + languageName: node + linkType: hard + +"@docusaurus/plugin-content-blog@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/plugin-content-blog@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/logger": 2.2.0 + "@docusaurus/mdx-loader": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@docusaurus/utils-common": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + cheerio: ^1.0.0-rc.12 + feed: ^4.2.2 + fs-extra: ^10.1.0 + lodash: ^4.17.21 + reading-time: ^1.5.0 + tslib: ^2.4.0 + unist-util-visit: ^2.0.3 + utility-types: ^3.10.0 + webpack: ^5.73.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 6d51e3b17b6fdeb4e04ddebe4d4ba8c7cc830bdc066c2b7898e4dee185e408f0d28ea873d18b5ee4406a568a9b05f70d17c986a9ed16b16b1450d34ca190fd06 + languageName: node + linkType: hard + +"@docusaurus/plugin-content-docs@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/plugin-content-docs@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/logger": 2.2.0 + "@docusaurus/mdx-loader": 2.2.0 + "@docusaurus/module-type-aliases": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + "@types/react-router-config": ^5.0.6 + combine-promises: ^1.1.0 + fs-extra: ^10.1.0 + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + lodash: ^4.17.21 + tslib: ^2.4.0 + utility-types: ^3.10.0 + webpack: ^5.73.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 3a262b49dd6f9d59f4e10dd25185bb4280dbf77b62e28a1dd658d5db0861ae8c82dd025f24212f0d8fec0a46a37f6ef0f2cde25ac736d445247e8727177da660 + languageName: node + linkType: hard + +"@docusaurus/plugin-content-pages@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/plugin-content-pages@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/mdx-loader": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + fs-extra: ^10.1.0 + tslib: ^2.4.0 + webpack: ^5.73.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 1e22fb8deb9b8f612ebe1ea6f8b1ce76acfc6eb8cbc0d5fc9b99b99d64e2f356d0fb136247e9f72cd84b2788eaf953a640d23ff7e2a5d650de6ec06468181a94 + languageName: node + linkType: hard + +"@docusaurus/plugin-debug@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/plugin-debug@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils": 2.2.0 + fs-extra: ^10.1.0 + react-json-view: ^1.21.3 + tslib: ^2.4.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: edf2a416b790591c66ffa8ca1fd4ed15ab2d2dc15cd67c5253714502a6828739a7a47996c3664731c6b24da1da5862ddfef60defb84bd3b8273313267db0cb54 + languageName: node + linkType: hard + +"@docusaurus/plugin-google-analytics@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/plugin-google-analytics@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + tslib: ^2.4.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 44ad3a6c1b661516cb87553103565af64a6f145d823b16882d5c7d23b99e091b7c4ba8323c5f6fe756e70fbb0f9f31d56c74512dc17da6d3c16dfabd17d719ac + languageName: node + linkType: hard + +"@docusaurus/plugin-google-gtag@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/plugin-google-gtag@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + tslib: ^2.4.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 4e7d6fcc3f30f1d54933fdeb59d3065989596e91940304965635867808d89c7b864a394f5fab2bcde98037539bf6840efc692e856fb7a4ae32ce8b5f8a4e191a + languageName: node + linkType: hard + +"@docusaurus/plugin-sitemap@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/plugin-sitemap@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/logger": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@docusaurus/utils-common": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + fs-extra: ^10.1.0 + sitemap: ^7.1.1 + tslib: ^2.4.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 8ae78093d17a96fc2c6f3829d425731dae3af19b0eec29c61a6465342462a8c24da4c5a10f1a1b1813630d2408f2e11fa17af652b74b4e8fda975d4a00bf1389 + languageName: node + linkType: hard + +"@docusaurus/preset-classic@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/preset-classic@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/plugin-content-blog": 2.2.0 + "@docusaurus/plugin-content-docs": 2.2.0 + "@docusaurus/plugin-content-pages": 2.2.0 + "@docusaurus/plugin-debug": 2.2.0 + "@docusaurus/plugin-google-analytics": 2.2.0 + "@docusaurus/plugin-google-gtag": 2.2.0 + "@docusaurus/plugin-sitemap": 2.2.0 + "@docusaurus/theme-classic": 2.2.0 + "@docusaurus/theme-common": 2.2.0 + "@docusaurus/theme-search-algolia": 2.2.0 + "@docusaurus/types": 2.2.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 70214f17766097a2e9c4b21a343bf323f7ed3d2e23c6169577cd14333a074fa15aabff6532c1774ec17c54f50c1616dbd8625c41a115d2fe799b2b7fa830c2c9 + languageName: node + linkType: hard + +"@docusaurus/react-loadable@npm:5.5.2, react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version: 5.5.2 + resolution: "@docusaurus/react-loadable@npm:5.5.2" + dependencies: + "@types/react": "*" + prop-types: ^15.6.2 + peerDependencies: + react: "*" + checksum: 930fb9e2936412a12461f210acdc154a433283921ca43ac3fc3b84cb6c12eb738b3a3719373022bf68004efeb1a928dbe36c467d7a1f86454ed6241576d936e7 + languageName: node + linkType: hard + +"@docusaurus/theme-classic@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/theme-classic@npm:2.2.0" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/mdx-loader": 2.2.0 + "@docusaurus/module-type-aliases": 2.2.0 + "@docusaurus/plugin-content-blog": 2.2.0 + "@docusaurus/plugin-content-docs": 2.2.0 + "@docusaurus/plugin-content-pages": 2.2.0 + "@docusaurus/theme-common": 2.2.0 + "@docusaurus/theme-translations": 2.2.0 + "@docusaurus/types": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@docusaurus/utils-common": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + "@mdx-js/react": ^1.6.22 + clsx: ^1.2.1 + copy-text-to-clipboard: ^3.0.1 + infima: 0.2.0-alpha.42 + lodash: ^4.17.21 + nprogress: ^0.2.0 + postcss: ^8.4.14 + prism-react-renderer: ^1.3.5 + prismjs: ^1.28.0 + react-router-dom: ^5.3.3 + rtlcss: ^3.5.0 + tslib: ^2.4.0 + utility-types: ^3.10.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: ccfb0bef12178d0fbe3329a3238cd6bf7223ee03d890594676c06490eabfd59908bb1872c1a007f605db4edf402bc49cdf14aa7116550e95844d5135a92c2969 + languageName: node + linkType: hard + +"@docusaurus/theme-common@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/theme-common@npm:2.2.0" + dependencies: + "@docusaurus/mdx-loader": 2.2.0 + "@docusaurus/module-type-aliases": 2.2.0 + "@docusaurus/plugin-content-blog": 2.2.0 + "@docusaurus/plugin-content-docs": 2.2.0 + "@docusaurus/plugin-content-pages": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router-config": "*" + clsx: ^1.2.1 + parse-numeric-range: ^1.3.0 + prism-react-renderer: ^1.3.5 + tslib: ^2.4.0 + utility-types: ^3.10.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 23cbba8e7e24494c6d106ce3d0b90ef461580bfacef9f27dfbc4f0b33fcb349394faf2bedf0a44db8c455535e50e828e82270c8f159c3d8d60f0e0980170be4e + languageName: node + linkType: hard + +"@docusaurus/theme-search-algolia@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/theme-search-algolia@npm:2.2.0" + dependencies: + "@docsearch/react": ^3.1.1 + "@docusaurus/core": 2.2.0 + "@docusaurus/logger": 2.2.0 + "@docusaurus/plugin-content-docs": 2.2.0 + "@docusaurus/theme-common": 2.2.0 + "@docusaurus/theme-translations": 2.2.0 + "@docusaurus/utils": 2.2.0 + "@docusaurus/utils-validation": 2.2.0 + algoliasearch: ^4.13.1 + algoliasearch-helper: ^3.10.0 + clsx: ^1.2.1 + eta: ^1.12.3 + fs-extra: ^10.1.0 + lodash: ^4.17.21 + tslib: ^2.4.0 + utility-types: ^3.10.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 42b6cb0322d6c772b7796ea6e9693d596554ebd087792ad71238cebedf3b632bfa8005138d521bce1ff118f49aea7d72e5dc97a03f236b4728a2dc7576870071 + languageName: node + linkType: hard + +"@docusaurus/theme-translations@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/theme-translations@npm:2.2.0" + dependencies: + fs-extra: ^10.1.0 + tslib: ^2.4.0 + checksum: 7fe7d104fd094f2af2321986a86edef1eb8ab25415ea94ab1b242d08aec7627b3d5790001631621cd80c57c710714308aad5adfbf570cb74e0f01fda93b610be + languageName: node + linkType: hard + +"@docusaurus/types@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/types@npm:2.2.0" + dependencies: + "@types/history": ^4.7.11 + "@types/react": "*" + commander: ^5.1.0 + joi: ^17.6.0 + react-helmet-async: ^1.3.0 + utility-types: ^3.10.0 + webpack: ^5.73.0 + webpack-merge: ^5.8.0 + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + checksum: 5166ca49bb9333e4d733e4bf8d49d65e11ea6b39e4d8eecc24e1de24d61d2459c52dd8bd27362b66b03e41df96acf1a449145211b3bf0c5a59a987c77102e8f1 + languageName: node + linkType: hard + +"@docusaurus/utils-common@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/utils-common@npm:2.2.0" + dependencies: + tslib: ^2.4.0 + peerDependencies: + "@docusaurus/types": "*" + peerDependenciesMeta: + "@docusaurus/types": + optional: true + checksum: 05d23a2f82a1bc119e3ad6b37481c9bc984f62efd3a79046567216784b78fb20fe7452252d610bb4c063e4ded8a7ab7efa1dc9f9f228357c20b9f4729c7a0576 + languageName: node + linkType: hard + +"@docusaurus/utils-validation@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/utils-validation@npm:2.2.0" + dependencies: + "@docusaurus/logger": 2.2.0 + "@docusaurus/utils": 2.2.0 + joi: ^17.6.0 + js-yaml: ^4.1.0 + tslib: ^2.4.0 + checksum: a30e47cf84628950176cc02a121f31b200b46cdccf02e80d76f24b51b9d33fccee35c43047f507b8fb48deb38f863580ecbcdc1393718c6f3a14fcd40d5d1ab6 + languageName: node + linkType: hard + +"@docusaurus/utils@npm:2.2.0": + version: 2.2.0 + resolution: "@docusaurus/utils@npm:2.2.0" + dependencies: + "@docusaurus/logger": 2.2.0 + "@svgr/webpack": ^6.2.1 + file-loader: ^6.2.0 + fs-extra: ^10.1.0 + github-slugger: ^1.4.0 + globby: ^11.1.0 + gray-matter: ^4.0.3 + js-yaml: ^4.1.0 + lodash: ^4.17.21 + micromatch: ^4.0.5 + resolve-pathname: ^3.0.0 + shelljs: ^0.8.5 + tslib: ^2.4.0 + url-loader: ^4.1.1 + webpack: ^5.73.0 + peerDependencies: + "@docusaurus/types": "*" + peerDependenciesMeta: + "@docusaurus/types": + optional: true + checksum: d027a6d2417e043ac463402aadca22f1101f942daaf02330d9bb4743dcbe3bd2fd46d27dedf316fcf2b6698713fede974ba59eb5d4bc92c8959e23bc25e7a03a + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/babel-plugin@npm:11.11.0" @@ -4191,6 +6245,22 @@ __metadata: languageName: node linkType: hard +"@hapi/hoek@npm:^9.0.0": + version: 9.3.0 + resolution: "@hapi/hoek@npm:9.3.0" + checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43 + languageName: node + linkType: hard + +"@hapi/topo@npm:^5.0.0": + version: 5.1.0 + resolution: "@hapi/topo@npm:5.1.0" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014 + languageName: node + linkType: hard + "@hexagon/base64@npm:^1.1.25": version: 1.1.26 resolution: "@hexagon/base64@npm:1.1.26" @@ -4387,6 +6457,15 @@ __metadata: languageName: node linkType: hard +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + "@jest/source-map@npm:^27.5.1": version: 27.5.1 resolution: "@jest/source-map@npm:27.5.1" @@ -4458,6 +6537,20 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.1.0": version: 0.1.1 resolution: "@jridgewell/gen-mapping@npm:0.1.1" @@ -4503,6 +6596,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.5 + resolution: "@jridgewell/source-map@npm:0.3.5" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1ad4dec0bdafbade57920a50acec6634f88a0eb735851e0dda906fa9894e7f0549c492678aad1a10f8e144bfe87f238307bf2a914a1bc85b7781d345417e9f6f + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" @@ -4540,6 +6643,56 @@ __metadata: languageName: node linkType: hard +"@leichtgewicht/ip-codec@npm:^2.0.1": + version: 2.0.4 + resolution: "@leichtgewicht/ip-codec@npm:2.0.4" + checksum: 468de1f04d33de6d300892683d7c8aecbf96d1e2c5fe084f95f816e50a054d45b7c1ebfb141a1447d844b86a948733f6eebd92234da8581c84a1ad4de2946a2d + languageName: node + linkType: hard + +"@mdx-js/mdx@npm:^1.6.22": + version: 1.6.22 + resolution: "@mdx-js/mdx@npm:1.6.22" + dependencies: + "@babel/core": 7.12.9 + "@babel/plugin-syntax-jsx": 7.12.1 + "@babel/plugin-syntax-object-rest-spread": 7.8.3 + "@mdx-js/util": 1.6.22 + babel-plugin-apply-mdx-type-prop: 1.6.22 + babel-plugin-extract-import-names: 1.6.22 + camelcase-css: 2.0.1 + detab: 2.0.4 + hast-util-raw: 6.0.1 + lodash.uniq: 4.5.0 + mdast-util-to-hast: 10.0.1 + remark-footnotes: 2.0.0 + remark-mdx: 1.6.22 + remark-parse: 8.0.3 + remark-squeeze-paragraphs: 4.0.0 + style-to-object: 0.3.0 + unified: 9.2.0 + unist-builder: 2.0.3 + unist-util-visit: 2.0.3 + checksum: 0839b4a3899416326ea6578fe9e470af319da559bc6d3669c60942e456b49a98eebeb3358c623007b4786a2175a450d2c51cd59df64639013c5a3d22366931a6 + languageName: node + linkType: hard + +"@mdx-js/react@npm:^1.6.22": + version: 1.6.22 + resolution: "@mdx-js/react@npm:1.6.22" + peerDependencies: + react: ^16.13.1 || ^17.0.0 + checksum: bc84bd514bc127f898819a0c6f1a6915d9541011bd8aefa1fcc1c9bea8939f31051409e546bdec92babfa5b56092a16d05ef6d318304ac029299df5181dc94c8 + languageName: node + linkType: hard + +"@mdx-js/util@npm:1.6.22": + version: 1.6.22 + resolution: "@mdx-js/util@npm:1.6.22" + checksum: 4b393907e39a1a75214f0314bf72a0adfa5e5adffd050dd5efe9c055b8549481a3cfc9f308c16dfb33311daf3ff63added7d5fd1fe52db614c004f886e0e559a + languageName: node + linkType: hard + "@metamask/eth-sig-util@npm:^4.0.0": version: 4.0.1 resolution: "@metamask/eth-sig-util@npm:4.0.1" @@ -5549,6 +7702,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.20": + version: 1.0.0-next.24 + resolution: "@polka/url@npm:1.0.0-next.24" + checksum: 00baec4458ac86ca27edf7ce807ccfad97cd1d4b67bdedaf3401a9e755757588f3331e891290d1deea52d88df2bf2387caf8d94a6835b614d5b37b638a688273 + languageName: node + linkType: hard + "@popperjs/core@npm:^2.9.3": version: 2.11.8 resolution: "@popperjs/core@npm:2.11.8" @@ -6163,6 +8323,29 @@ __metadata: languageName: node linkType: hard +"@sideway/address@npm:^4.1.3": + version: 4.1.4 + resolution: "@sideway/address@npm:4.1.4" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: b9fca2a93ac2c975ba12e0a6d97853832fb1f4fb02393015e012b47fa916a75ca95102d77214b2a29a2784740df2407951af8c5dde054824c65577fd293c4cdb + languageName: node + linkType: hard + +"@sideway/formula@npm:^3.0.1": + version: 3.0.1 + resolution: "@sideway/formula@npm:3.0.1" + checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a + languageName: node + linkType: hard + +"@sideway/pinpoint@npm:^2.0.0": + version: 2.0.0 + resolution: "@sideway/pinpoint@npm:2.0.0" + checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 + languageName: node + linkType: hard + "@sigstore/protobuf-specs@npm:^0.1.0": version: 0.1.0 resolution: "@sigstore/protobuf-specs@npm:0.1.0" @@ -6217,6 +8400,13 @@ __metadata: languageName: node linkType: hard +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 + languageName: node + linkType: hard + "@sindresorhus/is@npm:^0.14.0": version: 0.14.0 resolution: "@sindresorhus/is@npm:0.14.0" @@ -6256,6 +8446,17 @@ __metadata: languageName: node linkType: hard +"@slorber/static-site-generator-webpack-plugin@npm:^4.0.7": + version: 4.0.7 + resolution: "@slorber/static-site-generator-webpack-plugin@npm:4.0.7" + dependencies: + eval: ^0.1.8 + p-map: ^4.0.0 + webpack-sources: ^3.2.2 + checksum: a1e1d8b22dd51059524993f3fdd6861db10eb950debc389e5dd650702287fa2004eace03e6bc8f25b977bd7bc01d76a50aa271cbb73c58a8ec558945d728f307 + languageName: node + linkType: hard + "@solidity-parser/parser@npm:^0.14.0, @solidity-parser/parser@npm:^0.14.1": version: 0.14.3 resolution: "@solidity-parser/parser@npm:0.14.3" @@ -6286,6 +8487,293 @@ __metadata: languageName: node linkType: hard +"@svgr/babel-plugin-add-jsx-attribute@npm:^5.4.0": + version: 5.4.0 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:5.4.0" + checksum: 1c538cf312b486598c6aea17f9b72d7fc308eb5dd32effd804630206a185493b8a828ff980ceb29d57d8319c085614c7cea967be709c71ae77702a4c30037011 + languageName: node + linkType: hard + +"@svgr/babel-plugin-add-jsx-attribute@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cab83832830a57735329ed68f67c03b57ca21fa037b0134847b0c5c0ef4beca89956d7dacfbf7b2a10fd901e7009e877512086db2ee918b8c69aee7742ae32c0 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-attribute@npm:*": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-attribute@npm:^5.4.0": + version: 5.4.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:5.4.0" + checksum: ad2231bfcb14daa944201df66236c222cde05a07c4cffaecab1d36d33f606b6caf17bda21844fc435780c1a27195e49beb8397536fe5e7545dfffcfbbcecb7f8 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:*": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:^5.0.1": + version: 5.0.1 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:5.0.1" + checksum: 175c8f13ddcb0744f7c3910ebed3799cfb961a75bff130e1ed2071c87ca8b8df8964825c988e511b2e3c5dbf48ad3d4fbbb6989edc53294253df40cf2a24375e + languageName: node + linkType: hard + +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^5.0.1": + version: 5.0.1 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:5.0.1" + checksum: 68f4e2a5b95eca44e22fce485dc2ddd10adabe2b38f6db3ef9071b35e84bf379685f7acab6c05b7a82f722328c02f6424f8252c6dd5c2c4ed2f00104072b1dfe + languageName: node + linkType: hard + +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b7d2125758e766e1ebd14b92216b800bdc976959bc696dbfa1e28682919147c1df4bb8b1b5fd037d7a83026e27e681fea3b8d3741af8d3cf4c9dfa3d412125df + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-dynamic-title@npm:^5.4.0": + version: 5.4.0 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:5.4.0" + checksum: c46feb52454acea32031d1d881a81334f2e5f838ed25a2d9014acb5e9541d404405911e86dbee8bee9f1e43c9e07118123a07dc297962dbed0c4c5a86bdc4be9 + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-dynamic-title@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fd42ebf127ae9163ef341e84972daa99bdcb9e6ed3f83aabd95ee173fddc43e40e02fa847fbc0a1058cf5549f72b7960a2c5e22c3e4ac18f7e3ac81277852ae + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-em-dimensions@npm:^5.4.0": + version: 5.4.0 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:5.4.0" + checksum: 0d19b26147bbba932bd973258dab4a80a7ea6b9d674713186f0e10fa21a9e3aa4327326b2bf1892e8051712bce0ea30561eb187ca27bb241d33c350cea51ac88 + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-em-dimensions@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c1550ee9f548526fa66fd171e3ffb5696bfc4e4cd108a631d39db492c7410dc10bba4eb5a190e9df824bf806130ccc586ae7d2e43c547e6a4f93bbb29a18f344 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-react-native-svg@npm:^5.4.0": + version: 5.4.0 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:5.4.0" + checksum: 8ac5dc9fb2dee24addc74dbcb169860c95a69247606f986eabb0618fb300dd08e8f220891b758e62c051428ba04d8dd50f2c2bf877e15fa190e6d384d1ccd2ad + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-react-native-svg@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4c924af22b948b812629e80efb90ad1ec8faae26a232d8ca8a06b46b53e966a2c415a57806a3ff0ea806a622612e546422719b69ec6839717a7755dac19171d9 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-svg-component@npm:^5.5.0": + version: 5.5.0 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:5.5.0" + checksum: 94c3fed490deb8544af4ea32a5d78a840334cdcc8a5a33fe8ea9f1c220a4d714d57c9e10934492de99b7e1acc17963b1749a49927e27b1e839a4dc3c893605c7 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-svg-component@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e496bb5ee871feb6bcab250b6e067322da7dd5c9c2b530b41e5586fe090f86611339b49d0a909c334d9b24cbca0fa755c949a2526c6ad03c6b5885666874cf5f + languageName: node + linkType: hard + +"@svgr/babel-preset@npm:^5.5.0": + version: 5.5.0 + resolution: "@svgr/babel-preset@npm:5.5.0" + dependencies: + "@svgr/babel-plugin-add-jsx-attribute": ^5.4.0 + "@svgr/babel-plugin-remove-jsx-attribute": ^5.4.0 + "@svgr/babel-plugin-remove-jsx-empty-expression": ^5.0.1 + "@svgr/babel-plugin-replace-jsx-attribute-value": ^5.0.1 + "@svgr/babel-plugin-svg-dynamic-title": ^5.4.0 + "@svgr/babel-plugin-svg-em-dimensions": ^5.4.0 + "@svgr/babel-plugin-transform-react-native-svg": ^5.4.0 + "@svgr/babel-plugin-transform-svg-component": ^5.5.0 + checksum: 5d396c4499c9ff2df9db6d08a160d10386b9f459cb9c2bb5ee183ab03b2f46c8ef3c9a070f1eee93f4e4433a5f00704e7632b1386078eb697ad8a2b38edb8522 + languageName: node + linkType: hard + +"@svgr/babel-preset@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-preset@npm:6.5.1" + dependencies: + "@svgr/babel-plugin-add-jsx-attribute": ^6.5.1 + "@svgr/babel-plugin-remove-jsx-attribute": "*" + "@svgr/babel-plugin-remove-jsx-empty-expression": "*" + "@svgr/babel-plugin-replace-jsx-attribute-value": ^6.5.1 + "@svgr/babel-plugin-svg-dynamic-title": ^6.5.1 + "@svgr/babel-plugin-svg-em-dimensions": ^6.5.1 + "@svgr/babel-plugin-transform-react-native-svg": ^6.5.1 + "@svgr/babel-plugin-transform-svg-component": ^6.5.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9f124be39a8e64f909162f925b3a63ddaa5a342a5e24fc0b7f7d9d4d7f7e3b916596c754fb557dc259928399cad5366a27cb231627a0d2dcc4b13ac521cf05af + languageName: node + linkType: hard + +"@svgr/core@npm:^5.5.0": + version: 5.5.0 + resolution: "@svgr/core@npm:5.5.0" + dependencies: + "@svgr/plugin-jsx": ^5.5.0 + camelcase: ^6.2.0 + cosmiconfig: ^7.0.0 + checksum: 39b230151e30b9ca8551d10674e50efb821d1a49ce10969b09587af130780eba581baa1e321b0922f48331943096f05590aa6ae92d88d011d58093a89dd34158 + languageName: node + linkType: hard + +"@svgr/core@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/core@npm:6.5.1" + dependencies: + "@babel/core": ^7.19.6 + "@svgr/babel-preset": ^6.5.1 + "@svgr/plugin-jsx": ^6.5.1 + camelcase: ^6.2.0 + cosmiconfig: ^7.0.1 + checksum: fd6d6d5da5aeb956703310480b626c1fb3e3973ad9fe8025efc1dcf3d895f857b70d100c63cf32cebb20eb83c9607bafa464c9436e18fe6fe4fafdc73ed6b1a5 + languageName: node + linkType: hard + +"@svgr/hast-util-to-babel-ast@npm:^5.5.0": + version: 5.5.0 + resolution: "@svgr/hast-util-to-babel-ast@npm:5.5.0" + dependencies: + "@babel/types": ^7.12.6 + checksum: a03c1c7ab92b1a6dbd7671b0b78df4c07e8d808ff092671554a78752ec0c0425c03b6c82569a5f33903d191c73379eedf631f23aeb30b7a70185f5f2fc67fae6 + languageName: node + linkType: hard + +"@svgr/hast-util-to-babel-ast@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/hast-util-to-babel-ast@npm:6.5.1" + dependencies: + "@babel/types": ^7.20.0 + entities: ^4.4.0 + checksum: 37923cce1b3f4e2039077b0c570b6edbabe37d1cf1a6ee35e71e0fe00f9cffac450eec45e9720b1010418131a999cb0047331ba1b6d1d2c69af1b92ac785aacf + languageName: node + linkType: hard + +"@svgr/plugin-jsx@npm:^5.5.0": + version: 5.5.0 + resolution: "@svgr/plugin-jsx@npm:5.5.0" + dependencies: + "@babel/core": ^7.12.3 + "@svgr/babel-preset": ^5.5.0 + "@svgr/hast-util-to-babel-ast": ^5.5.0 + svg-parser: ^2.0.2 + checksum: e053f8dd6bfcd72377b432dd5b1db3c89d503d29839639a87f85b597a680d0b69e33a4db376f5a1074a89615f7157cd36f63f94bdb4083a0fd5bbe918c7fcb9b + languageName: node + linkType: hard + +"@svgr/plugin-jsx@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/plugin-jsx@npm:6.5.1" + dependencies: + "@babel/core": ^7.19.6 + "@svgr/babel-preset": ^6.5.1 + "@svgr/hast-util-to-babel-ast": ^6.5.1 + svg-parser: ^2.0.4 + peerDependencies: + "@svgr/core": ^6.0.0 + checksum: 42f22847a6bdf930514d7bedd3c5e1fd8d53eb3594779f9db16cb94c762425907c375cd8ec789114e100a4d38068aca6c7ab5efea4c612fba63f0630c44cc859 + languageName: node + linkType: hard + +"@svgr/plugin-svgo@npm:^5.5.0": + version: 5.5.0 + resolution: "@svgr/plugin-svgo@npm:5.5.0" + dependencies: + cosmiconfig: ^7.0.0 + deepmerge: ^4.2.2 + svgo: ^1.2.2 + checksum: bef5d09581349afdf654209f82199670649cc749b81ff5f310ce4a3bbad749cde877c9b1a711dd9ced51224e2b5b5a720d242bdf183fa0f83e08e8d5e069b0b6 + languageName: node + linkType: hard + +"@svgr/plugin-svgo@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/plugin-svgo@npm:6.5.1" + dependencies: + cosmiconfig: ^7.0.1 + deepmerge: ^4.2.2 + svgo: ^2.8.0 + peerDependencies: + "@svgr/core": "*" + checksum: cd2833530ac0485221adc2146fd992ab20d79f4b12eebcd45fa859721dd779483158e11dfd9a534858fe468416b9412416e25cbe07ac7932c44ed5fa2021c72e + languageName: node + linkType: hard + +"@svgr/webpack@npm:^5.5.0": + version: 5.5.0 + resolution: "@svgr/webpack@npm:5.5.0" + dependencies: + "@babel/core": ^7.12.3 + "@babel/plugin-transform-react-constant-elements": ^7.12.1 + "@babel/preset-env": ^7.12.1 + "@babel/preset-react": ^7.12.5 + "@svgr/core": ^5.5.0 + "@svgr/plugin-jsx": ^5.5.0 + "@svgr/plugin-svgo": ^5.5.0 + loader-utils: ^2.0.0 + checksum: 540391bd63791625d26d6b5e0dd3c716ef51176bfba53bf0979a1ac4781afd2672f4bef2d76cf3d9cdc8e9ee61bda6863ed405a237b10406633ede4cd524f1cc + languageName: node + linkType: hard + +"@svgr/webpack@npm:^6.2.1": + version: 6.5.1 + resolution: "@svgr/webpack@npm:6.5.1" + dependencies: + "@babel/core": ^7.19.6 + "@babel/plugin-transform-react-constant-elements": ^7.18.12 + "@babel/preset-env": ^7.19.4 + "@babel/preset-react": ^7.18.6 + "@babel/preset-typescript": ^7.18.6 + "@svgr/core": ^6.5.1 + "@svgr/plugin-jsx": ^6.5.1 + "@svgr/plugin-svgo": ^6.5.1 + checksum: d10582eb4fa82a5b6d314cb49f2c640af4fd3a60f5b76095d2b14e383ef6a43a6f4674b68774a21787dbde69dec0a251cfcfc3f9a96c82754ba5d5c6daf785f0 + languageName: node + linkType: hard + "@swc/helpers@npm:0.4.11": version: 0.4.11 resolution: "@swc/helpers@npm:0.4.11" @@ -6375,6 +8863,20 @@ __metadata: languageName: node linkType: hard +"@trysound/sax@npm:0.2.0": + version: 0.2.0 + resolution: "@trysound/sax@npm:0.2.0" + checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c + languageName: node + linkType: hard + +"@tsconfig/docusaurus@npm:^1.0.6": + version: 1.0.7 + resolution: "@tsconfig/docusaurus@npm:1.0.7" + checksum: 8f5b14005d90b2008f10daf03a5edec86d2a7603e5641c579ea936a5c2d165a8c3007a72254fc4c2adb0554d73062f52bb97b30ff818f01c9215957822f3c4db + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -6511,6 +9013,25 @@ __metadata: languageName: node linkType: hard +"@types/body-parser@npm:*": + version: 1.19.5 + resolution: "@types/body-parser@npm:1.19.5" + dependencies: + "@types/connect": "*" + "@types/node": "*" + checksum: 1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 + languageName: node + linkType: hard + +"@types/bonjour@npm:^3.5.9": + version: 3.5.13 + resolution: "@types/bonjour@npm:3.5.13" + dependencies: + "@types/node": "*" + checksum: e827570e097bd7d625a673c9c208af2d1a22fa3885c0a1646533cf24394c839c3e5f60ac1bc60c0ddcc69c0615078c9fb2c01b42596c7c582d895d974f2409ee + languageName: node + linkType: hard + "@types/cacheable-request@npm:^6.0.1, @types/cacheable-request@npm:^6.0.2": version: 6.0.3 resolution: "@types/cacheable-request@npm:6.0.3" @@ -6569,6 +9090,25 @@ __metadata: languageName: node linkType: hard +"@types/connect-history-api-fallback@npm:^1.3.5": + version: 1.5.4 + resolution: "@types/connect-history-api-fallback@npm:1.5.4" + dependencies: + "@types/express-serve-static-core": "*" + "@types/node": "*" + checksum: e1dee43b8570ffac02d2d47a2b4ba80d3ca0dd1840632dafb221da199e59dbe3778d3d7303c9e23c6b401f37c076935a5bc2aeae1c4e5feaefe1c371fe2073fd + languageName: node + linkType: hard + +"@types/connect@npm:*": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "*" + checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 + languageName: node + linkType: hard + "@types/debug@npm:^4.1.7": version: 4.1.7 resolution: "@types/debug@npm:4.1.7" @@ -6598,6 +9138,26 @@ __metadata: languageName: node linkType: hard +"@types/eslint-scope@npm:^3.7.3": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "*" + "@types/estree": "*" + checksum: e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 8.44.9 + resolution: "@types/eslint@npm:8.44.9" + dependencies: + "@types/estree": "*" + "@types/json-schema": "*" + checksum: 6f8889e94e67a5e43c15f5a2530798f864ace08c270bfb3f153cb705da4e30a80e0e9a0fc05317c8642c8dda909d528968172089eb4d52aca9f212761df25d90 + languageName: node + linkType: hard + "@types/estree@npm:*, @types/estree@npm:^1.0.0": version: 1.0.0 resolution: "@types/estree@npm:1.0.0" @@ -6612,6 +9172,30 @@ __metadata: languageName: node linkType: hard +"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33": + version: 4.17.41 + resolution: "@types/express-serve-static-core@npm:4.17.41" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: 12750f6511dd870bbaccfb8208ad1e79361cf197b147f62a3bedc19ec642f3a0f9926ace96705f4bc88ec2ae56f61f7ca8c2438e6b22f5540842b5569c28a121 + languageName: node + linkType: hard + +"@types/express@npm:*, @types/express@npm:^4.17.13": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^4.17.33 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 + languageName: node + linkType: hard + "@types/figlet@npm:^1.5.5": version: 1.5.5 resolution: "@types/figlet@npm:1.5.5" @@ -6677,6 +9261,20 @@ __metadata: languageName: node linkType: hard +"@types/history@npm:^4.7.11": + version: 4.7.11 + resolution: "@types/history@npm:4.7.11" + checksum: c92e2ba407dcab0581a9afdf98f533aa41b61a71133420a6d92b1ca9839f741ab1f9395b17454ba5b88cb86020b70b22d74a1950ccfbdfd9beeaa5459fdc3464 + languageName: node + linkType: hard + +"@types/html-minifier-terser@npm:^6.0.0": + version: 6.1.0 + resolution: "@types/html-minifier-terser@npm:6.1.0" + checksum: eb843f6a8d662d44fb18ec61041117734c6aae77aa38df1be3b4712e8e50ffaa35f1e1c92fdd0fde14a5675fecf457abcd0d15a01fae7506c91926176967f452 + languageName: node + linkType: hard + "@types/http-cache-semantics@npm:*": version: 4.0.1 resolution: "@types/http-cache-semantics@npm:4.0.1" @@ -6684,6 +9282,22 @@ __metadata: languageName: node linkType: hard +"@types/http-errors@npm:*": + version: 2.0.4 + resolution: "@types/http-errors@npm:2.0.4" + checksum: 1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 + languageName: node + linkType: hard + +"@types/http-proxy@npm:^1.17.8": + version: 1.17.14 + resolution: "@types/http-proxy@npm:1.17.14" + dependencies: + "@types/node": "*" + checksum: 491320bce3565bbb6c7d39d25b54bce626237cfb6b09e60ee7f77b56ae7c6cbad76f08d47fe01eaa706781124ee3dfad9bb737049254491efd98ed1f014c4e83 + languageName: node + linkType: hard + "@types/inquirer@npm:^9.0.3": version: 9.0.3 resolution: "@types/inquirer@npm:9.0.3" @@ -6729,6 +9343,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" @@ -6775,6 +9396,29 @@ __metadata: languageName: node linkType: hard +"@types/mdast@npm:^3.0.0": + version: 3.0.15 + resolution: "@types/mdast@npm:3.0.15" + dependencies: + "@types/unist": ^2 + checksum: af85042a4e3af3f879bde4059fa9e76c71cb552dffc896cdcc6cf9dc1fd38e37035c2dbd6245cfa6535b433f1f0478f5549696234ccace47a64055a10c656530 + languageName: node + linkType: hard + +"@types/mime@npm:*": + version: 3.0.4 + resolution: "@types/mime@npm:3.0.4" + checksum: a6139c8e1f705ef2b064d072f6edc01f3c099023ad7c4fce2afc6c2bf0231888202adadbdb48643e8e20da0ce409481a49922e737eca52871b3dc08017455843 + languageName: node + linkType: hard + +"@types/mime@npm:^1": + version: 1.3.5 + resolution: "@types/mime@npm:1.3.5" + checksum: e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 + languageName: node + linkType: hard + "@types/minimatch@npm:*, @types/minimatch@npm:^5.1.2": version: 5.1.2 resolution: "@types/minimatch@npm:5.1.2" @@ -6812,6 +9456,15 @@ __metadata: languageName: node linkType: hard +"@types/node-forge@npm:^1.3.0": + version: 1.3.10 + resolution: "@types/node-forge@npm:1.3.10" + dependencies: + "@types/node": "*" + checksum: 363af42c83956c7e2483a71e398a02101ef6a55b4d86386c276315ca98bad02d6050b99fdbe13debcd1bcda250086b4a5b5c15a6fb2953d32420d269865ca7f8 + languageName: node + linkType: hard + "@types/node@npm:*, @types/node@npm:>=12": version: 18.15.11 resolution: "@types/node@npm:18.15.11" @@ -6840,7 +9493,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^17.0.12, @types/node@npm:^17.0.9": +"@types/node@npm:^17.0.12, @types/node@npm:^17.0.5, @types/node@npm:^17.0.9": version: 17.0.45 resolution: "@types/node@npm:17.0.45" checksum: aa04366b9103b7d6cfd6b2ef64182e0eaa7d4462c3f817618486ea0422984c51fc69fd0d436eae6c9e696ddfdbec9ccaa27a917f7c2e8c75c5d57827fe3d95e8 @@ -6923,6 +9576,13 @@ __metadata: languageName: node linkType: hard +"@types/parse5@npm:^5.0.0": + version: 5.0.3 + resolution: "@types/parse5@npm:5.0.3" + checksum: d6b7495cb1850f9f2e9c5e103ede9f2d30a5320669707b105c403868adc9e4bf8d3a7ff314cc23f67826bbbbbc0e6147346ce9062ab429f099dba7a01f463919 + languageName: node + linkType: hard + "@types/pbkdf2@npm:^3.0.0": version: 3.1.0 resolution: "@types/pbkdf2@npm:3.1.0" @@ -6946,6 +9606,20 @@ __metadata: languageName: node linkType: hard +"@types/q@npm:^1.5.1": + version: 1.5.8 + resolution: "@types/q@npm:1.5.8" + checksum: ff3b7f09c2746d068dee8d39501f09dbf71728c4facdc9cb0e266ea6615ad97e61267c0606ab3da88d11ef1609ce904cef45a9c56b2b397f742388d7f15bb740 + languageName: node + linkType: hard + +"@types/qs@npm:*": + version: 6.9.10 + resolution: "@types/qs@npm:6.9.10" + checksum: 3e479ee056bd2b60894baa119d12ecd33f20a25231b836af04654e784c886f28a356477630430152a86fba253da65d7ecd18acffbc2a8877a336e75aa0272c67 + languageName: node + linkType: hard + "@types/qs@npm:^6.2.31": version: 6.9.7 resolution: "@types/qs@npm:6.9.7" @@ -6953,6 +9627,13 @@ __metadata: languageName: node linkType: hard +"@types/range-parser@npm:*": + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a + languageName: node + linkType: hard + "@types/react-dom@npm:18.0.8": version: 18.0.8 resolution: "@types/react-dom@npm:18.0.8" @@ -6971,6 +9652,47 @@ __metadata: languageName: node linkType: hard +"@types/react-helmet@npm:^6.1.2": + version: 6.1.11 + resolution: "@types/react-helmet@npm:6.1.11" + dependencies: + "@types/react": "*" + checksum: e329d8ad82c365fec7dd7d91c8b6d167faac30cef0d9f1e27d7e895172a0ebfa65829fb4acabbe79283b01cbbe5840a845caeb50148ceef6f3fad42b3c2c4bdc + languageName: node + linkType: hard + +"@types/react-router-config@npm:*, @types/react-router-config@npm:^5.0.6": + version: 5.0.11 + resolution: "@types/react-router-config@npm:5.0.11" + dependencies: + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router": ^5.1.0 + checksum: 4b72d9b71e0576e193c11e5085bbdac43f31debfa3b6ebc24666f3d646ef25c1f57f16c29b1ddd3051c881e85f8e0d4ab5a7bbd5fc215b9377f57675b210be7c + languageName: node + linkType: hard + +"@types/react-router-dom@npm:*, @types/react-router-dom@npm:^5.1.8": + version: 5.3.3 + resolution: "@types/react-router-dom@npm:5.3.3" + dependencies: + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router": "*" + checksum: 28c4ea48909803c414bf5a08502acbb8ba414669b4b43bb51297c05fe5addc4df0b8fd00e0a9d1e3535ec4073ef38aaafac2c4a2b95b787167d113bc059beff3 + languageName: node + linkType: hard + +"@types/react-router@npm:*, @types/react-router@npm:^5.1.0": + version: 5.1.20 + resolution: "@types/react-router@npm:5.1.20" + dependencies: + "@types/history": ^4.7.11 + "@types/react": "*" + checksum: 128764143473a5e9457ddc715436b5d49814b1c214dde48939b9bef23f0e77f52ffcdfa97eb8d3cc27e2c229869c0cdd90f637d887b62f2c9f065a87d6425419 + languageName: node + linkType: hard + "@types/react-syntax-highlighter@npm:^15.5.7": version: 15.5.9 resolution: "@types/react-syntax-highlighter@npm:15.5.9" @@ -7002,6 +9724,17 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:^17.0.14": + version: 17.0.73 + resolution: "@types/react@npm:17.0.73" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 08107645acdd734c8ddb4d26f1b43dfa0d75f7a8d268eaacb897337e103eaa620fe8c3c6972dab9860aaa47bbee1da587cf06b11bb4e655588e38485daf48a6c + languageName: node + linkType: hard + "@types/react@npm:^18": version: 18.2.28 resolution: "@types/react@npm:18.2.28" @@ -7038,6 +9771,13 @@ __metadata: languageName: node linkType: hard +"@types/retry@npm:0.12.0": + version: 0.12.0 + resolution: "@types/retry@npm:0.12.0" + checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603 + languageName: node + linkType: hard + "@types/rimraf@npm:^3.0.2": version: 3.0.2 resolution: "@types/rimraf@npm:3.0.2" @@ -7048,6 +9788,15 @@ __metadata: languageName: node linkType: hard +"@types/sax@npm:^1.2.1": + version: 1.2.7 + resolution: "@types/sax@npm:1.2.7" + dependencies: + "@types/node": "*" + checksum: 7ece5fbb5d9c8fc76ab0de2f99d705edf92f18e701d4f9d9b0647275e32eb65e656c1badf9dfaa12f4e1ff3e250561c8c9cfe79e8b5f33dd1417ac0f1804f6cc + languageName: node + linkType: hard + "@types/scheduler@npm:*": version: 0.16.3 resolution: "@types/scheduler@npm:0.16.3" @@ -7071,6 +9820,36 @@ __metadata: languageName: node linkType: hard +"@types/send@npm:*": + version: 0.17.4 + resolution: "@types/send@npm:0.17.4" + dependencies: + "@types/mime": ^1 + "@types/node": "*" + checksum: cf4db48251bbb03cd6452b4de6e8e09e2d75390a92fd798eca4a803df06444adc94ed050246c94c7ed46fb97be1f63607f0e1f13c3ce83d71788b3e08640e5e0 + languageName: node + linkType: hard + +"@types/serve-index@npm:^1.9.1": + version: 1.9.4 + resolution: "@types/serve-index@npm:1.9.4" + dependencies: + "@types/express": "*" + checksum: 72727c88d54da5b13275ebfb75dcdc4aa12417bbe9da1939e017c4c5f0c906fae843aa4e0fbfe360e7ee9df2f3d388c21abfc488f77ce58693fb57809f8ded92 + languageName: node + linkType: hard + +"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": + version: 1.15.5 + resolution: "@types/serve-static@npm:1.15.5" + dependencies: + "@types/http-errors": "*" + "@types/mime": "*" + "@types/node": "*" + checksum: 0ff4b3703cf20ba89c9f9e345bc38417860a88e85863c8d6fe274a543220ab7f5f647d307c60a71bb57dc9559f0890a661e8dc771a6ec5ef195d91c8afc4a893 + languageName: node + linkType: hard + "@types/snarkjs@npm:^0.7.5": version: 0.7.5 resolution: "@types/snarkjs@npm:0.7.5" @@ -7078,6 +9857,15 @@ __metadata: languageName: node linkType: hard +"@types/sockjs@npm:^0.3.33": + version: 0.3.36 + resolution: "@types/sockjs@npm:0.3.36" + dependencies: + "@types/node": "*" + checksum: b4b5381122465d80ea8b158537c00bc82317222d3fb31fd7229ff25b31fa89134abfbab969118da55622236bf3d8fee75759f3959908b5688991f492008f29bc + languageName: node + linkType: hard + "@types/ssri@npm:*": version: 7.1.1 resolution: "@types/ssri@npm:7.1.1" @@ -7131,6 +9919,22 @@ __metadata: languageName: node linkType: hard +"@types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2, @types/unist@npm:^2.0.3": + version: 2.0.10 + resolution: "@types/unist@npm:2.0.10" + checksum: e2924e18dedf45f68a5c6ccd6015cd62f1643b1b43baac1854efa21ae9e70505db94290434a23da1137d9e31eb58e54ca175982005698ac37300a1c889f6c4aa + languageName: node + linkType: hard + +"@types/ws@npm:^8.5.5": + version: 8.5.10 + resolution: "@types/ws@npm:8.5.10" + dependencies: + "@types/node": "*" + checksum: 3ec416ea2be24042ebd677932a462cf16d2080393d8d7d0b1b3f5d6eaa4a7387aaf0eefb99193c0bfd29444857cf2e0c3ac89899e130550dc6c14ada8a46d25e + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -7147,6 +9951,15 @@ __metadata: languageName: node linkType: hard +"@types/yargs@npm:^17.0.8": + version: 17.0.32 + resolution: "@types/yargs@npm:17.0.32" + dependencies: + "@types/yargs-parser": "*" + checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.9.1": version: 5.57.1 resolution: "@typescript-eslint/eslint-plugin@npm:5.57.1" @@ -7279,6 +10092,171 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/ast@npm:1.11.6" + dependencies: + "@webassemblyjs/helper-numbers": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf + languageName: node + linkType: hard + +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" + checksum: b14d0573bf680d22b2522e8a341ec451fddd645d1f9c6bd9012ccb7e587a2973b86ab7b89fe91e1c79939ba96095f503af04369a3b356c8023c13a5893221644 + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" + dependencies: + "@webassemblyjs/floating-point-hex-parser": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@xtuc/long": 4.2.2 + checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-section@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + checksum: b2cf751bf4552b5b9999d27bbb7692d0aca75260140195cb58ea6374d7b9c2dc69b61e10b211a0e773f66209c3ddd612137ed66097e3684d7816f854997682e9 + languageName: node + linkType: hard + +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" + dependencies: + "@xtuc/ieee754": ^1.2.0 + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de + languageName: node + linkType: hard + +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" + dependencies: + "@xtuc/long": 4.2.2 + checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 + languageName: node + linkType: hard + +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/helper-wasm-section": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-opt": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + "@webassemblyjs/wast-printer": 1.11.6 + checksum: 29ce75870496d6fad864d815ebb072395a8a3a04dc9c3f4e1ffdc63fc5fa58b1f34304a1117296d8240054cfdbc38aca88e71fb51483cf29ffab0a61ef27b481 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: a645a2eecbea24833c3260a249704a7f554ef4a94c6000984728e94bb2bc9140a68dfd6fd21d5e0bbb09f6dfc98e083a45760a83ae0417b41a0196ff6d45a23a + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + checksum: b4557f195487f8e97336ddf79f7bef40d788239169aac707f6eaa2fa5fe243557c2d74e550a8e57f2788e70c7ae4e7d32f7be16101afe183d597b747a3bdd528 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 8200a8d77c15621724a23fdabe58d5571415cda98a7058f542e670ea965dd75499f5e34a48675184947c66f3df23adf55df060312e6d72d57908e3f049620d8a + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wast-printer@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@xtuc/long": 4.2.2 + checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 + languageName: node + linkType: hard + +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: ac56d4ca6e17790f1b1677f978c0c6808b1900a5b138885d3da21732f62e30e8f0d9120fcf8f6edfff5100ca902b46f8dd7c1e3f903728634523981e80e2885a + languageName: node + linkType: hard + +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 8ed0d477ce3bc9c6fe2bf6a6a2cc316bb9c4127c5a7827bae947fa8ec34c7092395c5a283cc300c05b5fa01cbbfa1f938f410a7bf75db7c7846fea41949989ec + languageName: node + linkType: hard + "@yarn-tool/resolve-package@npm:^1.0.40": version: 1.0.47 resolution: "@yarn-tool/resolve-package@npm:1.0.47" @@ -7408,7 +10386,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.8": +"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -7428,6 +10406,15 @@ __metadata: languageName: node linkType: hard +"acorn-import-assertions@npm:^1.9.0": + version: 1.9.0 + resolution: "acorn-import-assertions@npm:1.9.0" + peerDependencies: + acorn: ^8 + checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c + languageName: node + linkType: hard + "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -7444,6 +10431,13 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^8.0.0": + version: 8.3.1 + resolution: "acorn-walk@npm:8.3.1" + checksum: 5c8926ddb5400bc825b6baca782931f9df4ace603ba1a517f5243290fd9cdb089d52877840687b5d5c939591ebc314e2e63721514feaa37c6829c828f2b940ce + languageName: node + linkType: hard + "acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" @@ -7460,6 +10454,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.0.4, acorn@npm:^8.7.1": + version: 8.11.2 + resolution: "acorn@npm:8.11.2" + bin: + acorn: bin/acorn + checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 + languageName: node + linkType: hard + "acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.8.0": version: 8.8.0 resolution: "acorn@npm:8.8.0" @@ -7478,7 +10481,7 @@ __metadata: languageName: node linkType: hard -"address@npm:^1.0.1": +"address@npm:^1.0.1, address@npm:^1.1.2": version: 1.2.2 resolution: "address@npm:1.2.2" checksum: ace439960c1e3564d8f523aff23a841904bf33a2a7c2e064f7f60a064194075758b9690e65bd9785692a4ef698a998c57eb74d145881a1cecab8ba658ddb1607 @@ -7529,7 +10532,21 @@ __metadata: languageName: node linkType: hard -"ajv-keywords@npm:^3.5.2": +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 + languageName: node + linkType: hard + +"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" peerDependencies: @@ -7538,7 +10555,18 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:^6.12.6": +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: ^3.1.3 + peerDependencies: + ajv: ^8.8.2 + checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 + languageName: node + linkType: hard + +"ajv@npm:^6.10.0, ajv@npm:^6.12.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:^6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -7550,7 +10578,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.1, ajv@npm:^8.11.0, ajv@npm:^8.6.0": +"ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.11.0, ajv@npm:^8.6.0, ajv@npm:^8.9.0": version: 8.12.0 resolution: "ajv@npm:8.12.0" dependencies: @@ -7562,6 +10590,39 @@ __metadata: languageName: node linkType: hard +"algoliasearch-helper@npm:^3.10.0": + version: 3.16.1 + resolution: "algoliasearch-helper@npm:3.16.1" + dependencies: + "@algolia/events": ^4.0.1 + peerDependencies: + algoliasearch: ">= 3.1 < 6" + checksum: 3aee78b786d6eaa5f14ccf9565c358de88d81b17feef6b28b976b1416ff990ac4e01f2c39ba146601103d23b596d7517399c155ea3ca518bd89b5d9b522c92df + languageName: node + linkType: hard + +"algoliasearch@npm:^4.13.1, algoliasearch@npm:^4.19.1": + version: 4.22.0 + resolution: "algoliasearch@npm:4.22.0" + dependencies: + "@algolia/cache-browser-local-storage": 4.22.0 + "@algolia/cache-common": 4.22.0 + "@algolia/cache-in-memory": 4.22.0 + "@algolia/client-account": 4.22.0 + "@algolia/client-analytics": 4.22.0 + "@algolia/client-common": 4.22.0 + "@algolia/client-personalization": 4.22.0 + "@algolia/client-search": 4.22.0 + "@algolia/logger-common": 4.22.0 + "@algolia/logger-console": 4.22.0 + "@algolia/requester-browser-xhr": 4.22.0 + "@algolia/requester-common": 4.22.0 + "@algolia/requester-node-http": 4.22.0 + "@algolia/transporter": 4.22.0 + checksum: 5b8eb3e3d34a8aac1b4ac87465661c0a75a150e711536bb1473a8c21486a4e0523dcf81302c11558a212991d82bb8c8ec32db6a578f490f3e71cd4945b37702a + languageName: node + linkType: hard + "amdefine@npm:>=0.0.4": version: 1.0.1 resolution: "amdefine@npm:1.0.1" @@ -7569,7 +10630,7 @@ __metadata: languageName: node linkType: hard -"ansi-align@npm:^3.0.1": +"ansi-align@npm:^3.0.0, ansi-align@npm:^3.0.1": version: 3.0.1 resolution: "ansi-align@npm:3.0.1" dependencies: @@ -7617,6 +10678,15 @@ __metadata: languageName: node linkType: hard +"ansi-html-community@npm:^0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" + bin: + ansi-html: bin/ansi-html + checksum: 04c568e8348a636963f915e48eaa3e01218322e1169acafdd79c384f22e5558c003f79bbc480c1563865497482817c7eed025f0653ebc17642fededa5cb42089 + languageName: node + linkType: hard + "ansi-regex@npm:^3.0.0": version: 3.0.1 resolution: "ansi-regex@npm:3.0.1" @@ -7743,6 +10813,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:^5.0.0": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -7808,6 +10885,13 @@ __metadata: languageName: node linkType: hard +"array-flatten@npm:^2.1.2": + version: 2.1.2 + resolution: "array-flatten@npm:2.1.2" + checksum: e8988aac1fbfcdaae343d08c9a06a6fddd2c6141721eeeea45c3cf523bf4431d29a46602929455ed548c7a3e0769928cdc630405427297e7081bd118fdec9262 + languageName: node + linkType: hard + "array-ify@npm:^1.0.0": version: 1.0.0 resolution: "array-ify@npm:1.0.0" @@ -7913,6 +10997,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.reduce@npm:^1.0.6": + version: 1.0.6 + resolution: "array.prototype.reduce@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-array-method-boxes-properly: ^1.0.0 + is-string: ^1.0.7 + checksum: c709c3f5caa2aac4fb10e0c6c1982cca50328a2a48658d53b1da8ee3a78069ad67cdac21296d6285521aa3a932a8178c0e192b5fc831fae2977b69a5a8a64ad7 + languageName: node + linkType: hard + "array.prototype.tosorted@npm:^1.1.1": version: 1.1.2 resolution: "array.prototype.tosorted@npm:1.1.2" @@ -7948,7 +11045,7 @@ __metadata: languageName: node linkType: hard -"asap@npm:~2.0.6": +"asap@npm:~2.0.3, asap@npm:~2.0.6": version: 2.0.6 resolution: "asap@npm:2.0.6" checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d @@ -8084,6 +11181,24 @@ __metadata: languageName: node linkType: hard +"autoprefixer@npm:^10.4.12, autoprefixer@npm:^10.4.7": + version: 10.4.16 + resolution: "autoprefixer@npm:10.4.16" + dependencies: + browserslist: ^4.21.10 + caniuse-lite: ^1.0.30001538 + fraction.js: ^4.3.6 + normalize-range: ^0.1.2 + picocolors: ^1.0.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: 45fad7086495048dacb14bb7b00313e70e135b5d8e8751dcc60548889400763705ab16fc2d99ea628b44c3472698fb0e39598f595ba28409c965ab159035afde + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.5": version: 1.0.5 resolution: "available-typed-arrays@npm:1.0.5" @@ -8112,6 +11227,15 @@ __metadata: languageName: node linkType: hard +"axios@npm:^0.25.0": + version: 0.25.0 + resolution: "axios@npm:0.25.0" + dependencies: + follow-redirects: ^1.14.7 + checksum: 2a8a3787c05f2a0c9c3878f49782357e2a9f38945b93018fb0c4fd788171c43dceefbb577988628e09fea53952744d1ecebde234b561f1e703aa43e0a598a3ad + languageName: node + linkType: hard + "axios@npm:^0.27.2": version: 0.27.2 resolution: "axios@npm:0.27.2" @@ -8182,6 +11306,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-apply-mdx-type-prop@npm:1.6.22": + version: 1.6.22 + resolution: "babel-plugin-apply-mdx-type-prop@npm:1.6.22" + dependencies: + "@babel/helper-plugin-utils": 7.10.4 + "@mdx-js/util": 1.6.22 + peerDependencies: + "@babel/core": ^7.11.6 + checksum: 43e2100164a8f3e46fddd76afcbfb1f02cbebd5612cfe63f3d344a740b0afbdc4d2bf5659cffe9323dd2554c7b86b23ebedae9dadcec353b6594f4292a1a28e2 + languageName: node + linkType: hard + "babel-plugin-dynamic-import-node@npm:^2.3.3": version: 2.3.3 resolution: "babel-plugin-dynamic-import-node@npm:2.3.3" @@ -8191,6 +11327,15 @@ __metadata: languageName: node linkType: hard +"babel-plugin-extract-import-names@npm:1.6.22": + version: 1.6.22 + resolution: "babel-plugin-extract-import-names@npm:1.6.22" + dependencies: + "@babel/helper-plugin-utils": 7.10.4 + checksum: 145ccf09c96d36411d340e78086555f8d4d5924ea39fcb0eca461c066cfa98bc4344982bb35eb85d054ef88f8d4dfc0205ba27370c1d8fcc78191b02908d044d + languageName: node + linkType: hard + "babel-plugin-istanbul@npm:^6.1.1": version: 6.1.1 resolution: "babel-plugin-istanbul@npm:6.1.1" @@ -8240,6 +11385,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.6": + version: 0.4.7 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.4.4 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: b3c84ce44d00211c919a94f76453fb2065861612f3e44862eb7acf854e325c738a7441ad82690deba2b6fddfa2ad2cf2c46960f46fab2e3b17c6ed4fd2d73b38 + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.6.0": version: 0.6.0 resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" @@ -8252,6 +11410,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs3@npm:^0.8.5": + version: 0.8.7 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.4 + core-js-compat: ^3.33.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 51bc215ab0c062bbb2225d912f69f8a6705d1837c8e01f9651307b5b937804287c1d73ebd8015689efcc02c3c21f37688b9ee6f5997635619b7a9cc4b7d9908d + languageName: node + linkType: hard + "babel-plugin-polyfill-regenerator@npm:^0.4.1": version: 0.4.1 resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" @@ -8263,6 +11433,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.5.3": + version: 0.5.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.4 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 461b735c6c0eca3c7b4434d14bfa98c2ab80f00e2bdc1c69eb46d1d300092a9786d76bbd3ee55e26d2d1a2380c14592d8d638e271dfd2a2b78a9eacffa3645d1 + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -8297,6 +11478,13 @@ __metadata: languageName: node linkType: hard +"bail@npm:^1.0.0": + version: 1.0.5 + resolution: "bail@npm:1.0.5" + checksum: 6c334940d7eaa4e656a12fb12407b6555649b6deb6df04270fa806e0da82684ebe4a4e47815b271c794b40f8d6fa286e0c248b14ddbabb324a917fab09b7301a + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -8313,6 +11501,13 @@ __metadata: languageName: node linkType: hard +"base16@npm:^1.0.0": + version: 1.0.0 + resolution: "base16@npm:1.0.0" + checksum: 0cd449a2db0f0f957e4b6b57e33bc43c9e20d4f1dd744065db94b5da35e8e71fa4dc4bc7a901e59a84d5f8b6936e3c520e2471787f667fc155fb0f50d8540f5d + languageName: node + linkType: hard + "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -8320,6 +11515,13 @@ __metadata: languageName: node linkType: hard +"batch@npm:0.6.1": + version: 0.6.1 + resolution: "batch@npm:0.6.1" + checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f + languageName: node + linkType: hard + "bcrypt-pbkdf@npm:^1.0.0": version: 1.0.2 resolution: "bcrypt-pbkdf@npm:1.0.2" @@ -8512,6 +11714,57 @@ __metadata: languageName: node linkType: hard +"bonjour-service@npm:^1.0.11": + version: 1.1.1 + resolution: "bonjour-service@npm:1.1.1" + dependencies: + array-flatten: ^2.1.2 + dns-equal: ^1.0.0 + fast-deep-equal: ^3.1.3 + multicast-dns: ^7.2.5 + checksum: 832d0cf78b91368fac8bb11fd7a714e46f4c4fb1bb14d7283bce614a6fb3aae2f3fe209aba5b4fa051811c1cab6921d073a83db8432fb23292f27dd4161fb0f1 + languageName: node + linkType: hard + +"boolbase@npm:^1.0.0, boolbase@npm:~1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 + languageName: node + linkType: hard + +"boxen@npm:^5.0.0": + version: 5.1.2 + resolution: "boxen@npm:5.1.2" + dependencies: + ansi-align: ^3.0.0 + camelcase: ^6.2.0 + chalk: ^4.1.0 + cli-boxes: ^2.2.1 + string-width: ^4.2.2 + type-fest: ^0.20.2 + widest-line: ^3.1.0 + wrap-ansi: ^7.0.0 + checksum: 82d03e42a72576ff235123f17b7c505372fe05c83f75f61e7d4fa4bcb393897ec95ce766fecb8f26b915f0f7a7227d66e5ec7cef43f5b2bd9d3aeed47ec55877 + languageName: node + linkType: hard + +"boxen@npm:^6.2.1": + version: 6.2.1 + resolution: "boxen@npm:6.2.1" + dependencies: + ansi-align: ^3.0.1 + camelcase: ^6.2.0 + chalk: ^4.1.2 + cli-boxes: ^3.0.0 + string-width: ^5.0.1 + type-fest: ^2.5.0 + widest-line: ^4.0.1 + wrap-ansi: ^8.0.1 + checksum: 2b3226092f1ff8e149c02979098c976552afa15f9e0231c9ed2dfcaaf84604494d16a6f13b647f718439f64d3140a088e822d47c7db00d2266e9ffc8d7321774 + languageName: node + linkType: hard + "boxen@npm:^7.0.1": version: 7.0.2 resolution: "boxen@npm:7.0.2" @@ -8653,6 +11906,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.18.1, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" + dependencies: + caniuse-lite: ^1.0.30001565 + electron-to-chromium: ^1.4.601 + node-releases: ^2.0.14 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 33ddfcd9145220099a7a1ac533cecfe5b7548ffeb29b313e1b57be6459000a1f8fa67e781cf4abee97268ac594d44134fcc4a6b2b4750ceddc9796e3a22076d9 + languageName: node + linkType: hard + "browserslist@npm:^4.21.3, browserslist@npm:^4.21.5": version: 4.21.5 resolution: "browserslist@npm:4.21.5" @@ -8803,6 +12070,13 @@ __metadata: languageName: node linkType: hard +"bytes@npm:3.0.0": + version: 3.0.0 + resolution: "bytes@npm:3.0.0" + checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101 + languageName: node + linkType: hard + "bytes@npm:3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -8990,6 +12264,23 @@ __metadata: languageName: node linkType: hard +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: ^3.1.2 + tslib: ^2.0.3 + checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + languageName: node + linkType: hard + +"camelcase-css@npm:2.0.1": + version: 2.0.1 + resolution: "camelcase-css@npm:2.0.1" + checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 + languageName: node + linkType: hard + "camelcase-keys@npm:^6.2.2": version: 6.2.2 resolution: "camelcase-keys@npm:6.2.2" @@ -9029,6 +12320,25 @@ __metadata: languageName: node linkType: hard +"caniuse-api@npm:^3.0.0": + version: 3.0.0 + resolution: "caniuse-api@npm:3.0.0" + dependencies: + browserslist: ^4.0.0 + caniuse-lite: ^1.0.0 + lodash.memoize: ^4.1.2 + lodash.uniq: ^4.5.0 + checksum: db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001570 + resolution: "caniuse-lite@npm:1.0.30001570" + checksum: 460be2c7a9b1c8a83b6aae4226661c276d9dada6c84209dee547699cf4b28030b9d1fc29ddd7626acee77412b6401993878ea0ef3eadbf3a63ded9034896ae20 + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001449": version: 1.0.30001550 resolution: "caniuse-lite@npm:1.0.30001550" @@ -9102,6 +12412,13 @@ __metadata: languageName: node linkType: hard +"ccount@npm:^1.0.0": + version: 1.1.0 + resolution: "ccount@npm:1.1.0" + checksum: b335a79d0aa4308919cf7507babcfa04ac63d389ebed49dbf26990d4607c8a4713cde93cc83e707d84571ddfe1e7615dad248be9bc422ae4c188210f71b08b78 + languageName: node + linkType: hard + "chai-as-promised@npm:^7.1.1": version: 7.1.1 resolution: "chai-as-promised@npm:7.1.1" @@ -9282,6 +12599,35 @@ __metadata: languageName: node linkType: hard +"cheerio-select@npm:^2.1.0": + version: 2.1.0 + resolution: "cheerio-select@npm:2.1.0" + dependencies: + boolbase: ^1.0.0 + css-select: ^5.1.0 + css-what: ^6.1.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + checksum: 843d6d479922f28a6c5342c935aff1347491156814de63c585a6eb73baf7bb4185c1b4383a1195dca0f12e3946d737c7763bcef0b9544c515d905c5c44c5308b + languageName: node + linkType: hard + +"cheerio@npm:^1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "cheerio@npm:1.0.0-rc.12" + dependencies: + cheerio-select: ^2.1.0 + dom-serializer: ^2.0.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + htmlparser2: ^8.0.1 + parse5: ^7.0.0 + parse5-htmlparser2-tree-adapter: ^7.0.0 + checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054 + languageName: node + linkType: hard + "chokidar@npm:3.3.0": version: 3.3.0 resolution: "chokidar@npm:3.3.0" @@ -9301,7 +12647,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:3.5.3, chokidar@npm:^3.4.0": +"chokidar@npm:3.5.3, chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -9334,6 +12680,13 @@ __metadata: languageName: node linkType: hard +"chrome-trace-event@npm:^1.0.2": + version: 1.0.3 + resolution: "chrome-trace-event@npm:1.0.3" + checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97 + languageName: node + linkType: hard + "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" @@ -9437,6 +12790,15 @@ __metadata: languageName: node linkType: hard +"clean-css@npm:^5.2.2, clean-css@npm:^5.3.0": + version: 5.3.3 + resolution: "clean-css@npm:5.3.3" + dependencies: + source-map: ~0.6.0 + checksum: 941987c14860dd7d346d5cf121a82fd2caf8344160b1565c5387f7ccca4bbcaf885bace961be37c4f4713ce2d8c488dd89483c1add47bb779790edbfdcc79cbc + languageName: node + linkType: hard + "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -9455,6 +12817,13 @@ __metadata: languageName: node linkType: hard +"cli-boxes@npm:^2.2.1": + version: 2.2.1 + resolution: "cli-boxes@npm:2.2.1" + checksum: be79f8ec23a558b49e01311b39a1ea01243ecee30539c880cf14bf518a12e223ef40c57ead0cb44f509bffdffc5c129c746cd50d863ab879385370112af4f585 + languageName: node + linkType: hard + "cli-boxes@npm:^3.0.0": version: 3.0.0 resolution: "cli-boxes@npm:3.0.0" @@ -9501,6 +12870,19 @@ __metadata: languageName: node linkType: hard +"cli-table3@npm:^0.6.2": + version: 0.6.3 + resolution: "cli-table3@npm:0.6.3" + dependencies: + "@colors/colors": 1.5.0 + string-width: ^4.2.0 + dependenciesMeta: + "@colors/colors": + optional: true + checksum: 09897f68467973f827c04e7eaadf13b55f8aec49ecd6647cc276386ea660059322e2dd8020a8b6b84d422dbdd619597046fa89cbbbdc95b2cea149a2df7c096c + languageName: node + linkType: hard + "cli-truncate@npm:^2.1.0": version: 2.1.0 resolution: "cli-truncate@npm:2.1.0" @@ -9575,6 +12957,17 @@ __metadata: languageName: node linkType: hard +"clone-deep@npm:^4.0.1": + version: 4.0.1 + resolution: "clone-deep@npm:4.0.1" + dependencies: + is-plain-object: ^2.0.4 + kind-of: ^6.0.2 + shallow-clone: ^3.0.0 + checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 + languageName: node + linkType: hard + "clone-response@npm:1.0.2": version: 1.0.2 resolution: "clone-response@npm:1.0.2" @@ -9600,6 +12993,13 @@ __metadata: languageName: node linkType: hard +"clsx@npm:^1.2.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 + languageName: node + linkType: hard + "co@npm:^4.6.0": version: 4.6.0 resolution: "co@npm:4.6.0" @@ -9607,6 +13007,24 @@ __metadata: languageName: node linkType: hard +"coa@npm:^2.0.2": + version: 2.0.2 + resolution: "coa@npm:2.0.2" + dependencies: + "@types/q": ^1.5.1 + chalk: ^2.4.1 + q: ^1.1.2 + checksum: 44736914aac2160d3d840ed64432a90a3bb72285a0cd6a688eb5cabdf15d15a85eee0915b3f6f2a4659d5075817b1cb577340d3c9cbb47d636d59ab69f819552 + languageName: node + linkType: hard + +"collapse-white-space@npm:^1.0.2": + version: 1.0.6 + resolution: "collapse-white-space@npm:1.0.6" + checksum: 9673fb797952c5c888341435596c69388b22cd5560c8cd3f40edb72734a9c820f56a7c9525166bcb7068b5d5805372e6fd0c4b9f2869782ad070cb5d3faf26e7 + languageName: node + linkType: hard + "collect-v8-coverage@npm:^1.0.0": version: 1.0.1 resolution: "collect-v8-coverage@npm:1.0.1" @@ -9662,6 +13080,20 @@ __metadata: languageName: node linkType: hard +"colord@npm:^2.9.1": + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 + languageName: node + linkType: hard + +"colorette@npm:^2.0.10": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + languageName: node + linkType: hard + "colorette@npm:^2.0.16, colorette@npm:^2.0.19": version: 2.0.19 resolution: "colorette@npm:2.0.19" @@ -9676,6 +13108,13 @@ __metadata: languageName: node linkType: hard +"combine-promises@npm:^1.1.0": + version: 1.2.0 + resolution: "combine-promises@npm:1.2.0" + checksum: ddce91436e24da03d5dc360c59cd55abfc9da5e949a26255aa42761925c574797c43138f0aabfc364e184e738e5e218a94ac6e88ebc459045bcf048ac7fe5f07 + languageName: node + linkType: hard + "combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" @@ -9744,6 +13183,27 @@ __metadata: languageName: node linkType: hard +"commander@npm:^5.1.0": + version: 5.1.0 + resolution: "commander@npm:5.1.0" + checksum: 0b7fec1712fbcc6230fcb161d8d73b4730fa91a21dc089515489402ad78810547683f058e2a9835929c212fead1d6a6ade70db28bbb03edbc2829a9ab7d69447 + languageName: node + linkType: hard + +"commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + +"commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 + languageName: node + linkType: hard + "commander@npm:^9.3.0": version: 9.5.0 resolution: "commander@npm:9.5.0" @@ -9808,6 +13268,30 @@ __metadata: languageName: node linkType: hard +"compressible@npm:~2.0.16": + version: 2.0.18 + resolution: "compressible@npm:2.0.18" + dependencies: + mime-db: ">= 1.43.0 < 2" + checksum: 58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 + languageName: node + linkType: hard + +"compression@npm:^1.7.4": + version: 1.7.4 + resolution: "compression@npm:1.7.4" + dependencies: + accepts: ~1.3.5 + bytes: 3.0.0 + compressible: ~2.0.16 + debug: 2.6.9 + on-headers: ~1.0.2 + safe-buffer: 5.1.2 + vary: ~1.1.2 + checksum: 35c0f2eb1f28418978615dc1bc02075b34b1568f7f56c62d60f4214d4b7cc00d0f6d282b5f8a954f59872396bd770b6b15ffd8aa94c67d4bce9b8887b906999b + languageName: node + linkType: hard + "compute-scroll-into-view@npm:3.0.3": version: 3.0.3 resolution: "compute-scroll-into-view@npm:3.0.3" @@ -9834,6 +13318,20 @@ __metadata: languageName: node linkType: hard +"configstore@npm:^5.0.1": + version: 5.0.1 + resolution: "configstore@npm:5.0.1" + dependencies: + dot-prop: ^5.2.0 + graceful-fs: ^4.1.2 + make-dir: ^3.0.0 + unique-string: ^2.0.0 + write-file-atomic: ^3.0.0 + xdg-basedir: ^4.0.0 + checksum: 60ef65d493b63f96e14b11ba7ec072fdbf3d40110a94fb7199d1c287761bdea5c5244e76b2596325f30c1b652213aa75de96ea20afd4a5f82065e61ea090988e + languageName: node + linkType: hard + "confusing-browser-globals@npm:^1.0.10": version: 1.0.11 resolution: "confusing-browser-globals@npm:1.0.11" @@ -9841,6 +13339,13 @@ __metadata: languageName: node linkType: hard +"connect-history-api-fallback@npm:^2.0.0": + version: 2.0.0 + resolution: "connect-history-api-fallback@npm:2.0.0" + checksum: dc5368690f4a5c413889792f8df70d5941ca9da44523cde3f87af0745faee5ee16afb8195434550f0504726642734f2683d6c07f8b460f828a12c45fbd4c9a68 + languageName: node + linkType: hard + "consola@npm:^2.15.3": version: 2.15.3 resolution: "consola@npm:2.15.3" @@ -9855,6 +13360,13 @@ __metadata: languageName: node linkType: hard +"content-disposition@npm:0.5.2": + version: 0.5.2 + resolution: "content-disposition@npm:0.5.2" + checksum: 298d7da63255a38f7858ee19c7b6aae32b167e911293174b4c1349955e97e78e1d0b0d06c10e229405987275b417cf36ff65cbd4821a98bc9df4e41e9372cde7 + languageName: node + linkType: hard + "content-disposition@npm:0.5.4, content-disposition@npm:^0.5.2": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" @@ -9977,6 +13489,13 @@ __metadata: languageName: node linkType: hard +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + "cookie-signature@npm:1.0.6": version: 1.0.6 resolution: "cookie-signature@npm:1.0.6" @@ -10005,6 +13524,13 @@ __metadata: languageName: node linkType: hard +"copy-text-to-clipboard@npm:^3.0.1": + version: 3.2.0 + resolution: "copy-text-to-clipboard@npm:3.2.0" + checksum: df7115c197a166d51f59e4e20ab2a68a855ae8746d25ff149b5465c694d9a405c7e6684b73a9f87ba8d653070164e229c15dfdb9fd77c30be1ff0da569661060 + languageName: node + linkType: hard + "copy-to-clipboard@npm:3.3.3": version: 3.3.3 resolution: "copy-to-clipboard@npm:3.3.3" @@ -10014,6 +13540,22 @@ __metadata: languageName: node linkType: hard +"copy-webpack-plugin@npm:^11.0.0": + version: 11.0.0 + resolution: "copy-webpack-plugin@npm:11.0.0" + dependencies: + fast-glob: ^3.2.11 + glob-parent: ^6.0.1 + globby: ^13.1.1 + normalize-path: ^3.0.0 + schema-utils: ^4.0.0 + serialize-javascript: ^6.0.0 + peerDependencies: + webpack: ^5.1.0 + checksum: df4f8743f003a29ee7dd3d9b1789998a3a99051c92afb2ba2203d3dacfa696f4e757b275560fafb8f206e520a0aa78af34b990324a0e36c2326cefdeef3ca82e + languageName: node + linkType: hard + "core-js-compat@npm:^3.25.1": version: 3.29.1 resolution: "core-js-compat@npm:3.29.1" @@ -10023,6 +13565,29 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": + version: 3.34.0 + resolution: "core-js-compat@npm:3.34.0" + dependencies: + browserslist: ^4.22.2 + checksum: 6281f7f57a72f254c06611ec088445e11cf84e0b4edfb5f43dece1a1ff8b0ed0e81ed0bc291024761cd90c39d0f007d8bc46548265139808081d311c7cbc9c81 + languageName: node + linkType: hard + +"core-js-pure@npm:^3.30.2": + version: 3.34.0 + resolution: "core-js-pure@npm:3.34.0" + checksum: 4c44ac4beff42e07f41eef3c9ecefc8ee3f9e91e1b9f278bf8520cc1fb37afb663cff77c182541dc42d58737f93ab0f30a33a5fe661fb161fdd8aa7fe78a5edf + languageName: node + linkType: hard + +"core-js@npm:^3.23.3": + version: 3.34.0 + resolution: "core-js@npm:3.34.0" + checksum: 26b0d103716b33fc660ee8737da7bc9475fbc655f93bbf1360ab692966449d18f2fc393805095937283db9f919ca2aa5c88d86d16f2846217983ad7da707e31e + languageName: node + linkType: hard + "core-util-is@npm:1.0.2": version: 1.0.2 resolution: "core-util-is@npm:1.0.2" @@ -10073,7 +13638,20 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^7, cosmiconfig@npm:^7.0.0": +"cosmiconfig@npm:^6.0.0": + version: 6.0.0 + resolution: "cosmiconfig@npm:6.0.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.7.2 + checksum: 8eed7c854b91643ecb820767d0deb038b50780ecc3d53b0b19e03ed8aabed4ae77271198d1ae3d49c3b110867edf679f5faad924820a8d1774144a87cb6f98fc + languageName: node + linkType: hard + +"cosmiconfig@npm:^7, cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": version: 7.1.0 resolution: "cosmiconfig@npm:7.1.0" dependencies: @@ -10098,6 +13676,23 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^8.2.0": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" + dependencies: + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + parse-json: ^5.2.0 + path-type: ^4.0.0 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 + languageName: node + linkType: hard + "crc-32@npm:^1.2.0": version: 1.2.2 resolution: "crc-32@npm:1.2.2" @@ -10220,6 +13815,107 @@ __metadata: languageName: node linkType: hard +"css-declaration-sorter@npm:^6.3.1": + version: 6.4.1 + resolution: "css-declaration-sorter@npm:6.4.1" + peerDependencies: + postcss: ^8.0.9 + checksum: cbdc9e0d481011b1a28fd5b60d4eb55fe204391d31a0b1b490b2cecf4baa85810f9b8c48adab4df644f4718104ed3ed72c64a9745e3216173767bf4aeca7f9b8 + languageName: node + linkType: hard + +"css-loader@npm:^6.7.1": + version: 6.8.1 + resolution: "css-loader@npm:6.8.1" + dependencies: + icss-utils: ^5.1.0 + postcss: ^8.4.21 + postcss-modules-extract-imports: ^3.0.0 + postcss-modules-local-by-default: ^4.0.3 + postcss-modules-scope: ^3.0.0 + postcss-modules-values: ^4.0.0 + postcss-value-parser: ^4.2.0 + semver: ^7.3.8 + peerDependencies: + webpack: ^5.0.0 + checksum: 7c1784247bdbe76dc5c55fb1ac84f1d4177a74c47259942c9cfdb7a8e6baef11967a0bc85ac285f26bd26d5059decb848af8154a03fdb4f4894f41212f45eef3 + languageName: node + linkType: hard + +"css-minimizer-webpack-plugin@npm:^4.0.0": + version: 4.2.2 + resolution: "css-minimizer-webpack-plugin@npm:4.2.2" + dependencies: + cssnano: ^5.1.8 + jest-worker: ^29.1.2 + postcss: ^8.4.17 + schema-utils: ^4.0.0 + serialize-javascript: ^6.0.0 + source-map: ^0.6.1 + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + "@parcel/css": + optional: true + "@swc/css": + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + checksum: 5417e76a445f35832aa96807c835b8e92834a6cd285b1b788dfe3ca0fa90fec7eb2dd6efa9d3649f9d8244b99b7da2d065951603b94918e8f6a366a5049cacdd + languageName: node + linkType: hard + +"css-select-base-adapter@npm:^0.1.1": + version: 0.1.1 + resolution: "css-select-base-adapter@npm:0.1.1" + checksum: c107e9cfa53a23427e4537451a67358375e656baa3322345a982d3c2751fb3904002aae7e5d72386c59f766fe6b109d1ffb43eeab1c16f069f7a3828eb17851c + languageName: node + linkType: hard + +"css-select@npm:^2.0.0": + version: 2.1.0 + resolution: "css-select@npm:2.1.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^3.2.1 + domutils: ^1.7.0 + nth-check: ^1.0.2 + checksum: 0c4099910f2411e2a9103cf92ea6a4ad738b57da75bcf73d39ef2c14a00ef36e5f16cb863211c901320618b24ace74da6333442d82995cafd5040077307de462 + languageName: node + linkType: hard + +"css-select@npm:^4.1.3": + version: 4.3.0 + resolution: "css-select@npm:4.3.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.0.1 + domhandler: ^4.3.1 + domutils: ^2.8.0 + nth-check: ^2.0.1 + checksum: d6202736839194dd7f910320032e7cfc40372f025e4bf21ca5bf6eb0a33264f322f50ba9c0adc35dadd342d3d6fae5ca244779a4873afbfa76561e343f2058e0 + languageName: node + linkType: hard + +"css-select@npm:^5.1.0": + version: 5.1.0 + resolution: "css-select@npm:5.1.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.1.0 + domhandler: ^5.0.2 + domutils: ^3.0.1 + nth-check: ^2.0.1 + checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda + languageName: node + linkType: hard + "css-to-react-native@npm:^3.2.0": version: 3.2.0 resolution: "css-to-react-native@npm:3.2.0" @@ -10231,6 +13927,135 @@ __metadata: languageName: node linkType: hard +"css-tree@npm:1.0.0-alpha.37": + version: 1.0.0-alpha.37 + resolution: "css-tree@npm:1.0.0-alpha.37" + dependencies: + mdn-data: 2.0.4 + source-map: ^0.6.1 + checksum: 0e419a1388ec0fbbe92885fba4a557f9fb0e077a2a1fad629b7245bbf7b4ef5df49e6877401b952b09b9057ffe1a3dba74f6fdfbf7b2223a5a35bce27ff2307d + languageName: node + linkType: hard + +"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3": + version: 1.1.3 + resolution: "css-tree@npm:1.1.3" + dependencies: + mdn-data: 2.0.14 + source-map: ^0.6.1 + checksum: 79f9b81803991b6977b7fcb1588799270438274d89066ce08f117f5cdb5e20019b446d766c61506dd772c839df84caa16042d6076f20c97187f5abe3b50e7d1f + languageName: node + linkType: hard + +"css-what@npm:^3.2.1": + version: 3.4.2 + resolution: "css-what@npm:3.4.2" + checksum: 26bb5ec3ae718393d418016365c849fa14bd0de408c735dea3ddf58146b6cc54f3b336fb4afd31d95c06ca79583acbcdfec7ee93d31ff5c1a697df135b38dfeb + languageName: node + linkType: hard + +"css-what@npm:^6.0.1, css-what@npm:^6.1.0": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + +"cssnano-preset-advanced@npm:^5.3.8": + version: 5.3.10 + resolution: "cssnano-preset-advanced@npm:5.3.10" + dependencies: + autoprefixer: ^10.4.12 + cssnano-preset-default: ^5.2.14 + postcss-discard-unused: ^5.1.0 + postcss-merge-idents: ^5.1.1 + postcss-reduce-idents: ^5.2.0 + postcss-zindex: ^5.1.0 + peerDependencies: + postcss: ^8.2.15 + checksum: d21cb382aea2f35c9eaa50686280bbd5158260edf73020731364b03bae0d887292da51ed0b20b369f51d2573ee8c02c695f604647b839a9ca746be8a44c3bb5b + languageName: node + linkType: hard + +"cssnano-preset-default@npm:^5.2.14": + version: 5.2.14 + resolution: "cssnano-preset-default@npm:5.2.14" + dependencies: + css-declaration-sorter: ^6.3.1 + cssnano-utils: ^3.1.0 + postcss-calc: ^8.2.3 + postcss-colormin: ^5.3.1 + postcss-convert-values: ^5.1.3 + postcss-discard-comments: ^5.1.2 + postcss-discard-duplicates: ^5.1.0 + postcss-discard-empty: ^5.1.1 + postcss-discard-overridden: ^5.1.0 + postcss-merge-longhand: ^5.1.7 + postcss-merge-rules: ^5.1.4 + postcss-minify-font-values: ^5.1.0 + postcss-minify-gradients: ^5.1.1 + postcss-minify-params: ^5.1.4 + postcss-minify-selectors: ^5.2.1 + postcss-normalize-charset: ^5.1.0 + postcss-normalize-display-values: ^5.1.0 + postcss-normalize-positions: ^5.1.1 + postcss-normalize-repeat-style: ^5.1.1 + postcss-normalize-string: ^5.1.0 + postcss-normalize-timing-functions: ^5.1.0 + postcss-normalize-unicode: ^5.1.1 + postcss-normalize-url: ^5.1.0 + postcss-normalize-whitespace: ^5.1.1 + postcss-ordered-values: ^5.1.3 + postcss-reduce-initial: ^5.1.2 + postcss-reduce-transforms: ^5.1.0 + postcss-svgo: ^5.1.0 + postcss-unique-selectors: ^5.1.1 + peerDependencies: + postcss: ^8.2.15 + checksum: d3bbbe3d50c6174afb28d0bdb65b511fdab33952ec84810aef58b87189f3891c34aaa8b6a6101acd5314f8acded839b43513e39a75f91a698ddc985a1b1d9e95 + languageName: node + linkType: hard + +"cssnano-utils@npm:^3.1.0": + version: 3.1.0 + resolution: "cssnano-utils@npm:3.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 975c84ce9174cf23bb1da1e9faed8421954607e9ea76440cd3bb0c1bea7e17e490d800fca5ae2812d1d9e9d5524eef23ede0a3f52497d7ccc628e5d7321536f2 + languageName: node + linkType: hard + +"cssnano@npm:^5.1.12, cssnano@npm:^5.1.8": + version: 5.1.15 + resolution: "cssnano@npm:5.1.15" + dependencies: + cssnano-preset-default: ^5.2.14 + lilconfig: ^2.0.3 + yaml: ^1.10.2 + peerDependencies: + postcss: ^8.2.15 + checksum: ca9e1922178617c66c2f1548824b2c7af2ecf69cc3a187fc96bf8d29251c2e84d9e4966c69cf64a2a6a057a37dff7d6d057bc8a2a0957e6ea382e452ae9d0bbb + languageName: node + linkType: hard + +"csso@npm:^4.0.2, csso@npm:^4.2.0": + version: 4.2.0 + resolution: "csso@npm:4.2.0" + dependencies: + css-tree: ^1.1.2 + checksum: 380ba9663da3bcea58dee358a0d8c4468bb6539be3c439dc266ac41c047217f52fd698fb7e4b6b6ccdfb8cf53ef4ceed8cc8ceccb8dfca2aa628319826b5b998 + languageName: node + linkType: hard + "cssom@npm:^0.4.4": version: 0.4.4 resolution: "cssom@npm:0.4.4" @@ -10337,7 +14162,14 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.2.0": +"debounce@npm:^1.2.1": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e + languageName: node + linkType: hard + +"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.6.0": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -10520,7 +14352,7 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:~0.6.0": +"deep-extend@npm:^0.6.0, deep-extend@npm:~0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 @@ -10541,6 +14373,15 @@ __metadata: languageName: node linkType: hard +"default-gateway@npm:^6.0.3": + version: 6.0.3 + resolution: "default-gateway@npm:6.0.3" + dependencies: + execa: ^5.0.0 + checksum: 126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378 + languageName: node + linkType: hard + "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -10575,6 +14416,13 @@ __metadata: languageName: node linkType: hard +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 + languageName: node + linkType: hard + "define-properties@npm:^1.1.2, define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": version: 1.2.0 resolution: "define-properties@npm:1.2.0" @@ -10618,6 +14466,22 @@ __metadata: languageName: node linkType: hard +"del@npm:^6.1.1": + version: 6.1.1 + resolution: "del@npm:6.1.1" + dependencies: + globby: ^11.0.1 + graceful-fs: ^4.2.4 + is-glob: ^4.0.1 + is-path-cwd: ^2.2.0 + is-path-inside: ^3.0.2 + p-map: ^4.0.0 + rimraf: ^3.0.2 + slash: ^3.0.0 + checksum: 563288b73b8b19a7261c47fd21a330eeab6e2acd7c6208c49790dfd369127120dd7836cdf0c1eca216b77c94782a81507eac6b4734252d3bef2795cb366996b6 + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -10639,6 +14503,13 @@ __metadata: languageName: node linkType: hard +"depd@npm:~1.1.2": + version: 1.1.2 + resolution: "depd@npm:1.1.2" + checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 + languageName: node + linkType: hard + "dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -10670,6 +14541,15 @@ __metadata: languageName: node linkType: hard +"detab@npm:2.0.4": + version: 2.0.4 + resolution: "detab@npm:2.0.4" + dependencies: + repeat-string: ^1.5.4 + checksum: 34b077521ecd4c6357d32ff7923be644d34aa6f6b7d717d40ec4a9168243eefaea2b512a75a460a6f70c31b0bbc31ff90f820a891803b4ddaf99e9d04d0d389d + languageName: node + linkType: hard + "detect-file@npm:^1.0.0": version: 1.0.0 resolution: "detect-file@npm:1.0.0" @@ -10698,6 +14578,26 @@ __metadata: languageName: node linkType: hard +"detect-node@npm:^2.0.4": + version: 2.1.0 + resolution: "detect-node@npm:2.1.0" + checksum: 832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e + languageName: node + linkType: hard + +"detect-port-alt@npm:^1.1.6": + version: 1.1.6 + resolution: "detect-port-alt@npm:1.1.6" + dependencies: + address: ^1.0.1 + debug: ^2.6.0 + bin: + detect: ./bin/detect-port + detect-port: ./bin/detect-port + checksum: 9dc37b1fa4a9dd6d4889e1045849b8d841232b598d1ca888bf712f4035b07a17cf6d537465a0d7323250048d3a5a0540e3b7cf89457efc222f96f77e2c40d16a + languageName: node + linkType: hard + "detect-port@npm:^1.3.0": version: 1.5.1 resolution: "detect-port@npm:1.5.1" @@ -10768,6 +14668,22 @@ __metadata: languageName: node linkType: hard +"dns-equal@npm:^1.0.0": + version: 1.0.0 + resolution: "dns-equal@npm:1.0.0" + checksum: a8471ac849c7c13824f053babea1bc26e2f359394dd5a460f8340d8abd13434be01e3327a5c59d212f8c8997817450efd3f3ac77bec709b21979cf0235644524 + languageName: node + linkType: hard + +"dns-packet@npm:^5.2.2": + version: 5.6.1 + resolution: "dns-packet@npm:5.6.1" + dependencies: + "@leichtgewicht/ip-codec": ^2.0.1 + checksum: 64c06457f0c6e143f7a0946e0aeb8de1c5f752217cfa143ef527467c00a6d78db1835cfdb6bb68333d9f9a4963cf23f410439b5262a8935cce1236f45e344b81 + languageName: node + linkType: hard + "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -10786,6 +14702,59 @@ __metadata: languageName: node linkType: hard +"docusaurus-plugin-sass@npm:^0.2.2": + version: 0.2.5 + resolution: "docusaurus-plugin-sass@npm:0.2.5" + dependencies: + sass-loader: ^10.1.1 + peerDependencies: + "@docusaurus/core": ^2.0.0-beta || ^3.0.0-alpha + sass: ^1.30.0 + checksum: db17a8c87a344330717962fe195c94089e32281dc7f79b66bf99587254ebad71353b8588c5b74feb1c2841c6183e59b20259f5fb1a5c74026903557cbb113a68 + languageName: node + linkType: hard + +"dom-converter@npm:^0.2.0": + version: 0.2.0 + resolution: "dom-converter@npm:0.2.0" + dependencies: + utila: ~0.4 + checksum: ea52fe303f5392e48dea563abef0e6fb3a478b8dbe3c599e99bb5d53981c6c38fc4944e56bb92a8ead6bb989d10b7914722ae11febbd2fd0910e33b9fc4aaa77 + languageName: node + linkType: hard + +"dom-serializer@npm:0": + version: 0.2.2 + resolution: "dom-serializer@npm:0.2.2" + dependencies: + domelementtype: ^2.0.1 + entities: ^2.0.0 + checksum: 376344893e4feccab649a14ca1a46473e9961f40fe62479ea692d4fee4d9df1c00ca8654811a79c1ca7b020096987e1ca4fb4d7f8bae32c1db800a680a0e5d5e + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.2.0 + entities: ^2.0.0 + checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + languageName: node + linkType: hard + +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 + languageName: node + linkType: hard + "dom-walk@npm:^0.1.0": version: 0.1.2 resolution: "dom-walk@npm:0.1.2" @@ -10793,6 +14762,20 @@ __metadata: languageName: node linkType: hard +"domelementtype@npm:1": + version: 1.3.1 + resolution: "domelementtype@npm:1.3.1" + checksum: 7893da40218ae2106ec6ffc146b17f203487a52f5228b032ea7aa470e41dfe03e1bd762d0ee0139e792195efda765434b04b43cddcf63207b098f6ae44b36ad6 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 + languageName: node + linkType: hard + "domexception@npm:^2.0.1": version: 2.0.1 resolution: "domexception@npm:2.0.1" @@ -10802,7 +14785,67 @@ __metadata: languageName: node linkType: hard -"dot-prop@npm:^5.1.0": +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: ^2.2.0 + checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + languageName: node + linkType: hard + +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" + dependencies: + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c + languageName: node + linkType: hard + +"domutils@npm:^1.7.0": + version: 1.7.0 + resolution: "domutils@npm:1.7.0" + dependencies: + dom-serializer: 0 + domelementtype: 1 + checksum: f60a725b1f73c1ae82f4894b691601ecc6ecb68320d87923ac3633137627c7865725af813ae5d188ad3954283853bcf46779eb50304ec5d5354044569fcefd2b + languageName: node + linkType: hard + +"domutils@npm:^2.5.2, domutils@npm:^2.8.0": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: ^1.0.1 + domelementtype: ^2.2.0 + domhandler: ^4.2.0 + checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + languageName: node + linkType: hard + +"domutils@npm:^3.0.1": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" + dependencies: + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 + languageName: node + linkType: hard + +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + +"dot-prop@npm:^5.1.0, dot-prop@npm:^5.2.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" dependencies: @@ -10851,6 +14894,13 @@ __metadata: languageName: node linkType: hard +"duplexer@npm:^0.1.2": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -10893,6 +14943,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.601": + version: 1.4.615 + resolution: "electron-to-chromium@npm:1.4.615" + checksum: 9ffb1d0dac11c629bd8aa38efa7d2e3f41de943cf81fb41ab05e960e954c464c168d1f2f7e571813805e85b895279f2882bcafa551a2f23089646008d7a5bd06 + languageName: node + linkType: hard + "elliptic@npm:6.5.4, elliptic@npm:^6.4.0, elliptic@npm:^6.5.2, elliptic@npm:^6.5.3, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -10943,6 +15000,13 @@ __metadata: languageName: node linkType: hard +"emoticon@npm:^3.2.0": + version: 3.2.0 + resolution: "emoticon@npm:3.2.0" + checksum: f30649d18b672ab3139e95cb04f77b2442feb95c99dc59372ff80fbfd639b2bf4018bc68ab0b549bd765aecf8230d7899c43f86cfcc7b6370c06c3232783e24f + languageName: node + linkType: hard + "encodeurl@npm:~1.0.2": version: 1.0.2 resolution: "encodeurl@npm:1.0.2" @@ -10968,6 +15032,16 @@ __metadata: languageName: node linkType: hard +"enhanced-resolve@npm:^5.15.0": + version: 5.15.0 + resolution: "enhanced-resolve@npm:5.15.0" + dependencies: + graceful-fs: ^4.2.4 + tapable: ^2.2.0 + checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 + languageName: node + linkType: hard + "enquirer@npm:^2.3.0": version: 2.3.6 resolution: "enquirer@npm:2.3.6" @@ -10977,6 +15051,20 @@ __metadata: languageName: node linkType: hard +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + +"entities@npm:^4.2.0, entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -11000,6 +15088,53 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.17.2, es-abstract@npm:^1.22.1": + version: 1.22.3 + resolution: "es-abstract@npm:1.22.3" + dependencies: + array-buffer-byte-length: ^1.0.0 + arraybuffer.prototype.slice: ^1.0.2 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.5 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.2 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + hasown: ^2.0.0 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.12 + is-weakref: ^1.0.2 + object-inspect: ^1.13.1 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 + safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 + typed-array-buffer: ^1.0.0 + typed-array-byte-length: ^1.0.0 + typed-array-byte-offset: ^1.0.0 + typed-array-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.13 + checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a + languageName: node + linkType: hard + "es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": version: 1.21.2 resolution: "es-abstract@npm:1.21.2" @@ -11073,53 +15208,6 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.22.1": - version: 1.22.3 - resolution: "es-abstract@npm:1.22.3" - dependencies: - array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.2 - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.5 - es-set-tostringtag: ^2.0.1 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.2 - get-symbol-description: ^1.0.0 - globalthis: ^1.0.3 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.0 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - internal-slot: ^1.0.5 - is-array-buffer: ^3.0.2 - is-callable: ^1.2.7 - is-negative-zero: ^2.0.2 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - is-string: ^1.0.7 - is-typed-array: ^1.1.12 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 - object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.1 - safe-array-concat: ^1.0.1 - safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.8 - string.prototype.trimend: ^1.0.7 - string.prototype.trimstart: ^1.0.7 - typed-array-buffer: ^1.0.0 - typed-array-byte-length: ^1.0.0 - typed-array-byte-offset: ^1.0.0 - typed-array-length: ^1.0.4 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.13 - checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a - languageName: node - linkType: hard - "es-array-method-boxes-properly@npm:^1.0.0": version: 1.0.0 resolution: "es-array-method-boxes-properly@npm:1.0.0" @@ -11149,6 +15237,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.2.1": + version: 1.4.1 + resolution: "es-module-lexer@npm:1.4.1" + checksum: a11b5a256d4e8e9c7d94c2fd87415ccd1591617b6edd847e064503f8eaece2d25e2e9078a02c5ce3ed5e83bb748f5b4820efbe78072c8beb07ac619c2edec35d + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.1 resolution: "es-set-tostringtag@npm:2.0.1" @@ -11226,7 +15321,14 @@ __metadata: languageName: node linkType: hard -"escape-html@npm:~1.0.3": +"escape-goat@npm:^2.0.0": + version: 2.1.1 + resolution: "escape-goat@npm:2.1.1" + checksum: ce05c70c20dd7007b60d2d644b625da5412325fdb57acf671ba06cb2ab3cd6789e2087026921a05b665b0a03fadee2955e7fc0b9a67da15a6551a980b260eba7 + languageName: node + linkType: hard + +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 @@ -11482,7 +15584,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^5.1.1": +"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -11657,6 +15759,13 @@ __metadata: languageName: node linkType: hard +"eta@npm:^1.12.3": + version: 1.14.2 + resolution: "eta@npm:1.14.2" + checksum: 72a38b36ce604a2a418b0e8e4ca1e4f01c6dd89fee8476a79338ca41b376e0d2fec071bb6339bd54740fc35ed38afd589d72f6e3fe54257fea05300abf21c24c + languageName: node + linkType: hard + "etag@npm:~1.8.1": version: 1.8.1 resolution: "etag@npm:1.8.1" @@ -11922,6 +16031,16 @@ __metadata: languageName: node linkType: hard +"eval@npm:^0.1.8": + version: 0.1.8 + resolution: "eval@npm:0.1.8" + dependencies: + "@types/node": "*" + require-like: ">= 0.1.1" + checksum: d005567f394cfbe60948e34982e4637d2665030f9aa7dcac581ea6f9ec6eceb87133ed3dc0ae21764aa362485c242a731dbb6371f1f1a86807c58676431e9d1a + languageName: node + linkType: hard + "event-target-shim@npm:^5.0.0": version: 5.0.1 resolution: "event-target-shim@npm:5.0.1" @@ -11936,6 +16055,20 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^4.0.0": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 + languageName: node + linkType: hard + +"events@npm:^3.2.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 + languageName: node + linkType: hard + "evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": version: 1.0.3 resolution: "evp_bytestokey@npm:1.0.3" @@ -12009,7 +16142,7 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.14.0": +"express@npm:^4.14.0, express@npm:^4.17.3": version: 4.18.2 resolution: "express@npm:4.18.2" dependencies: @@ -12076,7 +16209,16 @@ __metadata: languageName: node linkType: hard -"extend@npm:~3.0.2": +"extend-shallow@npm:^2.0.1": + version: 2.0.1 + resolution: "extend-shallow@npm:2.0.1" + dependencies: + is-extendable: ^0.1.0 + checksum: 8fb58d9d7a511f4baf78d383e637bd7d2e80843bd9cd0853649108ea835208fb614da502a553acc30208e1325240bb7cc4a68473021612496bb89725483656d8 + languageName: node + linkType: hard + +"extend@npm:^3.0.0, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 @@ -12135,6 +16277,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.3.0": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -12149,6 +16304,15 @@ __metadata: languageName: node linkType: hard +"fast-url-parser@npm:1.1.3": + version: 1.1.3 + resolution: "fast-url-parser@npm:1.1.3" + dependencies: + punycode: ^1.3.2 + checksum: 5043d0c4a8d775ff58504d56c096563c11b113e4cb8a2668c6f824a1cd4fb3812e2fdf76537eb24a7ce4ae7def6bd9747da630c617cf2a4b6ce0c42514e4f21c + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.15.0 resolution: "fastq@npm:1.15.0" @@ -12167,6 +16331,15 @@ __metadata: languageName: node linkType: hard +"faye-websocket@npm:^0.11.3": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: ">=0.5.1" + checksum: d49a62caf027f871149fc2b3f3c7104dc6d62744277eb6f9f36e2d5714e847d846b9f7f0d0b7169b25a012e24a594cde11a93034b30732e4c683f20b8a5019fa + languageName: node + linkType: hard + "fb-watchman@npm:^2.0.0": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" @@ -12176,6 +16349,37 @@ __metadata: languageName: node linkType: hard +"fbemitter@npm:^3.0.0": + version: 3.0.0 + resolution: "fbemitter@npm:3.0.0" + dependencies: + fbjs: ^3.0.0 + checksum: 069690b8cdff3521ade3c9beb92ba0a38d818a86ef36dff8690e66749aef58809db4ac0d6938eb1cacea2dbef5f2a508952d455669590264cdc146bbe839f605 + languageName: node + linkType: hard + +"fbjs-css-vars@npm:^1.0.0": + version: 1.0.2 + resolution: "fbjs-css-vars@npm:1.0.2" + checksum: 72baf6d22c45b75109118b4daecb6c8016d4c83c8c0f23f683f22e9d7c21f32fff6201d288df46eb561e3c7d4bb4489b8ad140b7f56444c453ba407e8bd28511 + languageName: node + linkType: hard + +"fbjs@npm:^3.0.0, fbjs@npm:^3.0.1": + version: 3.0.5 + resolution: "fbjs@npm:3.0.5" + dependencies: + cross-fetch: ^3.1.5 + fbjs-css-vars: ^1.0.0 + loose-envify: ^1.0.0 + object-assign: ^4.1.0 + promise: ^7.1.1 + setimmediate: ^1.0.5 + ua-parser-js: ^1.0.35 + checksum: e609b5b64686bc96495a5c67728ed9b2710b9b3d695c5759c5f5e47c9483d1c323543ac777a86459e3694efc5712c6ce7212e944feb19752867d699568bb0e54 + languageName: node + linkType: hard + "fd-slicer@npm:~1.1.0": version: 1.1.0 resolution: "fd-slicer@npm:1.1.0" @@ -12185,6 +16389,15 @@ __metadata: languageName: node linkType: hard +"feed@npm:^4.2.2": + version: 4.2.2 + resolution: "feed@npm:4.2.2" + dependencies: + xml-js: ^1.6.11 + checksum: 2e6992a675a049511eef7bda8ca6c08cb9540cd10e8b275ec4c95d166228ec445a335fa8de990358759f248a92861e51decdcd32bf1c54737d5b7aed7c7ffe97 + languageName: node + linkType: hard + "fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": version: 3.2.0 resolution: "fetch-blob@npm:3.2.0" @@ -12241,6 +16454,18 @@ __metadata: languageName: node linkType: hard +"file-loader@npm:^6.2.0": + version: 6.2.0 + resolution: "file-loader@npm:6.2.0" + dependencies: + loader-utils: ^2.0.0 + schema-utils: ^3.0.0 + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: faf43eecf233f4897b0150aaa874eeeac214e4f9de49738a9e0ef734a30b5260059e85b7edadf852b98e415f875bd5f12587768a93fd52aaf2e479ecf95fab20 + languageName: node + linkType: hard + "file-type@npm:^11.1.0": version: 11.1.0 resolution: "file-type@npm:11.1.0" @@ -12303,6 +16528,13 @@ __metadata: languageName: node linkType: hard +"filesize@npm:^8.0.6": + version: 8.0.7 + resolution: "filesize@npm:8.0.7" + checksum: 8603d27c5287b984cb100733640645e078f5f5ad65c6d913173e01fb99e09b0747828498fd86647685ccecb69be31f3587b9739ab1e50732116b2374aff4cbf9 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -12451,6 +16683,18 @@ __metadata: languageName: node linkType: hard +"flux@npm:^4.0.1": + version: 4.0.4 + resolution: "flux@npm:4.0.4" + dependencies: + fbemitter: ^3.0.0 + fbjs: ^3.0.1 + peerDependencies: + react: ^15.0.2 || ^16.0.0 || ^17.0.0 + checksum: 8fa5c2f9322258de3e331f67c6f1078a7f91c4dec9dbe8a54c4b8a80eed19a4f91889028b768668af4a796e8f2ee75e461e1571b8615432a3920ae95cc4ff794 + languageName: node + linkType: hard + "focus-lock@npm:^1.0.0": version: 1.0.0 resolution: "focus-lock@npm:1.0.0" @@ -12460,6 +16704,16 @@ __metadata: languageName: node linkType: hard +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.7": + version: 1.15.3 + resolution: "follow-redirects@npm:1.15.3" + peerDependenciesMeta: + debug: + optional: true + checksum: 584da22ec5420c837bd096559ebfb8fe69d82512d5585004e36a3b4a6ef6d5905780e0c74508c7b72f907d1fa2b7bd339e613859e9c304d0dc96af2027fd0231 + languageName: node + linkType: hard + "follow-redirects@npm:^1.12.1, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.0": version: 1.15.2 resolution: "follow-redirects@npm:1.15.2" @@ -12496,6 +16750,37 @@ __metadata: languageName: node linkType: hard +"fork-ts-checker-webpack-plugin@npm:^6.5.0": + version: 6.5.3 + resolution: "fork-ts-checker-webpack-plugin@npm:6.5.3" + dependencies: + "@babel/code-frame": ^7.8.3 + "@types/json-schema": ^7.0.5 + chalk: ^4.1.0 + chokidar: ^3.4.2 + cosmiconfig: ^6.0.0 + deepmerge: ^4.2.2 + fs-extra: ^9.0.0 + glob: ^7.1.6 + memfs: ^3.1.2 + minimatch: ^3.0.4 + schema-utils: 2.7.0 + semver: ^7.3.2 + tapable: ^1.0.0 + peerDependencies: + eslint: ">= 6" + typescript: ">= 2.7" + vue-template-compiler: "*" + webpack: ">= 4" + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + checksum: 9732a49bfeed8fc23e6e8a59795fa7c238edeba91040a9b520db54b4d316dda27f9f1893d360e296fd0ad8930627d364417d28a8c7007fba60cc730ebfce4956 + languageName: node + linkType: hard + "form-data-encoder@npm:1.7.1": version: 1.7.1 resolution: "form-data-encoder@npm:1.7.1" @@ -12584,6 +16869,13 @@ __metadata: languageName: node linkType: hard +"fraction.js@npm:^4.3.6": + version: 4.3.7 + resolution: "fraction.js@npm:4.3.7" + checksum: e1553ae3f08e3ba0e8c06e43a3ab20b319966dfb7ddb96fd9b5d0ee11a66571af7f993229c88ebbb0d4a816eb813a24ed48207b140d442a8f76f33763b8d1f3f + languageName: node + linkType: hard + "framer-motion@npm:^10.16.4": version: 10.16.4 resolution: "framer-motion@npm:10.16.4" @@ -12638,7 +16930,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": +"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": version: 9.1.0 resolution: "fs-extra@npm:9.1.0" dependencies: @@ -12663,7 +16955,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^10.0.0": +"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" dependencies: @@ -12734,6 +17026,13 @@ __metadata: languageName: node linkType: hard +"fs-monkey@npm:^1.0.4": + version: 1.0.5 + resolution: "fs-monkey@npm:1.0.5" + checksum: 424b67f65b37fe66117ae2bb061f790fe6d4b609e1d160487c74b3d69fbf42f262c665ccfba32e8b5f113f96f92e9a58fcdebe42d5f6649bdfc72918093a3119 + languageName: node + linkType: hard + "fs-readdir-recursive@npm:^1.1.0": version: 1.1.0 resolution: "fs-readdir-recursive@npm:1.1.0" @@ -12854,7 +17153,7 @@ __metadata: languageName: node linkType: hard -"gensync@npm:^1.0.0-beta.2": +"gensync@npm:^1.0.0-beta.1, gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec @@ -13042,6 +17341,13 @@ __metadata: languageName: node linkType: hard +"github-slugger@npm:^1.4.0": + version: 1.5.0 + resolution: "github-slugger@npm:1.5.0" + checksum: c70988224578b3bdaa25df65973ffc8c24594a77a28550c3636e495e49d17aef5cdb04c04fa3f1744babef98c61eecc6a43299a13ea7f3cc33d680bf9053ffbe + languageName: node + linkType: hard + "gittar@npm:^0.1.1": version: 0.1.1 resolution: "gittar@npm:0.1.1" @@ -13061,7 +17367,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^6.0.2": +"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -13195,6 +17501,15 @@ __metadata: languageName: node linkType: hard +"global-dirs@npm:^3.0.0": + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" + dependencies: + ini: 2.0.0 + checksum: 70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 + languageName: node + linkType: hard + "global-modules@npm:^1.0.0": version: 1.0.0 resolution: "global-modules@npm:1.0.0" @@ -13290,7 +17605,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.4, globby@npm:^11.1.0": +"globby@npm:^11.0.1, globby@npm:^11.0.4, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -13304,6 +17619,19 @@ __metadata: languageName: node linkType: hard +"globby@npm:^13.1.1": + version: 13.2.2 + resolution: "globby@npm:13.2.2" + dependencies: + dir-glob: ^3.0.1 + fast-glob: ^3.3.0 + ignore: ^5.2.4 + merge2: ^1.4.1 + slash: ^4.0.0 + checksum: f3d84ced58a901b4fcc29c846983108c426631fe47e94872868b65565495f7bee7b3defd68923bd480582771fd4bbe819217803a164a618ad76f1d22f666f41e + languageName: node + linkType: hard + "globby@npm:^6.1.0": version: 6.1.0 resolution: "globby@npm:6.1.0" @@ -13347,7 +17675,7 @@ __metadata: languageName: node linkType: hard -"got@npm:9.6.0": +"got@npm:9.6.0, got@npm:^9.6.0": version: 9.6.0 resolution: "got@npm:9.6.0" dependencies: @@ -13410,7 +17738,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -13424,6 +17752,18 @@ __metadata: languageName: node linkType: hard +"gray-matter@npm:^4.0.3": + version: 4.0.3 + resolution: "gray-matter@npm:4.0.3" + dependencies: + js-yaml: ^3.13.1 + kind-of: ^6.0.2 + section-matter: ^1.0.0 + strip-bom-string: ^1.0.0 + checksum: 37717bd424344487d655392251ce8d8878a1275ee087003e61208fba3bfd59cbb73a85b2159abf742ae95e23db04964813fdc33ae18b074208428b2528205222 + languageName: node + linkType: hard + "growl@npm:1.10.5": version: 1.10.5 resolution: "growl@npm:1.10.5" @@ -13431,6 +17771,22 @@ __metadata: languageName: node linkType: hard +"gzip-size@npm:^6.0.0": + version: 6.0.0 + resolution: "gzip-size@npm:6.0.0" + dependencies: + duplexer: ^0.1.2 + checksum: 2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194 + languageName: node + linkType: hard + +"handle-thing@npm:^2.0.0": + version: 2.0.1 + resolution: "handle-thing@npm:2.0.1" + checksum: 68071f313062315cd9dce55710e9496873945f1dd425107007058fc1629f93002a7649fcc3e464281ce02c7e809a35f5925504ab8105d972cf649f1f47cb7d6c + languageName: node + linkType: hard + "handlebars@npm:^4.0.1": version: 4.7.7 resolution: "handlebars@npm:4.7.7" @@ -13750,7 +18106,7 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.0, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.0, has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 @@ -13782,6 +18138,13 @@ __metadata: languageName: node linkType: hard +"has-yarn@npm:^2.1.0": + version: 2.1.0 + resolution: "has-yarn@npm:2.1.0" + checksum: 5eb1d0bb8518103d7da24532bdbc7124ffc6d367b5d3c10840b508116f2f1bcbcf10fd3ba843ff6e2e991bdf9969fd862d42b2ed58aade88343326c950b7e7f7 + languageName: node + linkType: hard + "has@npm:^1.0.3": version: 1.0.3 resolution: "has@npm:1.0.3" @@ -13831,6 +18194,35 @@ __metadata: languageName: node linkType: hard +"hast-to-hyperscript@npm:^9.0.0": + version: 9.0.1 + resolution: "hast-to-hyperscript@npm:9.0.1" + dependencies: + "@types/unist": ^2.0.3 + comma-separated-tokens: ^1.0.0 + property-information: ^5.3.0 + space-separated-tokens: ^1.0.0 + style-to-object: ^0.3.0 + unist-util-is: ^4.0.0 + web-namespaces: ^1.0.0 + checksum: de570d789853018fff2fd38fc096549b9814e366b298f60c90c159a57018230eefc44d46a246027b0e2426ed9e99f2e270050bc183d5bdfe4c9487c320b392cd + languageName: node + linkType: hard + +"hast-util-from-parse5@npm:^6.0.0": + version: 6.0.1 + resolution: "hast-util-from-parse5@npm:6.0.1" + dependencies: + "@types/parse5": ^5.0.0 + hastscript: ^6.0.0 + property-information: ^5.0.0 + vfile: ^4.0.0 + vfile-location: ^3.2.0 + web-namespaces: ^1.0.0 + checksum: 4daa78201468af7779161e7caa2513c329830778e0528481ab16b3e1bcef4b831f6285b526aacdddbee802f3bd9d64df55f80f010591ea1916da535e3a923b83 + languageName: node + linkType: hard + "hast-util-parse-selector@npm:^2.0.0": version: 2.2.5 resolution: "hast-util-parse-selector@npm:2.2.5" @@ -13838,6 +18230,37 @@ __metadata: languageName: node linkType: hard +"hast-util-raw@npm:6.0.1": + version: 6.0.1 + resolution: "hast-util-raw@npm:6.0.1" + dependencies: + "@types/hast": ^2.0.0 + hast-util-from-parse5: ^6.0.0 + hast-util-to-parse5: ^6.0.0 + html-void-elements: ^1.0.0 + parse5: ^6.0.0 + unist-util-position: ^3.0.0 + vfile: ^4.0.0 + web-namespaces: ^1.0.0 + xtend: ^4.0.0 + zwitch: ^1.0.0 + checksum: f6d960644f9fbbe0b92d0227b20a24d659cce021d5f9fd218e077154931b4524ee920217b7fd5a45ec2736ec1dee53de9209fe449f6f89454c01d225ff0e7851 + languageName: node + linkType: hard + +"hast-util-to-parse5@npm:^6.0.0": + version: 6.0.0 + resolution: "hast-util-to-parse5@npm:6.0.0" + dependencies: + hast-to-hyperscript: ^9.0.0 + property-information: ^5.0.0 + web-namespaces: ^1.0.0 + xtend: ^4.0.0 + zwitch: ^1.0.0 + checksum: 91a36244e37df1d63c8b7e865ab0c0a25bb7396155602be005cf71d95c348e709568f80e0f891681a3711d733ad896e70642dc41a05b574eddf2e07d285408a8 + languageName: node + linkType: hard + "hastscript@npm:^6.0.0": version: 6.0.0 resolution: "hastscript@npm:6.0.0" @@ -13851,7 +18274,7 @@ __metadata: languageName: node linkType: hard -"he@npm:1.2.0": +"he@npm:1.2.0, he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" bin: @@ -13874,6 +18297,20 @@ __metadata: languageName: node linkType: hard +"history@npm:^4.9.0": + version: 4.10.1 + resolution: "history@npm:4.10.1" + dependencies: + "@babel/runtime": ^7.1.2 + loose-envify: ^1.2.0 + resolve-pathname: ^3.0.0 + tiny-invariant: ^1.0.2 + tiny-warning: ^1.0.0 + value-equal: ^1.0.1 + checksum: addd84bc4683929bae4400419b5af132ff4e4e9b311a0d4e224579ea8e184a6b80d7f72c55927e4fa117f69076a9e47ce082d8d0b422f1a9ddac7991490ca1d0 + languageName: node + linkType: hard + "hmac-drbg@npm:^1.0.1": version: 1.0.1 resolution: "hmac-drbg@npm:1.0.1" @@ -13885,7 +18322,7 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.3.1": +"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.1": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: @@ -13928,6 +18365,18 @@ __metadata: languageName: node linkType: hard +"hpack.js@npm:^2.1.6": + version: 2.1.6 + resolution: "hpack.js@npm:2.1.6" + dependencies: + inherits: ^2.0.1 + obuf: ^1.0.0 + readable-stream: ^2.0.1 + wbuf: ^1.1.0 + checksum: 2de144115197967ad6eeee33faf41096c6ba87078703c5cb011632dcfbffeb45784569e0cf02c317bd79c48375597c8ec88c30fff5bb0b023e8f654fb6e9c06e + languageName: node + linkType: hard + "html-encoding-sniffer@npm:^2.0.1": version: 2.0.1 resolution: "html-encoding-sniffer@npm:2.0.1" @@ -13937,13 +18386,96 @@ __metadata: languageName: node linkType: hard -"html-escaper@npm:^2.0.0": +"html-entities@npm:^2.3.2": + version: 2.4.0 + resolution: "html-entities@npm:2.4.0" + checksum: 25bea32642ce9ebd0eedc4d24381883ecb0335ccb8ac26379a0958b9b16652fdbaa725d70207ce54a51db24103436a698a8e454397d3ba8ad81460224751f1dc + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.0, html-escaper@npm:^2.0.2": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 languageName: node linkType: hard +"html-minifier-terser@npm:^6.0.2, html-minifier-terser@npm:^6.1.0": + version: 6.1.0 + resolution: "html-minifier-terser@npm:6.1.0" + dependencies: + camel-case: ^4.1.2 + clean-css: ^5.2.2 + commander: ^8.3.0 + he: ^1.2.0 + param-case: ^3.0.4 + relateurl: ^0.2.7 + terser: ^5.10.0 + bin: + html-minifier-terser: cli.js + checksum: ac52c14006476f773204c198b64838477859dc2879490040efab8979c0207424da55d59df7348153f412efa45a0840a1ca3c757bf14767d23a15e3e389d37a93 + languageName: node + linkType: hard + +"html-tags@npm:^3.2.0": + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce + languageName: node + linkType: hard + +"html-void-elements@npm:^1.0.0": + version: 1.0.5 + resolution: "html-void-elements@npm:1.0.5" + checksum: 1a56f4f6cfbeb994c21701ff72b4b7f556fe784a70e5e554d1566ff775af83b91ea93f10664f039a67802d9f7b40d4a7f1ed20312bab47bd88d89bd792ea84ca + languageName: node + linkType: hard + +"html-webpack-plugin@npm:^5.5.0": + version: 5.6.0 + resolution: "html-webpack-plugin@npm:5.6.0" + dependencies: + "@types/html-minifier-terser": ^6.0.0 + html-minifier-terser: ^6.0.2 + lodash: ^4.17.21 + pretty-error: ^4.0.0 + tapable: ^2.0.0 + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 32a6e41da538e798fd0be476637d7611a5e8a98a3508f031996e9eb27804dcdc282cb01f847cf5d066f21b49cfb8e21627fcf977ffd0c9bea81cf80e5a65070d + languageName: node + linkType: hard + +"htmlparser2@npm:^6.1.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.0.0 + domutils: ^2.5.2 + entities: ^2.0.0 + checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e + languageName: node + linkType: hard + +"htmlparser2@npm:^8.0.1": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 + languageName: node + linkType: hard + "http-basic@npm:^8.1.1": version: 8.1.3 resolution: "http-basic@npm:8.1.3" @@ -13970,6 +18502,13 @@ __metadata: languageName: node linkType: hard +"http-deceiver@npm:^1.2.7": + version: 1.2.7 + resolution: "http-deceiver@npm:1.2.7" + checksum: 64d7d1ae3a6933eb0e9a94e6f27be4af45a53a96c3c34e84ff57113787105a89fff9d1c3df263ef63add823df019b0e8f52f7121e32393bb5ce9a713bf100b41 + languageName: node + linkType: hard + "http-errors@npm:2.0.0": version: 2.0.0 resolution: "http-errors@npm:2.0.0" @@ -13983,6 +18522,18 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:~1.6.2": + version: 1.6.3 + resolution: "http-errors@npm:1.6.3" + dependencies: + depd: ~1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: ">= 1.4.0 < 2" + checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c + languageName: node + linkType: hard + "http-https@npm:^1.0.0": version: 1.0.0 resolution: "http-https@npm:1.0.0" @@ -13990,6 +18541,13 @@ __metadata: languageName: node linkType: hard +"http-parser-js@npm:>=0.5.1": + version: 0.5.8 + resolution: "http-parser-js@npm:0.5.8" + checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d + languageName: node + linkType: hard + "http-proxy-agent@npm:^4.0.1": version: 4.0.1 resolution: "http-proxy-agent@npm:4.0.1" @@ -14012,6 +18570,35 @@ __metadata: languageName: node linkType: hard +"http-proxy-middleware@npm:^2.0.3": + version: 2.0.6 + resolution: "http-proxy-middleware@npm:2.0.6" + dependencies: + "@types/http-proxy": ^1.17.8 + http-proxy: ^1.18.1 + is-glob: ^4.0.1 + is-plain-obj: ^3.0.0 + micromatch: ^4.0.2 + peerDependencies: + "@types/express": ^4.17.13 + peerDependenciesMeta: + "@types/express": + optional: true + checksum: 2ee85bc878afa6cbf34491e972ece0f5be0a3e5c98a60850cf40d2a9a5356e1fc57aab6cff33c1fc37691b0121c3a42602d2b1956c52577e87a5b77b62ae1c3a + languageName: node + linkType: hard + +"http-proxy@npm:^1.18.1": + version: 1.18.1 + resolution: "http-proxy@npm:1.18.1" + dependencies: + eventemitter3: ^4.0.0 + follow-redirects: ^1.0.0 + requires-port: ^1.0.0 + checksum: f5bd96bf83e0b1e4226633dbb51f8b056c3e6321917df402deacec31dd7fe433914fc7a2c1831cf7ae21e69c90b3a669b8f434723e9e8b71fd68afe30737b6a5 + languageName: node + linkType: hard + "http-response-object@npm:^3.0.1": version: 3.0.2 resolution: "http-response-object@npm:3.0.2" @@ -14112,6 +18699,15 @@ __metadata: languageName: node linkType: hard +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 + languageName: node + linkType: hard + "idb@npm:^7.0.1": version: 7.1.1 resolution: "idb@npm:7.1.1" @@ -14151,6 +18747,31 @@ __metadata: languageName: node linkType: hard +"image-size@npm:^1.0.1": + version: 1.0.2 + resolution: "image-size@npm:1.0.2" + dependencies: + queue: 6.0.2 + bin: + image-size: bin/image-size.js + checksum: 01745fdb47f87cecf538e69c63f9adc5bfab30a345345c2de91105f3afbd1bfcfba1256af02bf3323077b33b0004469a837e077bf0cbb9c907e9c1e9e7547585 + languageName: node + linkType: hard + +"immer@npm:^9.0.7": + version: 9.0.21 + resolution: "immer@npm:9.0.21" + checksum: 70e3c274165995352f6936695f0ef4723c52c92c92dd0e9afdfe008175af39fa28e76aafb3a2ca9d57d1fb8f796efc4dd1e1cc36f18d33fa5b74f3dfb0375432 + languageName: node + linkType: hard + +"immutable@npm:^4.0.0": + version: 4.3.4 + resolution: "immutable@npm:4.3.4" + checksum: de3edd964c394bab83432429d3fb0b4816b42f56050f2ca913ba520bd3068ec3e504230d0800332d3abc478616e8f55d3787424a90d0952e6aba864524f1afc3 + languageName: node + linkType: hard + "immutable@npm:^4.0.0-rc.12": version: 4.3.0 resolution: "immutable@npm:4.3.0" @@ -14158,7 +18779,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -14168,6 +18789,13 @@ __metadata: languageName: node linkType: hard +"import-lazy@npm:^2.1.0": + version: 2.1.0 + resolution: "import-lazy@npm:2.1.0" + checksum: 05294f3b9dd4971d3a996f0d2f176410fb6745d491d6e73376429189f5c1c3d290548116b2960a7cf3e89c20cdf11431739d1d2d8c54b84061980795010e803a + languageName: node + linkType: hard + "import-local@npm:^3.0.2": version: 3.1.0 resolution: "import-local@npm:3.1.0" @@ -14201,6 +18829,13 @@ __metadata: languageName: node linkType: hard +"infima@npm:0.2.0-alpha.42": + version: 0.2.0-alpha.42 + resolution: "infima@npm:0.2.0-alpha.42" + checksum: 7206f36639c00a08daab811fedc748068951497efb5ec948cba846fb23856443668015f6bd65ddebe857cc2235f6ca98429f7018c73dcac47b0361ef4721bb8f + languageName: node + linkType: hard + "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -14211,20 +18846,41 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.0, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 languageName: node linkType: hard -"ini@npm:^1.3.4, ini@npm:^1.3.5": +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e + languageName: node + linkType: hard + +"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 languageName: node linkType: hard +"inline-style-parser@npm:0.1.1": + version: 0.1.1 + resolution: "inline-style-parser@npm:0.1.1" + checksum: 5d545056a3e1f2bf864c928a886a0e1656a3517127d36917b973de581bd54adc91b4bf1febcb0da054f204b4934763f1a4e09308b4d55002327cf1d48ac5d966 + languageName: node + linkType: hard + "inquirer@npm:8.2.5": version: 8.2.5 resolution: "inquirer@npm:8.2.5" @@ -14338,7 +18994,7 @@ __metadata: languageName: node linkType: hard -"is-alphabetical@npm:^1.0.0": +"is-alphabetical@npm:1.0.4, is-alphabetical@npm:^1.0.0": version: 1.0.4 resolution: "is-alphabetical@npm:1.0.4" checksum: 6508cce44fd348f06705d377b260974f4ce68c74000e7da4045f0d919e568226dc3ce9685c5a2af272195384df6930f748ce9213fc9f399b5d31b362c66312cb @@ -14420,7 +19076,7 @@ __metadata: languageName: node linkType: hard -"is-buffer@npm:^2.0.5, is-buffer@npm:~2.0.3": +"is-buffer@npm:^2.0.0, is-buffer@npm:^2.0.5, is-buffer@npm:~2.0.3": version: 2.0.5 resolution: "is-buffer@npm:2.0.5" checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 @@ -14450,6 +19106,17 @@ __metadata: languageName: node linkType: hard +"is-ci@npm:^2.0.0": + version: 2.0.0 + resolution: "is-ci@npm:2.0.0" + dependencies: + ci-info: ^2.0.0 + bin: + is-ci: bin.js + checksum: 77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 + languageName: node + linkType: hard + "is-core-module@npm:^2.11.0": version: 2.11.0 resolution: "is-core-module@npm:2.11.0" @@ -14493,6 +19160,22 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 + languageName: node + linkType: hard + +"is-extendable@npm:^0.1.0": + version: 0.1.1 + resolution: "is-extendable@npm:0.1.1" + checksum: 3875571d20a7563772ecc7a5f36cb03167e9be31ad259041b4a8f73f33f885441f778cee1f1fe0085eb4bc71679b9d8c923690003a36a6a5fdf8023e6e3f0672 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -14576,6 +19259,16 @@ __metadata: languageName: node linkType: hard +"is-installed-globally@npm:^0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: ^3.0.0 + is-path-inside: ^3.0.2 + checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -14625,6 +19318,13 @@ __metadata: languageName: node linkType: hard +"is-npm@npm:^5.0.0": + version: 5.0.0 + resolution: "is-npm@npm:5.0.0" + checksum: 9baff02b0c69a3d3c79b162cb2f9e67fb40ef6d172c16601b2e2471c21e9a4fa1fc9885a308d7bc6f3a3cd2a324c27fa0bf284c133c3349bb22571ab70d041cc + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -14662,7 +19362,7 @@ __metadata: languageName: node linkType: hard -"is-path-cwd@npm:^2.0.0": +"is-path-cwd@npm:^2.0.0, is-path-cwd@npm:^2.2.0": version: 2.2.0 resolution: "is-path-cwd@npm:2.2.0" checksum: 46a840921bb8cc0dc7b5b423a14220e7db338072a4495743a8230533ce78812dc152548c86f4b828411fe98c5451959f07cf841c6a19f611e46600bd699e8048 @@ -14687,7 +19387,7 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^3.0.3": +"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 @@ -14701,13 +19401,36 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^2.1.0": +"is-plain-obj@npm:^2.0.0, is-plain-obj@npm:^2.1.0": version: 2.1.0 resolution: "is-plain-obj@npm:2.1.0" checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa languageName: node linkType: hard +"is-plain-obj@npm:^3.0.0": + version: 3.0.0 + resolution: "is-plain-obj@npm:3.0.0" + checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: ^3.0.1 + checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + "is-potential-custom-element-name@npm:^1.0.1": version: 1.0.1 resolution: "is-potential-custom-element-name@npm:1.0.1" @@ -14748,6 +19471,13 @@ __metadata: languageName: node linkType: hard +"is-root@npm:^2.1.0": + version: 2.1.0 + resolution: "is-root@npm:2.1.0" + checksum: 37eea0822a2a9123feb58a9d101558ba276771a6d830f87005683349a9acff15958a9ca590a44e778c6b335660b83e85c744789080d734f6081a935a4880aee2 + languageName: node + linkType: hard + "is-set@npm:^2.0.1": version: 2.0.2 resolution: "is-set@npm:2.0.2" @@ -14901,6 +19631,13 @@ __metadata: languageName: node linkType: hard +"is-whitespace-character@npm:^1.0.0": + version: 1.0.4 + resolution: "is-whitespace-character@npm:1.0.4" + checksum: adab8ad9847ccfcb6f1b7000b8f622881b5ba2a09ce8be2794a6d2b10c3af325b469fc562c9fb889f468eed27be06e227ac609d0aa1e3a59b4dbcc88e2b0418e + languageName: node + linkType: hard + "is-windows@npm:^1.0.1": version: 1.0.2 resolution: "is-windows@npm:1.0.2" @@ -14908,6 +19645,36 @@ __metadata: languageName: node linkType: hard +"is-word-character@npm:^1.0.0": + version: 1.0.4 + resolution: "is-word-character@npm:1.0.4" + checksum: 1821d6c6abe5bc0b3abe3fdc565d66d7c8a74ea4e93bc77b4a47d26e2e2a306d6ab7d92b353b0d2b182869e3ecaa8f4a346c62d0e31d38ebc0ceaf7cae182c3f + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: ^2.0.0 + checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 + languageName: node + linkType: hard + +"is-yarn-global@npm:^0.3.0": + version: 0.3.0 + resolution: "is-yarn-global@npm:0.3.0" + checksum: bca013d65fee2862024c9fbb3ba13720ffca2fe750095174c1c80922fdda16402b5c233f5ac9e265bc12ecb5446e7b7f519a32d9541788f01d4d44e24d2bf481 + languageName: node + linkType: hard + +"isarray@npm:0.0.1": + version: 0.0.1 + resolution: "isarray@npm:0.0.1" + checksum: 49191f1425681df4a18c2f0f93db3adb85573bcdd6a4482539d98eac9e705d8961317b01175627e860516a2fc45f8f9302db26e5a380a97a520e272e2a40a8d4 + languageName: node + linkType: hard + "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" @@ -14929,6 +19696,13 @@ __metadata: languageName: node linkType: hard +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -15469,6 +20243,20 @@ __metadata: languageName: node linkType: hard +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca + languageName: node + linkType: hard + "jest-validate@npm:^27.5.1": version: 27.5.1 resolution: "jest-validate@npm:27.5.1" @@ -15520,6 +20308,18 @@ __metadata: languageName: node linkType: hard +"jest-worker@npm:^29.1.2": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "*" + jest-util: ^29.7.0 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 + languageName: node + linkType: hard + "jest@npm:^27.4.1": version: 27.5.1 resolution: "jest@npm:27.5.1" @@ -15547,6 +20347,28 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^1.18.2": + version: 1.21.0 + resolution: "jiti@npm:1.21.0" + bin: + jiti: bin/jiti.js + checksum: a7bd5d63921c170eaec91eecd686388181c7828e1fa0657ab374b9372bfc1f383cf4b039e6b272383d5cb25607509880af814a39abdff967322459cca41f2961 + languageName: node + linkType: hard + +"joi@npm:^17.6.0": + version: 17.11.0 + resolution: "joi@npm:17.11.0" + dependencies: + "@hapi/hoek": ^9.0.0 + "@hapi/topo": ^5.0.0 + "@sideway/address": ^4.1.3 + "@sideway/formula": ^3.0.1 + "@sideway/pinpoint": ^2.0.0 + checksum: 3a4e9ecba345cdafe585e7ed8270a44b39718e11dff3749aa27e0001a63d578b75100c062be28e6f48f960b594864034e7a13833f33fbd7ad56d5ce6b617f9bf + languageName: node + linkType: hard + "js-cleanup@npm:^1.2.0": version: 1.2.0 resolution: "js-cleanup@npm:1.2.0" @@ -15714,7 +20536,7 @@ __metadata: languageName: node linkType: hard -"json-parse-even-better-errors@npm:^2.3.0": +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f @@ -15774,7 +20596,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.2": +"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -15920,7 +20742,7 @@ __metadata: languageName: node linkType: hard -"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": +"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b @@ -15946,6 +20768,13 @@ __metadata: languageName: node linkType: hard +"klona@npm:^2.0.4": + version: 2.0.6 + resolution: "klona@npm:2.0.6" + checksum: ac9ee3732e42b96feb67faae4d27cf49494e8a3bf3fa7115ce242fe04786788e0aff4741a07a45a2462e2079aa983d73d38519c85d65b70ef11447bbc3c58ce7 + languageName: node + linkType: hard + "kolorist@npm:^1.6.0": version: 1.7.0 resolution: "kolorist@npm:1.7.0" @@ -15969,6 +20798,25 @@ __metadata: languageName: node linkType: hard +"latest-version@npm:^5.1.0": + version: 5.1.0 + resolution: "latest-version@npm:5.1.0" + dependencies: + package-json: ^6.3.0 + checksum: fbc72b071eb66c40f652441fd783a9cca62f08bf42433651937f078cd9ef94bf728ec7743992777826e4e89305aef24f234b515e6030503a2cbee7fc9bdc2c0f + languageName: node + linkType: hard + +"launch-editor@npm:^2.6.0": + version: 2.6.1 + resolution: "launch-editor@npm:2.6.1" + dependencies: + picocolors: ^1.0.0 + shell-quote: ^1.8.1 + checksum: e06d193075ac09f7f8109f10cabe464a211bf7ed4cbe75f83348d6f67bf4d9f162f06e7a1ab3e1cd7fc250b5342c3b57080618aff2e646dc34248fe499227601 + languageName: node + linkType: hard + "level-supports@npm:^4.0.0": version: 4.0.1 resolution: "level-supports@npm:4.0.1" @@ -16030,6 +20878,13 @@ __metadata: languageName: node linkType: hard +"lilconfig@npm:^2.0.3": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -16082,6 +20937,13 @@ __metadata: languageName: node linkType: hard +"loader-runner@npm:^4.2.0": + version: 4.3.0 + resolution: "loader-runner@npm:4.3.0" + checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569 + languageName: node + linkType: hard + "loader-utils@npm:^2.0.0": version: 2.0.4 resolution: "loader-utils@npm:2.0.4" @@ -16093,6 +20955,13 @@ __metadata: languageName: node linkType: hard +"loader-utils@npm:^3.2.0": + version: 3.2.1 + resolution: "loader-utils@npm:3.2.1" + checksum: 4e3ea054cdc8be1ab1f1238f49f42fdf0483039eff920fb1d442039f3f0ad4ebd11fb8e584ccdf2cb7e3c56b3d40c1832416e6408a55651b843da288960cc792 + languageName: node + linkType: hard + "locate-path@npm:^2.0.0": version: 2.0.0 resolution: "locate-path@npm:2.0.0" @@ -16138,6 +21007,13 @@ __metadata: languageName: node linkType: hard +"lodash.curry@npm:^4.0.1": + version: 4.1.1 + resolution: "lodash.curry@npm:4.1.1" + checksum: 9192b70fe7df4d1ff780c0260bee271afa9168c93fe4fa24bc861900240531b59781b5fdaadf4644fea8f4fbcd96f0700539ab294b579ffc1022c6c15dcc462a + languageName: node + linkType: hard + "lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" @@ -16145,6 +21021,13 @@ __metadata: languageName: node linkType: hard +"lodash.flow@npm:^3.3.0": + version: 3.5.0 + resolution: "lodash.flow@npm:3.5.0" + checksum: a9a62ad344e3c5a1f42bc121da20f64dd855aaafecee24b1db640f29b88bd165d81c37ff7e380a7191de6f70b26f5918abcebbee8396624f78f3618a0b18634c + languageName: node + linkType: hard + "lodash.isplainobject@npm:^4.0.6": version: 4.0.6 resolution: "lodash.isplainobject@npm:4.0.6" @@ -16159,6 +21042,13 @@ __metadata: languageName: node linkType: hard +"lodash.memoize@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 + languageName: node + linkType: hard + "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -16187,7 +21077,7 @@ __metadata: languageName: node linkType: hard -"lodash.uniq@npm:^4.5.0": +"lodash.uniq@npm:4.5.0, lodash.uniq@npm:^4.5.0": version: 4.5.0 resolution: "lodash.uniq@npm:4.5.0" checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d @@ -16249,7 +21139,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -16269,6 +21159,15 @@ __metadata: languageName: node linkType: hard +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + "lowercase-keys@npm:1.0.0": version: 1.0.0 resolution: "lowercase-keys@npm:1.0.0" @@ -16490,6 +21389,13 @@ __metadata: languageName: node linkType: hard +"markdown-escapes@npm:^1.0.0": + version: 1.0.4 + resolution: "markdown-escapes@npm:1.0.4" + checksum: 6833a93d72d3f70a500658872312c6fa8015c20cc835a85ae6901fa232683fbc6ed7118ebe920fea7c80039a560f339c026597d96eee0e9de602a36921804997 + languageName: node + linkType: hard + "markdown-table@npm:^1.1.3": version: 1.1.3 resolution: "markdown-table@npm:1.1.3" @@ -16524,6 +21430,68 @@ __metadata: languageName: node linkType: hard +"mdast-squeeze-paragraphs@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-squeeze-paragraphs@npm:4.0.0" + dependencies: + unist-util-remove: ^2.0.0 + checksum: dfe8ec8e8a62171f020e82b088cc35cb9da787736dc133a3b45ce8811782a93e69bf06d147072e281079f09fac67be8a36153ffffd9bfbf89ed284e4c4f56f75 + languageName: node + linkType: hard + +"mdast-util-definitions@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-definitions@npm:4.0.0" + dependencies: + unist-util-visit: ^2.0.0 + checksum: 2325f20b82b3fb8cb5fda77038ee0bbdd44f82cfca7c48a854724b58bc1fe5919630a3ce7c45e210726df59d46c881d020b2da7a493bfd1ee36eb2bbfef5d78e + languageName: node + linkType: hard + +"mdast-util-to-hast@npm:10.0.1": + version: 10.0.1 + resolution: "mdast-util-to-hast@npm:10.0.1" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + mdast-util-definitions: ^4.0.0 + mdurl: ^1.0.0 + unist-builder: ^2.0.0 + unist-util-generated: ^1.0.0 + unist-util-position: ^3.0.0 + unist-util-visit: ^2.0.0 + checksum: e5f385757df7e9b37db4d6f326bf7b4fc1b40f9ad01fc335686578f44abe0ba46d3e60af4d5e5b763556d02e65069ef9a09c49db049b52659203a43e7fa9084d + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-to-string@npm:2.0.0" + checksum: 0b2113ada10e002fbccb014170506dabe2f2ddacaacbe4bc1045c33f986652c5a162732a2c057c5335cdb58419e2ad23e368e5be226855d4d4e280b81c4e9ec2 + languageName: node + linkType: hard + +"mdn-data@npm:2.0.14": + version: 2.0.14 + resolution: "mdn-data@npm:2.0.14" + checksum: 9d0128ed425a89f4cba8f787dca27ad9408b5cb1b220af2d938e2a0629d17d879a34d2cb19318bdb26c3f14c77dd5dfbae67211f5caaf07b61b1f2c5c8c7dc16 + languageName: node + linkType: hard + +"mdn-data@npm:2.0.4": + version: 2.0.4 + resolution: "mdn-data@npm:2.0.4" + checksum: add3c95e6d03d301b8a8bcfee3de33f4d07e4c5eee5b79f18d6d737de717e22472deadf67c1a8563983c0b603e10d7df40aa8e5fddf18884dfe118ccec7ae329 + languageName: node + linkType: hard + +"mdurl@npm:^1.0.0": + version: 1.0.1 + resolution: "mdurl@npm:1.0.1" + checksum: 71731ecba943926bfbf9f9b51e28b5945f9411c4eda80894221b47cc105afa43ba2da820732b436f0798fd3edbbffcd1fc1415843c41a87fea08a41cc1e3d02b + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -16531,6 +21499,15 @@ __metadata: languageName: node linkType: hard +"memfs@npm:^3.1.2, memfs@npm:^3.4.3": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: ^1.0.4 + checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 + languageName: node + linkType: hard + "memory-level@npm:^1.0.0": version: 1.0.0 resolution: "memory-level@npm:1.0.0" @@ -16625,14 +21602,30 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.52.0, mime-db@npm:^1.28.0": +"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.28.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.16, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-db@npm:~1.33.0": + version: 1.33.0 + resolution: "mime-db@npm:1.33.0" + checksum: 281a0772187c9b8f6096976cb193ac639c6007ac85acdbb8dc1617ed7b0f4777fa001d1b4f1b634532815e60717c84b2f280201d55677fb850c9d45015b50084 + languageName: node + linkType: hard + +"mime-types@npm:2.1.18": + version: 2.1.18 + resolution: "mime-types@npm:2.1.18" + dependencies: + mime-db: ~1.33.0 + checksum: 729265eff1e5a0e87cb7f869da742a610679585167d2f2ec997a7387fc6aedf8e5cad078e99b0164a927bdf3ace34fca27430d6487456ad090cba5594441ba43 + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.16, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -16694,6 +21687,17 @@ __metadata: languageName: node linkType: hard +"mini-css-extract-plugin@npm:^2.6.1": + version: 2.7.6 + resolution: "mini-css-extract-plugin@npm:2.7.6" + dependencies: + schema-utils: ^4.0.0 + peerDependencies: + webpack: ^5.0.0 + checksum: be6f7cefc6275168eb0a6b8fe977083a18c743c9612c9f00e6c1a62c3393ca7960e93fba1a7ebb09b75f36a0204ad087d772c1ef574bc29c90c0e8175a3c0b83 + languageName: node + linkType: hard + "minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" @@ -16708,7 +21712,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:2 || 3, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:2 || 3, minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -16953,7 +21957,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:0.5.x, mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5": +"mkdirp@npm:0.5.x, mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5, mkdirp@npm:~0.5.1": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: @@ -17224,6 +22228,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^1.0.0": + version: 1.0.1 + resolution: "mrmime@npm:1.0.1" + checksum: cc979da44bbbffebaa8eaf7a45117e851f2d4cb46a3ada6ceb78130466a04c15a0de9a9ce1c8b8ba6f6e1b8618866b1352992bf1757d241c0ddca558b9f28a77 + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -17272,6 +22283,18 @@ __metadata: languageName: node linkType: hard +"multicast-dns@npm:^7.2.5": + version: 7.2.5 + resolution: "multicast-dns@npm:7.2.5" + dependencies: + dns-packet: ^5.2.2 + thunky: ^1.0.2 + bin: + multicast-dns: cli.js + checksum: 00b8a57df152d4cd0297946320a94b7c3cdf75a46a2247f32f958a8927dea42958177f9b7fdae69fab2e4e033fb3416881af1f5e9055a3e1542888767139e2fb + languageName: node + linkType: hard + "multicodec@npm:^0.5.5": version: 0.5.7 resolution: "multicodec@npm:0.5.7" @@ -17348,6 +22371,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + languageName: node + linkType: hard + "napi-macros@npm:~2.0.0": version: 2.0.0 resolution: "napi-macros@npm:2.0.0" @@ -17376,7 +22408,7 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.6.0": +"neo-async@npm:^2.6.0, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 @@ -17530,6 +22562,16 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c + languageName: node + linkType: hard + "node-addon-api@npm:^2.0.0": version: 2.0.2 resolution: "node-addon-api@npm:2.0.2" @@ -17613,6 +22655,13 @@ __metadata: languageName: node linkType: hard +"node-forge@npm:^1": + version: 1.3.1 + resolution: "node-forge@npm:1.3.1" + checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 + languageName: node + linkType: hard + "node-gyp-build-optional-packages@npm:5.0.3": version: 5.0.3 resolution: "node-gyp-build-optional-packages@npm:5.0.3" @@ -17682,6 +22731,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 + languageName: node + linkType: hard + "node-releases@npm:^2.0.8": version: 2.0.10 resolution: "node-releases@npm:2.0.10" @@ -17772,6 +22828,13 @@ __metadata: languageName: node linkType: hard +"normalize-range@npm:^0.1.2": + version: 0.1.2 + resolution: "normalize-range@npm:0.1.2" + checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 + languageName: node + linkType: hard + "normalize-url@npm:2.0.1": version: 2.0.1 resolution: "normalize-url@npm:2.0.1" @@ -17900,6 +22963,31 @@ __metadata: languageName: node linkType: hard +"nprogress@npm:^0.2.0": + version: 0.2.0 + resolution: "nprogress@npm:0.2.0" + checksum: 66b7bec5d563ecf2d1c3d2815e6d5eb74ed815eee8563e0afa63d3f185ab1b9cf2ddd97e1ded263b9995c5019d26d600320e849e50f3747984daa033744619dc + languageName: node + linkType: hard + +"nth-check@npm:^1.0.2": + version: 1.0.2 + resolution: "nth-check@npm:1.0.2" + dependencies: + boolbase: ~1.0.0 + checksum: 59e115fdd75b971d0030f42ada3aac23898d4c03aa13371fa8b3339d23461d1badf3fde5aad251fb956aaa75c0a3b9bfcd07c08a34a83b4f9dadfdce1d19337c + languageName: node + linkType: hard + +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: ^1.0.0 + checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 + languageName: node + linkType: hard + "number-to-bn@npm:1.7.0": version: 1.7.0 resolution: "number-to-bn@npm:1.7.0" @@ -18028,6 +23116,19 @@ __metadata: languageName: node linkType: hard +"object.getownpropertydescriptors@npm:^2.1.0": + version: 2.1.7 + resolution: "object.getownpropertydescriptors@npm:2.1.7" + dependencies: + array.prototype.reduce: ^1.0.6 + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + safe-array-concat: ^1.0.0 + checksum: 8e7ae1d522a3874d2d23a3d0fb75828cbcee60958b65c2ad8e58ce227f4efba8cc2b59c7431a0fd48b20d9e04ec075bc0e0d694b1d2c2296e534daf558beb10b + languageName: node + linkType: hard + "object.hasown@npm:^1.1.2": version: 1.1.3 resolution: "object.hasown@npm:1.1.3" @@ -18038,6 +23139,17 @@ __metadata: languageName: node linkType: hard +"object.values@npm:^1.1.0": + version: 1.1.7 + resolution: "object.values@npm:1.1.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777 + languageName: node + linkType: hard + "object.values@npm:^1.1.6": version: 1.1.6 resolution: "object.values@npm:1.1.6" @@ -18065,6 +23177,13 @@ __metadata: languageName: node linkType: hard +"obuf@npm:^1.0.0, obuf@npm:^1.1.2": + version: 1.1.2 + resolution: "obuf@npm:1.1.2" + checksum: 41a2ba310e7b6f6c3b905af82c275bf8854896e2e4c5752966d64cbcd2f599cfffd5932006bcf3b8b419dfdacebb3a3912d5d94e10f1d0acab59876c8757f27f + languageName: node + linkType: hard + "ohmyfetch@npm:^0.4.21": version: 0.4.21 resolution: "ohmyfetch@npm:0.4.21" @@ -18086,6 +23205,13 @@ __metadata: languageName: node linkType: hard +"on-headers@npm:~1.0.2": + version: 1.0.2 + resolution: "on-headers@npm:1.0.2" + checksum: 2bf13467215d1e540a62a75021e8b318a6cfc5d4fc53af8e8f84ad98dbcea02d506c6d24180cd62e1d769c44721ba542f3154effc1f7579a8288c9f7873ed8e5 + languageName: node + linkType: hard + "once@npm:1.x, once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -18113,6 +23239,26 @@ __metadata: languageName: node linkType: hard +"open@npm:^8.0.9, open@npm:^8.4.0": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: ^2.0.0 + is-docker: ^2.1.1 + is-wsl: ^2.2.0 + checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26 + languageName: node + linkType: hard + +"opener@npm:^1.5.2": + version: 1.5.2 + resolution: "opener@npm:1.5.2" + bin: + opener: bin/opener-bin.js + checksum: 33b620c0d53d5b883f2abc6687dd1c5fd394d270dbe33a6356f2d71e0a2ec85b100d5bac94694198ccf5c30d592da863b2292c5539009c715a9c80c697b4f6cc + languageName: node + linkType: hard + "optionator@npm:^0.8.1": version: 0.8.3 resolution: "optionator@npm:0.8.3" @@ -18319,6 +23465,16 @@ __metadata: languageName: node linkType: hard +"p-retry@npm:^4.5.0": + version: 4.6.2 + resolution: "p-retry@npm:4.6.2" + dependencies: + "@types/retry": 0.12.0 + retry: ^0.13.1 + checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e + languageName: node + linkType: hard + "p-timeout@npm:^2.0.1": version: 2.0.1 resolution: "p-timeout@npm:2.0.1" @@ -18342,6 +23498,18 @@ __metadata: languageName: node linkType: hard +"package-json@npm:^6.3.0": + version: 6.5.0 + resolution: "package-json@npm:6.5.0" + dependencies: + got: ^9.6.0 + registry-auth-token: ^4.0.0 + registry-url: ^5.0.0 + semver: ^6.2.0 + checksum: cc9f890d3667d7610e6184decf543278b87f657d1ace0deb4a9c9155feca738ef88f660c82200763d3348010f4e42e9c7adc91e96ab0f86a770955995b5351e2 + languageName: node + linkType: hard + "pacote@npm:^15.1.1": version: 15.1.1 resolution: "pacote@npm:15.1.1" @@ -18370,6 +23538,16 @@ __metadata: languageName: node linkType: hard +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -18432,6 +23610,13 @@ __metadata: languageName: node linkType: hard +"parse-numeric-range@npm:^1.3.0": + version: 1.3.0 + resolution: "parse-numeric-range@npm:1.3.0" + checksum: 289ca126d5b8ace7325b199218de198014f58ea6895ccc88a5247491d07f0143bf047f80b4a31784f1ca8911762278d7d6ecb90a31dfae31da91cc1a2524c8ce + languageName: node + linkType: hard + "parse-passwd@npm:^1.0.0": version: 1.0.0 resolution: "parse-passwd@npm:1.0.0" @@ -18439,20 +23624,49 @@ __metadata: languageName: node linkType: hard -"parse5@npm:6.0.1": +"parse5-htmlparser2-tree-adapter@npm:^7.0.0": + version: 7.0.0 + resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0" + dependencies: + domhandler: ^5.0.2 + parse5: ^7.0.0 + checksum: fc5d01e07733142a1baf81de5c2a9c41426c04b7ab29dd218acb80cd34a63177c90aff4a4aee66cf9f1d0aeecff1389adb7452ad6f8af0a5888e3e9ad6ef733d + languageName: node + linkType: hard + +"parse5@npm:6.0.1, parse5@npm:^6.0.0": version: 6.0.1 resolution: "parse5@npm:6.0.1" checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd languageName: node linkType: hard -"parseurl@npm:~1.3.3": +"parse5@npm:^7.0.0": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: ^4.4.0 + checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + languageName: node + linkType: hard + +"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 languageName: node linkType: hard +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -18474,7 +23688,7 @@ __metadata: languageName: node linkType: hard -"path-is-inside@npm:^1.0.2": +"path-is-inside@npm:1.0.2, path-is-inside@npm:^1.0.2": version: 1.0.2 resolution: "path-is-inside@npm:1.0.2" checksum: 0b5b6c92d3018b82afb1f74fe6de6338c4c654de4a96123cb343f2b747d5606590ac0c890f956ed38220a4ab59baddfd7b713d78a62d240b20b14ab801fa02cb @@ -18547,6 +23761,22 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:2.2.1": + version: 2.2.1 + resolution: "path-to-regexp@npm:2.2.1" + checksum: b921a74e7576e25b06ad1635abf7e8125a29220d2efc2b71d74b9591f24a27e6f09078fa9a1b27516a097ea0637b7cab79d19b83d7f36a8ef3ef5422770e89d9 + languageName: node + linkType: hard + +"path-to-regexp@npm:^1.7.0": + version: 1.8.0 + resolution: "path-to-regexp@npm:1.8.0" + dependencies: + isarray: 0.0.1 + checksum: 709f6f083c0552514ef4780cb2e7e4cf49b0cc89a97439f2b7cc69a608982b7690fb5d1720a7473a59806508fc2dae0be751ba49f495ecf89fd8fbc62abccbcd + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -18716,6 +23946,15 @@ __metadata: languageName: node linkType: hard +"pkg-up@npm:^3.1.0": + version: 3.1.0 + resolution: "pkg-up@npm:3.1.0" + dependencies: + find-up: ^3.0.0 + checksum: 5bac346b7c7c903613c057ae3ab722f320716199d753f4a7d053d38f2b5955460f3e6ab73b4762c62fd3e947f58e04f1343e92089e7bb6091c90877406fcd8c8 + languageName: node + linkType: hard + "pluralize@npm:^8.0.0": version: 8.0.0 resolution: "pluralize@npm:8.0.0" @@ -18730,13 +23969,440 @@ __metadata: languageName: node linkType: hard -"postcss-value-parser@npm:^4.0.2": +"postcss-calc@npm:^8.2.3": + version: 8.2.4 + resolution: "postcss-calc@npm:8.2.4" + dependencies: + postcss-selector-parser: ^6.0.9 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.2 + checksum: 314b4cebb0c4ed0cf8356b4bce71eca78f5a7842e6a3942a3bba49db168d5296b2bd93c3f735ae1c616f2651d94719ade33becc03c73d2d79c7394fb7f73eabb + languageName: node + linkType: hard + +"postcss-colormin@npm:^5.3.1": + version: 5.3.1 + resolution: "postcss-colormin@npm:5.3.1" + dependencies: + browserslist: ^4.21.4 + caniuse-api: ^3.0.0 + colord: ^2.9.1 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: e5778baab30877cd1f51e7dc9d2242a162aeca6360a52956acd7f668c5bc235c2ccb7e4df0370a804d65ebe00c5642366f061db53aa823f9ed99972cebd16024 + languageName: node + linkType: hard + +"postcss-convert-values@npm:^5.1.3": + version: 5.1.3 + resolution: "postcss-convert-values@npm:5.1.3" + dependencies: + browserslist: ^4.21.4 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: df48cdaffabf9737f9cfdc58a3dc2841cf282506a7a944f6c70236cff295d3a69f63de6e0935eeb8a9d3f504324e5b4e240abc29e21df9e35a02585d3060aeb5 + languageName: node + linkType: hard + +"postcss-discard-comments@npm:^5.1.2": + version: 5.1.2 + resolution: "postcss-discard-comments@npm:5.1.2" + peerDependencies: + postcss: ^8.2.15 + checksum: abfd064ebc27aeaf5037643dd51ffaff74d1fa4db56b0523d073ace4248cbb64ffd9787bd6924b0983a9d0bd0e9bf9f10d73b120e50391dc236e0d26c812fa2a + languageName: node + linkType: hard + +"postcss-discard-duplicates@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-discard-duplicates@npm:5.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 88d6964201b1f4ed6bf7a32cefe68e86258bb6e42316ca01d9b32bdb18e7887d02594f89f4a2711d01b51ea6e3fcca8c54be18a59770fe5f4521c61d3eb6ca35 + languageName: node + linkType: hard + +"postcss-discard-empty@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-discard-empty@npm:5.1.1" + peerDependencies: + postcss: ^8.2.15 + checksum: 970adb12fae5c214c0768236ad9a821552626e77dedbf24a8213d19cc2c4a531a757cd3b8cdd3fc22fb1742471b8692a1db5efe436a71236dec12b1318ee8ff4 + languageName: node + linkType: hard + +"postcss-discard-overridden@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-discard-overridden@npm:5.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: d64d4a545aa2c81b22542895cfcddc787d24119f294d35d29b0599a1c818b3cc51f4ee80b80f5a0a09db282453dd5ac49f104c2117cc09112d0ac9b40b499a41 + languageName: node + linkType: hard + +"postcss-discard-unused@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-discard-unused@npm:5.1.0" + dependencies: + postcss-selector-parser: ^6.0.5 + peerDependencies: + postcss: ^8.2.15 + checksum: 5c09403a342a065033f5f22cefe6b402c76c2dc0aac31a736a2062d82c2a09f0ff2525b3df3a0c6f4e0ffc7a0392efd44bfe7f9d018e4cae30d15b818b216622 + languageName: node + linkType: hard + +"postcss-loader@npm:^7.0.0": + version: 7.3.3 + resolution: "postcss-loader@npm:7.3.3" + dependencies: + cosmiconfig: ^8.2.0 + jiti: ^1.18.2 + semver: ^7.3.8 + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + checksum: c724044d6ae56334535c26bb4efc9c151431d44d60bc8300157c760747281a242757d8dab32db72738434531175b38a408cb0b270bb96207c07584dcfcd899ff + languageName: node + linkType: hard + +"postcss-merge-idents@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-merge-idents@npm:5.1.1" + dependencies: + cssnano-utils: ^3.1.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: ed8a673617ea6ae3e15d69558063cb1a5eeee01732f78cdc0196ab910324abc30828724ab8dfc4cda27e8c0077542e25688470f829819a2604625a673387ec72 + languageName: node + linkType: hard + +"postcss-merge-longhand@npm:^5.1.7": + version: 5.1.7 + resolution: "postcss-merge-longhand@npm:5.1.7" + dependencies: + postcss-value-parser: ^4.2.0 + stylehacks: ^5.1.1 + peerDependencies: + postcss: ^8.2.15 + checksum: 81c3fc809f001b9b71a940148e242bdd6e2d77713d1bfffa15eb25c1f06f6648d5e57cb21645746d020a2a55ff31e1740d2b27900442913a9d53d8a01fb37e1b + languageName: node + linkType: hard + +"postcss-merge-rules@npm:^5.1.4": + version: 5.1.4 + resolution: "postcss-merge-rules@npm:5.1.4" + dependencies: + browserslist: ^4.21.4 + caniuse-api: ^3.0.0 + cssnano-utils: ^3.1.0 + postcss-selector-parser: ^6.0.5 + peerDependencies: + postcss: ^8.2.15 + checksum: 8ab6a569babe6cb412d6612adee74f053cea7edb91fa013398515ab36754b1fec830d68782ed8cdfb44cffdc6b78c79eab157bff650f428aa4460d3f3857447e + languageName: node + linkType: hard + +"postcss-minify-font-values@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-minify-font-values@npm:5.1.0" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 35e858fa41efa05acdeb28f1c76579c409fdc7eabb1744c3bd76e895bb9fea341a016746362a67609688ab2471f587202b9a3e14ea28ad677754d663a2777ece + languageName: node + linkType: hard + +"postcss-minify-gradients@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-minify-gradients@npm:5.1.1" + dependencies: + colord: ^2.9.1 + cssnano-utils: ^3.1.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 27354072a07c5e6dab36731103b94ca2354d4ed3c5bc6aacfdf2ede5a55fa324679d8fee5450800bc50888dbb5e9ed67569c0012040c2be128143d0cebb36d67 + languageName: node + linkType: hard + +"postcss-minify-params@npm:^5.1.4": + version: 5.1.4 + resolution: "postcss-minify-params@npm:5.1.4" + dependencies: + browserslist: ^4.21.4 + cssnano-utils: ^3.1.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: bd63e2cc89edcf357bb5c2a16035f6d02ef676b8cede4213b2bddd42626b3d428403849188f95576fc9f03e43ebd73a29bf61d33a581be9a510b13b7f7f100d5 + languageName: node + linkType: hard + +"postcss-minify-selectors@npm:^5.2.1": + version: 5.2.1 + resolution: "postcss-minify-selectors@npm:5.2.1" + dependencies: + postcss-selector-parser: ^6.0.5 + peerDependencies: + postcss: ^8.2.15 + checksum: 6fdbc84f99a60d56b43df8930707da397775e4c36062a106aea2fd2ac81b5e24e584a1892f4baa4469fa495cb87d1422560eaa8f6c9d500f9f0b691a5f95bab5 + languageName: node + linkType: hard + +"postcss-modules-extract-imports@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-extract-imports@npm:3.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.3": + version: 4.0.3 + resolution: "postcss-modules-local-by-default@npm:4.0.3" + dependencies: + icss-utils: ^5.0.0 + postcss-selector-parser: ^6.0.2 + postcss-value-parser: ^4.1.0 + peerDependencies: + postcss: ^8.1.0 + checksum: 2f8083687f3d6067885f8863dd32dbbb4f779cfcc7e52c17abede9311d84faf6d3ed8760e7c54c6380281732ae1f78e5e56a28baf3c271b33f450a11c9e30485 + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-scope@npm:3.0.0" + dependencies: + postcss-selector-parser: ^6.0.4 + peerDependencies: + postcss: ^8.1.0 + checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: ^5.0.0 + peerDependencies: + postcss: ^8.1.0 + checksum: f7f2cdf14a575b60e919ad5ea52fed48da46fe80db2733318d71d523fc87db66c835814940d7d05b5746b0426e44661c707f09bdb83592c16aea06e859409db6 + languageName: node + linkType: hard + +"postcss-normalize-charset@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-charset@npm:5.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: e79d92971fc05b8b3c9b72f3535a574e077d13c69bef68156a0965f397fdf157de670da72b797f57b0e3bac8f38155b5dd1735ecab143b9cc4032d72138193b4 + languageName: node + linkType: hard + +"postcss-normalize-display-values@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-display-values@npm:5.1.0" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: b6eb7b9b02c3bdd62bbc54e01e2b59733d73a1c156905d238e178762962efe0c6f5104544da39f32cade8a4fb40f10ff54b63a8ebfbdff51e8780afb9fbdcf86 + languageName: node + linkType: hard + +"postcss-normalize-positions@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-positions@npm:5.1.1" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: d9afc233729c496463c7b1cdd06732469f401deb387484c3a2422125b46ec10b4af794c101f8c023af56f01970b72b535e88373b9058ecccbbf88db81662b3c4 + languageName: node + linkType: hard + +"postcss-normalize-repeat-style@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-repeat-style@npm:5.1.1" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 2c6ad2b0ae10a1fda156b948c34f78c8f1e185513593de4d7e2480973586675520edfec427645fa168c337b0a6b3ceca26f92b96149741ca98a9806dad30d534 + languageName: node + linkType: hard + +"postcss-normalize-string@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-string@npm:5.1.0" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 6e549c6e5b2831e34c7bdd46d8419e2278f6af1d5eef6d26884a37c162844e60339340c57e5e06058cdbe32f27fc6258eef233e811ed2f71168ef2229c236ada + languageName: node + linkType: hard + +"postcss-normalize-timing-functions@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-timing-functions@npm:5.1.0" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: da550f50e90b0b23e17b67449a7d1efd1aa68288e66d4aa7614ca6f5cc012896be1972b7168eee673d27da36504faccf7b9f835c0f7e81243f966a42c8c030aa + languageName: node + linkType: hard + +"postcss-normalize-unicode@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-unicode@npm:5.1.1" + dependencies: + browserslist: ^4.21.4 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 4c24d26cc9f4b19a9397db4e71dd600dab690f1de8e14a3809e2aa1452dbc3791c208c38a6316bbc142f29e934fdf02858e68c94038c06174d78a4937e0f273c + languageName: node + linkType: hard + +"postcss-normalize-url@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-url@npm:5.1.0" + dependencies: + normalize-url: ^6.0.1 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 3bd4b3246d6600230bc827d1760b24cb3101827ec97570e3016cbe04dc0dd28f4dbe763245d1b9d476e182c843008fbea80823061f1d2219b96f0d5c724a24c0 + languageName: node + linkType: hard + +"postcss-normalize-whitespace@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-whitespace@npm:5.1.1" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 12d8fb6d1c1cba208cc08c1830959b7d7ad447c3f5581873f7e185f99a9a4230c43d3af21ca12c818e4690a5085a95b01635b762ad4a7bef69d642609b4c0e19 + languageName: node + linkType: hard + +"postcss-ordered-values@npm:^5.1.3": + version: 5.1.3 + resolution: "postcss-ordered-values@npm:5.1.3" + dependencies: + cssnano-utils: ^3.1.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 6f3ca85b6ceffc68aadaf319d9ee4c5ac16d93195bf8cba2d1559b631555ad61941461cda6d3909faab86e52389846b2b36345cff8f0c3f4eb345b1b8efadcf9 + languageName: node + linkType: hard + +"postcss-reduce-idents@npm:^5.2.0": + version: 5.2.0 + resolution: "postcss-reduce-idents@npm:5.2.0" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: f0d644c86e160dd36ee4dd924ab7d6feacac867c87702e2f98f96b409430a62de4fec2dfc3c8731bda4e14196e29a752b4558942f0af2a3e6cd7f1f4b173db8e + languageName: node + linkType: hard + +"postcss-reduce-initial@npm:^5.1.2": + version: 5.1.2 + resolution: "postcss-reduce-initial@npm:5.1.2" + dependencies: + browserslist: ^4.21.4 + caniuse-api: ^3.0.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 55db697f85231a81f1969d54c894e4773912d9ddb914f9b03d2e73abc4030f2e3bef4d7465756d0c1acfcc2c2d69974bfb50a972ab27546a7d68b5a4fc90282b + languageName: node + linkType: hard + +"postcss-reduce-transforms@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-reduce-transforms@npm:5.1.0" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.15 + checksum: 0c6af2cba20e3ff63eb9ad045e634ddfb9c3e5c0e614c020db2a02f3aa20632318c4ede9e0c995f9225d9a101e673de91c0a6e10bb2fa5da6d6c75d15a55882f + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 + languageName: node + linkType: hard + +"postcss-sort-media-queries@npm:^4.2.1": + version: 4.4.1 + resolution: "postcss-sort-media-queries@npm:4.4.1" + dependencies: + sort-css-media-queries: 2.1.0 + peerDependencies: + postcss: ^8.4.16 + checksum: 70b42e479bb1d15d8628678eefefd547d309e33e64262fe437630fe62d8e4b3adcae7f2b48ef8da9d3173576d4af109a9ffa9514573db1281deef324f5ea166f + languageName: node + linkType: hard + +"postcss-svgo@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-svgo@npm:5.1.0" + dependencies: + postcss-value-parser: ^4.2.0 + svgo: ^2.7.0 + peerDependencies: + postcss: ^8.2.15 + checksum: d86eb5213d9f700cf5efe3073799b485fb7cacae0c731db3d7749c9c2b1c9bc85e95e0baeca439d699ff32ea24815fc916c4071b08f67ed8219df229ce1129bd + languageName: node + linkType: hard + +"postcss-unique-selectors@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-unique-selectors@npm:5.1.1" + dependencies: + postcss-selector-parser: ^6.0.5 + peerDependencies: + postcss: ^8.2.15 + checksum: 637e7b786e8558265775c30400c54b6b3b24d4748923f4a39f16a65fd0e394f564ccc9f0a1d3c0e770618a7637a7502ea1d0d79f731d429cb202255253c23278 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f languageName: node linkType: hard +"postcss-zindex@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-zindex@npm:5.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 8581e0ee552622489dcb9fb9609a3ccc261a67a229ba91a70bd138fe102a2d04cedb14642b82b673d4cac7b559ef32574f2dafde2ff7816eecac024d231c5ead + languageName: node + linkType: hard + "postcss@npm:8.4.14": version: 8.4.14 resolution: "postcss@npm:8.4.14" @@ -18759,6 +24425,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.3.11, postcss@npm:^8.4.14, postcss@npm:^8.4.17, postcss@npm:^8.4.21": + version: 8.4.32 + resolution: "postcss@npm:8.4.32" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 220d9d0bf5d65be7ed31006c523bfb11619461d296245c1231831f90150aeb4a31eab9983ac9c5c89759a3ca8b60b3e0d098574964e1691673c3ce5c494305ae + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -18818,6 +24495,16 @@ __metadata: languageName: node linkType: hard +"pretty-error@npm:^4.0.0": + version: 4.0.0 + resolution: "pretty-error@npm:4.0.0" + dependencies: + lodash: ^4.17.20 + renderkid: ^3.0.0 + checksum: a5b9137365690104ded6947dca2e33360bf55e62a4acd91b1b0d7baa3970e43754c628cc9e16eafbdd4e8f8bcb260a5865475d4fc17c3106ff2d61db4e72cdf3 + languageName: node + linkType: hard + "pretty-format@npm:^27.0.0, pretty-format@npm:^27.5.1": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" @@ -18829,7 +24516,23 @@ __metadata: languageName: node linkType: hard -"prismjs@npm:^1.27.0": +"pretty-time@npm:^1.1.0": + version: 1.1.0 + resolution: "pretty-time@npm:1.1.0" + checksum: a319e7009aadbc6cfedbd8b66861327d3a0c68bd3e8794bf5b86f62b40b01b9479c5a70c76bb368ad454acce52a1216daee460cc825766e2442c04f3a84a02c9 + languageName: node + linkType: hard + +"prism-react-renderer@npm:^1.3.5": + version: 1.3.5 + resolution: "prism-react-renderer@npm:1.3.5" + peerDependencies: + react: ">=0.14.9" + checksum: c18806dcbc4c0b4fd6fd15bd06b4f7c0a6da98d93af235c3e970854994eb9b59e23315abb6cfc29e69da26d36709a47e25da85ab27fed81b6812f0a52caf6dfa + languageName: node + linkType: hard + +"prismjs@npm:^1.27.0, prismjs@npm:^1.28.0": version: 1.29.0 resolution: "prismjs@npm:1.29.0" checksum: 007a8869d4456ff8049dc59404e32d5666a07d99c3b0e30a18bd3b7676dfa07d1daae9d0f407f20983865fd8da56de91d09cb08e6aa61f5bc420a27c0beeaf93 @@ -18881,6 +24584,15 @@ __metadata: languageName: node linkType: hard +"promise@npm:^7.1.1": + version: 7.3.1 + resolution: "promise@npm:7.3.1" + dependencies: + asap: ~2.0.3 + checksum: 475bb069130179fbd27ed2ab45f26d8862376a137a57314cf53310bdd85cc986a826fd585829be97ebc0aaf10e9d8e68be1bfe5a4a0364144b1f9eedfa940cf1 + languageName: node + linkType: hard + "promise@npm:^8.0.0": version: 8.3.0 resolution: "promise@npm:8.3.0" @@ -18890,7 +24602,7 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.0.1": +"prompts@npm:^2.0.1, prompts@npm:^2.4.2": version: 2.4.2 resolution: "prompts@npm:2.4.2" dependencies: @@ -18900,7 +24612,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": +"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -18911,7 +24623,7 @@ __metadata: languageName: node linkType: hard -"property-information@npm:^5.0.0": +"property-information@npm:^5.0.0, property-information@npm:^5.3.0": version: 5.6.0 resolution: "property-information@npm:5.6.0" dependencies: @@ -18975,6 +24687,13 @@ __metadata: languageName: node linkType: hard +"punycode@npm:^1.3.2": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 + languageName: node + linkType: hard + "punycode@npm:^2.1.0, punycode@npm:^2.1.1": version: 2.3.0 resolution: "punycode@npm:2.3.0" @@ -18982,6 +24701,22 @@ __metadata: languageName: node linkType: hard +"pupa@npm:^2.1.1": + version: 2.1.1 + resolution: "pupa@npm:2.1.1" + dependencies: + escape-goat: ^2.0.0 + checksum: 49529e50372ffdb0cccf0efa0f3b3cb0a2c77805d0d9cc2725bd2a0f6bb414631e61c93a38561b26be1259550b7bb6c2cb92315aa09c8bf93f3bdcb49f2b2fb7 + languageName: node + linkType: hard + +"pure-color@npm:^1.2.0": + version: 1.3.0 + resolution: "pure-color@npm:1.3.0" + checksum: 646d8bed6e6eab89affdd5e2c11f607a85b631a7fb03c061dfa658eb4dc4806881a15feed2ac5fd8c0bad8c00c632c640d5b1cb8b9a972e6e947393a1329371b + languageName: node + linkType: hard + "pvtsutils@npm:^1.3.2": version: 1.3.2 resolution: "pvtsutils@npm:1.3.2" @@ -18998,7 +24733,7 @@ __metadata: languageName: node linkType: hard -"q@npm:^1.5.1": +"q@npm:^1.1.2, q@npm:^1.5.1": version: 1.5.1 resolution: "q@npm:1.5.1" checksum: 147baa93c805bc1200ed698bdf9c72e9e42c05f96d007e33a558b5fdfd63e5ea130e99313f28efc1783e90e6bdb4e48b67a36fcc026b7b09202437ae88a1fb12 @@ -19055,6 +24790,15 @@ __metadata: languageName: node linkType: hard +"queue@npm:6.0.2": + version: 6.0.2 + resolution: "queue@npm:6.0.2" + dependencies: + inherits: ~2.0.3 + checksum: ebc23639248e4fe40a789f713c20548e513e053b3dc4924b6cb0ad741e3f264dcff948225c8737834dd4f9ec286dbc06a1a7c13858ea382d9379f4303bcc0916 + languageName: node + linkType: hard + "quick-lru@npm:^4.0.1": version: 4.0.1 resolution: "quick-lru@npm:4.0.1" @@ -19088,7 +24832,14 @@ __metadata: languageName: node linkType: hard -"range-parser@npm:~1.2.1": +"range-parser@npm:1.2.0": + version: 1.2.0 + resolution: "range-parser@npm:1.2.0" + checksum: bdf397f43fedc15c559d3be69c01dedf38444ca7a1610f5bf5955e3f3da6057a892f34691e7ebdd8c7e1698ce18ef6c4d4811f70e658dda3ff230ef741f8423a + languageName: node + linkType: hard + +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9 @@ -19141,6 +24892,32 @@ __metadata: languageName: node linkType: hard +"rc@npm:1.2.8, rc@npm:^1.2.8": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: ^0.6.0 + ini: ~1.3.0 + minimist: ^1.2.0 + strip-json-comments: ~2.0.1 + bin: + rc: ./cli.js + checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e + languageName: node + linkType: hard + +"react-base16-styling@npm:^0.6.0": + version: 0.6.0 + resolution: "react-base16-styling@npm:0.6.0" + dependencies: + base16: ^1.0.0 + lodash.curry: ^4.0.1 + lodash.flow: ^3.3.0 + pure-color: ^1.2.0 + checksum: 00a12dddafc8a9025cca933b0dcb65fca41c81fa176d1fc3a6a9d0242127042e2c0a604f4c724a3254dd2c6aeb5ef55095522ff22f5462e419641c1341a658e4 + languageName: node + linkType: hard + "react-clientside-effect@npm:^1.2.6": version: 1.2.6 resolution: "react-clientside-effect@npm:1.2.6" @@ -19167,6 +24944,38 @@ __metadata: languageName: node linkType: hard +"react-dev-utils@npm:^12.0.1": + version: 12.0.1 + resolution: "react-dev-utils@npm:12.0.1" + dependencies: + "@babel/code-frame": ^7.16.0 + address: ^1.1.2 + browserslist: ^4.18.1 + chalk: ^4.1.2 + cross-spawn: ^7.0.3 + detect-port-alt: ^1.1.6 + escape-string-regexp: ^4.0.0 + filesize: ^8.0.6 + find-up: ^5.0.0 + fork-ts-checker-webpack-plugin: ^6.5.0 + global-modules: ^2.0.0 + globby: ^11.0.4 + gzip-size: ^6.0.0 + immer: ^9.0.7 + is-root: ^2.1.0 + loader-utils: ^3.2.0 + open: ^8.4.0 + pkg-up: ^3.1.0 + prompts: ^2.4.2 + react-error-overlay: ^6.0.11 + recursive-readdir: ^2.2.2 + shell-quote: ^1.7.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + checksum: 2c6917e47f03d9595044770b0f883a61c6b660fcaa97b8ba459a1d57c9cca9aa374cd51296b22d461ff5e432105dbe6f04732dab128e52729c79239e1c23ab56 + languageName: node + linkType: hard + "react-dom@npm:18.2.0, react-dom@npm:^18": version: 18.2.0 resolution: "react-dom@npm:18.2.0" @@ -19179,7 +24988,27 @@ __metadata: languageName: node linkType: hard -"react-fast-compare@npm:3.2.2": +"react-dom@npm:^17.0.2": + version: 17.0.2 + resolution: "react-dom@npm:17.0.2" + dependencies: + loose-envify: ^1.1.0 + object-assign: ^4.1.1 + scheduler: ^0.20.2 + peerDependencies: + react: 17.0.2 + checksum: 1c1eaa3bca7c7228d24b70932e3d7c99e70d1d04e13bb0843bbf321582bc25d7961d6b8a6978a58a598af2af496d1cedcfb1bf65f6b0960a0a8161cb8dab743c + languageName: node + linkType: hard + +"react-error-overlay@npm:^6.0.11": + version: 6.0.11 + resolution: "react-error-overlay@npm:6.0.11" + checksum: ce7b44c38fadba9cedd7c095cf39192e632daeccf1d0747292ed524f17dcb056d16bc197ddee5723f9dd888f0b9b19c3b486c430319e30504289b9296f2d2c42 + languageName: node + linkType: hard + +"react-fast-compare@npm:3.2.2, react-fast-compare@npm:^3.2.0, react-fast-compare@npm:^3.2.2": version: 3.2.2 resolution: "react-fast-compare@npm:3.2.2" checksum: 2071415b4f76a3e6b55c84611c4d24dcb12ffc85811a2840b5a3f1ff2d1a99be1020d9437ee7c6e024c9f4cbb84ceb35e48cf84f28fcb00265ad2dfdd3947704 @@ -19206,7 +25035,37 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.13.1, react-is@npm:^16.7.0": +"react-helmet-async@npm:*": + version: 2.0.4 + resolution: "react-helmet-async@npm:2.0.4" + dependencies: + invariant: ^2.2.4 + react-fast-compare: ^3.2.2 + shallowequal: ^1.1.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + checksum: 1bd16e6be6d15cf3d4b4c0853d1e122941a05d3fb2bad1fb1c5037069c5f142fcab063c342b95c58a998a81f093bdf1bd1bb00852a5a3a84d49e48790d5142bb + languageName: node + linkType: hard + +"react-helmet-async@npm:^1.3.0": + version: 1.3.0 + resolution: "react-helmet-async@npm:1.3.0" + dependencies: + "@babel/runtime": ^7.12.5 + invariant: ^2.2.4 + prop-types: ^15.7.2 + react-fast-compare: ^3.2.0 + shallowequal: ^1.1.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + checksum: 7ca7e47f8af14ea186688b512a87ab912bf6041312b297f92516341b140b3f0f8aedf5a44d226d99e69ed067b0cc106e38aeb9c9b738ffcc63d10721c844db90 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": version: 16.13.1 resolution: "react-is@npm:16.13.1" checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f @@ -19220,6 +25079,40 @@ __metadata: languageName: node linkType: hard +"react-json-view@npm:^1.21.3": + version: 1.21.3 + resolution: "react-json-view@npm:1.21.3" + dependencies: + flux: ^4.0.1 + react-base16-styling: ^0.6.0 + react-lifecycles-compat: ^3.0.4 + react-textarea-autosize: ^8.3.2 + peerDependencies: + react: ^17.0.0 || ^16.3.0 || ^15.5.4 + react-dom: ^17.0.0 || ^16.3.0 || ^15.5.4 + checksum: 5718bcd9210ad5b06eb9469cf8b9b44be9498845a7702e621343618e8251f26357e6e1c865532cf170db6165df1cb30202787e057309d8848c220bc600ec0d1a + languageName: node + linkType: hard + +"react-lifecycles-compat@npm:^3.0.4": + version: 3.0.4 + resolution: "react-lifecycles-compat@npm:3.0.4" + checksum: a904b0fc0a8eeb15a148c9feb7bc17cec7ef96e71188280061fc340043fd6d8ee3ff233381f0e8f95c1cf926210b2c4a31f38182c8f35ac55057e453d6df204f + languageName: node + linkType: hard + +"react-loadable-ssr-addon-v5-slorber@npm:^1.0.1": + version: 1.0.1 + resolution: "react-loadable-ssr-addon-v5-slorber@npm:1.0.1" + dependencies: + "@babel/runtime": ^7.10.3 + peerDependencies: + react-loadable: "*" + webpack: ">=4.41.1 || 5.x" + checksum: 1cf7ceb488d329a5be15f891dae16727fb7ade08ef57826addd21e2c3d485e2440259ef8be94f4d54e9afb4bcbd2fcc22c3c5bad92160c9c06ae6ba7b5562497 + languageName: node + linkType: hard + "react-remove-scroll-bar@npm:^2.3.4": version: 2.3.4 resolution: "react-remove-scroll-bar@npm:2.3.4" @@ -19255,6 +25148,54 @@ __metadata: languageName: node linkType: hard +"react-router-config@npm:^5.1.1": + version: 5.1.1 + resolution: "react-router-config@npm:5.1.1" + dependencies: + "@babel/runtime": ^7.1.2 + peerDependencies: + react: ">=15" + react-router: ">=5" + checksum: bde7ee79444454bf7c3737fd9c5c268021012c8cc37bc19116b2e7daa28c4231598c275816c7f32c16f9f974dc707b91de279291a5e39efce2e1b1569355b87a + languageName: node + linkType: hard + +"react-router-dom@npm:^5.3.3": + version: 5.3.4 + resolution: "react-router-dom@npm:5.3.4" + dependencies: + "@babel/runtime": ^7.12.13 + history: ^4.9.0 + loose-envify: ^1.3.1 + prop-types: ^15.6.2 + react-router: 5.3.4 + tiny-invariant: ^1.0.2 + tiny-warning: ^1.0.0 + peerDependencies: + react: ">=15" + checksum: b86a6f2f5222f041e38adf4e4b32c7643d6735a1a915ef25855b2db285fd059d72ba8d62e5bcd5d822b8ef9520a80453209e55077f5a90d0f72e908979b8f535 + languageName: node + linkType: hard + +"react-router@npm:5.3.4, react-router@npm:^5.3.3": + version: 5.3.4 + resolution: "react-router@npm:5.3.4" + dependencies: + "@babel/runtime": ^7.12.13 + history: ^4.9.0 + hoist-non-react-statics: ^3.1.0 + loose-envify: ^1.3.1 + path-to-regexp: ^1.7.0 + prop-types: ^15.6.2 + react-is: ^16.6.0 + tiny-invariant: ^1.0.2 + tiny-warning: ^1.0.0 + peerDependencies: + react: ">=15" + checksum: 892d4e274a23bf4f39abc2efca54472fb646d3aed4b584020cf49654d2f50d09a2bacebe7c92b4ec7cb8925077376dfcd0664bad6442a73604397cefec9f01f9 + languageName: node + linkType: hard + "react-style-singleton@npm:^2.2.1": version: 2.2.1 resolution: "react-style-singleton@npm:2.2.1" @@ -19287,6 +25228,19 @@ __metadata: languageName: node linkType: hard +"react-textarea-autosize@npm:^8.3.2": + version: 8.5.3 + resolution: "react-textarea-autosize@npm:8.5.3" + dependencies: + "@babel/runtime": ^7.20.13 + use-composed-ref: ^1.3.0 + use-latest: ^1.2.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: b317c3763f37a89621bbafd0e6e2d068e7876790a5ae77f497adfd6ba9334ceea138c8a0b7d907bae0f79c765cb24e8b2ca2b8033b4144c0bce28571a3658921 + languageName: node + linkType: hard + "react@npm:18.2.0, react@npm:^18": version: 18.2.0 resolution: "react@npm:18.2.0" @@ -19296,6 +25250,16 @@ __metadata: languageName: node linkType: hard +"react@npm:^17.0.2": + version: 17.0.2 + resolution: "react@npm:17.0.2" + dependencies: + loose-envify: ^1.1.0 + object-assign: ^4.1.1 + checksum: b254cc17ce3011788330f7bbf383ab653c6848902d7936a87b09d835d091e3f295f7e9dd1597c6daac5dc80f90e778c8230218ba8ad599f74adcc11e33b9d61b + languageName: node + linkType: hard + "read-package-json-fast@npm:^3.0.0": version: 3.0.2 resolution: "read-package-json-fast@npm:3.0.2" @@ -19341,7 +25305,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.6, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -19352,7 +25316,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -19385,6 +25349,13 @@ __metadata: languageName: node linkType: hard +"reading-time@npm:^1.5.0": + version: 1.5.0 + resolution: "reading-time@npm:1.5.0" + checksum: e27bc5a70ba0f4ac337896b18531b914d38f4bee67cbad48029d0c11dd0a7a847b2a6bba895ab7ce2ad3e7ecb86912bdc477d8fa2d48405a3deda964be54d09b + languageName: node + linkType: hard + "rechoir@npm:^0.6.2": version: 0.6.2 resolution: "rechoir@npm:0.6.2" @@ -19500,6 +25471,15 @@ __metadata: languageName: node linkType: hard +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.4.3": version: 1.4.3 resolution: "regexp.prototype.flags@npm:1.4.3" @@ -19550,6 +25530,24 @@ __metadata: languageName: node linkType: hard +"registry-auth-token@npm:^4.0.0": + version: 4.2.2 + resolution: "registry-auth-token@npm:4.2.2" + dependencies: + rc: 1.2.8 + checksum: c5030198546ecfdcbcb0722cbc3e260c4f5f174d8d07bdfedd4620e79bfdf17a2db735aa230d600bd388fce6edd26c0a9ed2eb7e9b4641ec15213a28a806688b + languageName: node + linkType: hard + +"registry-url@npm:^5.0.0": + version: 5.1.0 + resolution: "registry-url@npm:5.1.0" + dependencies: + rc: ^1.2.8 + checksum: bcea86c84a0dbb66467b53187fadebfea79017cddfb4a45cf27530d7275e49082fe9f44301976eb0164c438e395684bcf3dae4819b36ff9d1640d8cc60c73df9 + languageName: node + linkType: hard + "regjsgen@npm:^0.7.1": version: 0.7.1 resolution: "regjsgen@npm:0.7.1" @@ -19568,6 +25566,100 @@ __metadata: languageName: node linkType: hard +"relateurl@npm:^0.2.7": + version: 0.2.7 + resolution: "relateurl@npm:0.2.7" + checksum: 5891e792eae1dfc3da91c6fda76d6c3de0333a60aa5ad848982ebb6dccaa06e86385fb1235a1582c680a3d445d31be01c6bfc0804ebbcab5aaf53fa856fde6b6 + languageName: node + linkType: hard + +"remark-emoji@npm:^2.2.0": + version: 2.2.0 + resolution: "remark-emoji@npm:2.2.0" + dependencies: + emoticon: ^3.2.0 + node-emoji: ^1.10.0 + unist-util-visit: ^2.0.3 + checksum: 638d4be72eb4110a447f389d4b8c454921f188c0acabf1b6579f3ddaa301ee91010173d6eebd975ea622ae3de7ed4531c0315a4ffd4f9653d80c599ef9ec21a8 + languageName: node + linkType: hard + +"remark-footnotes@npm:2.0.0": + version: 2.0.0 + resolution: "remark-footnotes@npm:2.0.0" + checksum: f2f87ffd6fe25892373c7164d6584a7cb03ab0ea4f186af493a73df519e24b72998a556e7f16cb996f18426cdb80556b95ff252769e252cf3ccba0fd2ca20621 + languageName: node + linkType: hard + +"remark-mdx@npm:1.6.22": + version: 1.6.22 + resolution: "remark-mdx@npm:1.6.22" + dependencies: + "@babel/core": 7.12.9 + "@babel/helper-plugin-utils": 7.10.4 + "@babel/plugin-proposal-object-rest-spread": 7.12.1 + "@babel/plugin-syntax-jsx": 7.12.1 + "@mdx-js/util": 1.6.22 + is-alphabetical: 1.0.4 + remark-parse: 8.0.3 + unified: 9.2.0 + checksum: 45e62f8a821c37261f94448d54f295de1c5c393f762ff96cd4d4b730715037fafeb6c89ef94adf6a10a09edfa72104afe1431b93b5ae5e40ce2a7677e133c3d9 + languageName: node + linkType: hard + +"remark-parse@npm:8.0.3": + version: 8.0.3 + resolution: "remark-parse@npm:8.0.3" + dependencies: + ccount: ^1.0.0 + collapse-white-space: ^1.0.2 + is-alphabetical: ^1.0.0 + is-decimal: ^1.0.0 + is-whitespace-character: ^1.0.0 + is-word-character: ^1.0.0 + markdown-escapes: ^1.0.0 + parse-entities: ^2.0.0 + repeat-string: ^1.5.4 + state-toggle: ^1.0.0 + trim: 0.0.1 + trim-trailing-lines: ^1.0.0 + unherit: ^1.0.4 + unist-util-remove-position: ^2.0.0 + vfile-location: ^3.0.0 + xtend: ^4.0.1 + checksum: 2dfea250e7606ddfc9e223b9f41e0b115c5c701be4bd35181beaadd46ee59816bc00aadc6085a420f8df00b991ada73b590ea7fd34ace14557de4a0a41805be5 + languageName: node + linkType: hard + +"remark-squeeze-paragraphs@npm:4.0.0": + version: 4.0.0 + resolution: "remark-squeeze-paragraphs@npm:4.0.0" + dependencies: + mdast-squeeze-paragraphs: ^4.0.0 + checksum: 2071eb74d0ecfefb152c4932690a9fd950c3f9f798a676f1378a16db051da68fb20bf288688cc153ba5019dded35408ff45a31dfe9686eaa7a9f1df9edbb6c81 + languageName: node + linkType: hard + +"renderkid@npm:^3.0.0": + version: 3.0.0 + resolution: "renderkid@npm:3.0.0" + dependencies: + css-select: ^4.1.3 + dom-converter: ^0.2.0 + htmlparser2: ^6.1.0 + lodash: ^4.17.21 + strip-ansi: ^6.0.1 + checksum: 77162b62d6f33ab81f337c39efce0439ff0d1f6d441e29c35183151f83041c7850774fb904da163d6c844264d440d10557714e6daa0b19e4561a5cd4ef305d41 + languageName: node + linkType: hard + +"repeat-string@npm:^1.5.4": + version: 1.6.1 + resolution: "repeat-string@npm:1.6.1" + checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 + languageName: node + linkType: hard + "req-cwd@npm:^2.0.0": version: 2.0.0 resolution: "req-cwd@npm:2.0.0" @@ -19652,6 +25744,13 @@ __metadata: languageName: node linkType: hard +"require-like@npm:>= 0.1.1": + version: 0.1.2 + resolution: "require-like@npm:0.1.2" + checksum: edb8331f05fd807381a75b76f6cca9f0ce8acaa2e910b7e116541799aa970bfbc64fde5fd6adb3a6917dba346f8386ebbddb81614c24e8dad1b4290c7af9535e + languageName: node + linkType: hard + "require-main-filename@npm:^2.0.0": version: 2.0.0 resolution: "require-main-filename@npm:2.0.0" @@ -19722,6 +25821,13 @@ __metadata: languageName: node linkType: hard +"resolve-pathname@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-pathname@npm:3.0.0" + checksum: 6147241ba42c423dbe83cb067a2b4af4f60908c3af57e1ea567729cc71416c089737fe2a73e9e79e7a60f00f66c91e4b45ad0d37cd4be2d43fec44963ef14368 + languageName: node + linkType: hard + "resolve.exports@npm:^1.1.0": version: 1.1.1 resolution: "resolve.exports@npm:1.1.1" @@ -19758,6 +25864,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.3.2": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c + languageName: node + linkType: hard + "resolve@npm:^2.0.0-next.4": version: 2.0.0-next.5 resolution: "resolve@npm:2.0.0-next.5" @@ -19800,6 +25919,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^1.3.2#~builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + languageName: node + linkType: hard + "resolve@patch:resolve@^2.0.0-next.4#~builtin": version: 2.0.0-next.5 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#~builtin::version=2.0.0-next.5&hash=07638b" @@ -19858,6 +25990,13 @@ __metadata: languageName: node linkType: hard +"retry@npm:^0.13.1": + version: 0.13.1 + resolution: "retry@npm:0.13.1" + checksum: 47c4d5be674f7c13eee4cfe927345023972197dbbdfba5d3af7e461d13b44de1bfd663bfc80d2f601f8ef3fc8164c16dd99655a221921954a65d044a2fc1233b + languageName: node + linkType: hard + "reusify@npm:^1.0.4": version: 1.0.4 resolution: "reusify@npm:1.0.4" @@ -20056,6 +26195,27 @@ __metadata: languageName: node linkType: hard +"rtl-detect@npm:^1.0.4": + version: 1.1.2 + resolution: "rtl-detect@npm:1.1.2" + checksum: 4a43a1e5df0617eb86d5485640b318787d12b86acf53d840a3b2ff701ee941e95479d4e9ae97e907569ec763d1c47218cb87639bc87bcdad60a85747e5270cf0 + languageName: node + linkType: hard + +"rtlcss@npm:^3.5.0": + version: 3.5.0 + resolution: "rtlcss@npm:3.5.0" + dependencies: + find-up: ^5.0.0 + picocolors: ^1.0.0 + postcss: ^8.3.11 + strip-json-comments: ^3.1.1 + bin: + rtlcss: bin/rtlcss.js + checksum: a3763cad2cb58ce1b950de155097c3c294e7aefc8bf328b58d0cc8d5efb88bf800865edc158a78ace6d1f7f99fea6fd66fb4a354d859b172dadd3dab3e0027b3 + languageName: node + linkType: hard + "run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -20097,6 +26257,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.5.4": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: ^2.1.0 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 + languageName: node + linkType: hard + "rxjs@npm:^7.5.5": version: 7.5.6 resolution: "rxjs@npm:7.5.6" @@ -20106,7 +26275,7 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.0.1": +"safe-array-concat@npm:^1.0.0, safe-array-concat@npm:^1.0.1": version: 1.0.1 resolution: "safe-array-concat@npm:1.0.1" dependencies: @@ -20118,20 +26287,20 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": +"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c languageName: node linkType: hard +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + "safe-regex-test@npm:^1.0.0": version: 1.0.0 resolution: "safe-regex-test@npm:1.0.0" @@ -20150,6 +26319,58 @@ __metadata: languageName: node linkType: hard +"sass-loader@npm:^10.1.1": + version: 10.5.1 + resolution: "sass-loader@npm:10.5.1" + dependencies: + klona: ^2.0.4 + loader-utils: ^2.0.0 + neo-async: ^2.6.2 + schema-utils: ^3.0.0 + semver: ^7.3.2 + peerDependencies: + fibers: ">= 3.1.0" + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + sass: ^1.3.0 + webpack: ^4.36.0 || ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + checksum: c995f2befb738dd5fd3bd974de49b04e04c9a58cba66978f549c34bc97d8282078ee7e8e365839de2d852c58f095f55b3bbe5a9038de5bb8ce9c6d2b23076ce3 + languageName: node + linkType: hard + +"sass@npm:^1.52.3": + version: 1.69.5 + resolution: "sass@npm:1.69.5" + dependencies: + chokidar: ">=3.0.0 <4.0.0" + immutable: ^4.0.0 + source-map-js: ">=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: c66f4f02882e7aa7aa49703824dadbb5a174dcd05e3cd96f17f73687889aab6027d078b518e2c04b594dfd89b2f574824bf935c7aee46c770aa6be9aafcc49f2 + languageName: node + linkType: hard + +"sax@npm:^1.2.4": + version: 1.3.0 + resolution: "sax@npm:1.3.0" + checksum: 238ab3a9ba8c8f8aaf1c5ea9120386391f6ee0af52f1a6a40bbb6df78241dd05d782f2359d614ac6aae08c4c4125208b456548a6cf68625aa4fe178486e63ecd + languageName: node + linkType: hard + +"sax@npm:~1.2.4": + version: 1.2.4 + resolution: "sax@npm:1.2.4" + checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe + languageName: node + linkType: hard + "saxes@npm:^5.0.1": version: 5.0.1 resolution: "saxes@npm:5.0.1" @@ -20183,6 +26404,16 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.20.2": + version: 0.20.2 + resolution: "scheduler@npm:0.20.2" + dependencies: + loose-envify: ^1.1.0 + object-assign: ^4.1.1 + checksum: c4b35cf967c8f0d3e65753252d0f260271f81a81e427241295c5a7b783abf4ea9e905f22f815ab66676f5313be0a25f47be582254db8f9241b259213e999b8fc + languageName: node + linkType: hard + "scheduler@npm:^0.23.0": version: 0.23.0 resolution: "scheduler@npm:0.23.0" @@ -20192,6 +26423,17 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:2.7.0": + version: 2.7.0 + resolution: "schema-utils@npm:2.7.0" + dependencies: + "@types/json-schema": ^7.0.4 + ajv: ^6.12.2 + ajv-keywords: ^3.4.1 + checksum: 8889325b0ee1ae6a8f5d6aaa855c71e136ebbb7fd731b01a9d3ec8225dcb245f644c47c50104db4c741983b528cdff8558570021257d4d397ec6aaecd9172a8e + languageName: node + linkType: hard + "schema-utils@npm:^2.6.5": version: 2.7.1 resolution: "schema-utils@npm:2.7.1" @@ -20203,6 +26445,17 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^3.0.0, schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": ^7.0.8 + ajv: ^6.12.5 + ajv-keywords: ^3.5.2 + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 + languageName: node + linkType: hard + "schema-utils@npm:^3.1.1": version: 3.1.1 resolution: "schema-utils@npm:3.1.1" @@ -20214,6 +26467,18 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^4.0.0": + version: 4.2.0 + resolution: "schema-utils@npm:4.2.0" + dependencies: + "@types/json-schema": ^7.0.9 + ajv: ^8.9.0 + ajv-formats: ^2.1.1 + ajv-keywords: ^5.1.0 + checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde + languageName: node + linkType: hard + "scrypt-js@npm:2.0.4": version: 2.0.4 resolution: "scrypt-js@npm:2.0.4" @@ -20247,6 +26512,16 @@ __metadata: languageName: node linkType: hard +"section-matter@npm:^1.0.0": + version: 1.0.0 + resolution: "section-matter@npm:1.0.0" + dependencies: + extend-shallow: ^2.0.1 + kind-of: ^6.0.0 + checksum: 3cc4131705493b2955729b075dcf562359bba66183debb0332752dc9cad35616f6da7a23e42b6cab45cd2e4bb5cda113e9e84c8f05aee77adb6b0289a0229101 + languageName: node + linkType: hard + "seek-bzip@npm:^1.0.5": version: 1.0.6 resolution: "seek-bzip@npm:1.0.6" @@ -20259,6 +26534,48 @@ __metadata: languageName: node linkType: hard +"select-hose@npm:^2.0.0": + version: 2.0.0 + resolution: "select-hose@npm:2.0.0" + checksum: d7e5fcc695a4804209d232a1b18624a5134be334d4e1114b0721f7a5e72bd73da483dcf41528c1af4f4f4892ad7cfd6a1e55c8ffb83f9c9fe723b738db609dbb + languageName: node + linkType: hard + +"selfsigned@npm:^2.1.1": + version: 2.4.1 + resolution: "selfsigned@npm:2.4.1" + dependencies: + "@types/node-forge": ^1.3.0 + node-forge: ^1 + checksum: 38b91c56f1d7949c0b77f9bbe4545b19518475cae15e7d7f0043f87b1626710b011ce89879a88969651f650a19d213bb15b7d5b4c2877df9eeeff7ba8f8b9bfa + languageName: node + linkType: hard + +"semaphore-docs@workspace:apps/docs": + version: 0.0.0-use.local + resolution: "semaphore-docs@workspace:apps/docs" + dependencies: + "@docusaurus/core": 2.2.0 + "@docusaurus/module-type-aliases": 2.2.0 + "@docusaurus/preset-classic": 2.2.0 + "@mdx-js/react": ^1.6.22 + "@svgr/webpack": ^5.5.0 + "@tsconfig/docusaurus": ^1.0.6 + "@types/react": ^17.0.14 + "@types/react-helmet": ^6.1.2 + "@types/react-router-dom": ^5.1.8 + clsx: ^1.2.1 + docusaurus-plugin-sass: ^0.2.2 + file-loader: ^6.2.0 + prism-react-renderer: ^1.3.5 + react: ^17.0.2 + react-dom: ^17.0.2 + sass: ^1.52.3 + typescript: ^4.3.5 + url-loader: ^4.1.1 + languageName: unknown + linkType: soft + "semaphore-protocol@workspace:.": version: 0.0.0-use.local resolution: "semaphore-protocol@workspace:." @@ -20328,6 +26645,15 @@ __metadata: languageName: unknown linkType: soft +"semver-diff@npm:^3.1.1": + version: 3.1.1 + resolution: "semver-diff@npm:3.1.1" + dependencies: + semver: ^6.3.0 + checksum: 8bbe5a5d7add2d5e51b72314a9215cd294d71f41cdc2bf6bd59ee76411f3610b576172896f1d191d0d7294cb9f2f847438d2ee158adacc0c224dca79052812fe + languageName: node + linkType: hard + "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.6.0, semver@npm:^5.7.0": version: 5.7.1 resolution: "semver@npm:5.7.1" @@ -20348,6 +26674,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^5.4.1": + version: 5.7.2 + resolution: "semver@npm:5.7.2" + bin: + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 + languageName: node + linkType: hard + "semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" @@ -20357,7 +26692,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.3.1": +"semver@npm:^6.2.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -20416,7 +26751,7 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1": +"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1": version: 6.0.1 resolution: "serialize-javascript@npm:6.0.1" dependencies: @@ -20425,6 +26760,37 @@ __metadata: languageName: node linkType: hard +"serve-handler@npm:^6.1.3": + version: 6.1.5 + resolution: "serve-handler@npm:6.1.5" + dependencies: + bytes: 3.0.0 + content-disposition: 0.5.2 + fast-url-parser: 1.1.3 + mime-types: 2.1.18 + minimatch: 3.1.2 + path-is-inside: 1.0.2 + path-to-regexp: 2.2.1 + range-parser: 1.2.0 + checksum: 7a98ca9cbf8692583b6cde4deb3941cff900fa38bf16adbfccccd8430209bab781e21d9a1f61c9c03e226f9f67689893bbce25941368f3ddaf985fc3858b49dc + languageName: node + linkType: hard + +"serve-index@npm:^1.9.1": + version: 1.9.1 + resolution: "serve-index@npm:1.9.1" + dependencies: + accepts: ~1.3.4 + batch: 0.6.1 + debug: 2.6.9 + escape-html: ~1.0.3 + http-errors: ~1.6.2 + mime-types: ~2.1.17 + parseurl: ~1.3.2 + checksum: e2647ce13379485b98a53ba2ea3fbad4d44b57540d00663b02b976e426e6194d62ac465c0d862cb7057f65e0de8ab8a684aa095427a4b8612412eca0d300d22f + languageName: node + linkType: hard + "serve-static@npm:1.15.0": version: 1.15.0 resolution: "serve-static@npm:1.15.0" @@ -20494,6 +26860,13 @@ __metadata: languageName: node linkType: hard +"setprototypeof@npm:1.1.0": + version: 1.1.0 + resolution: "setprototypeof@npm:1.1.0" + checksum: 27cb44304d6c9e1a23bc6c706af4acaae1a7aa1054d4ec13c05f01a99fd4887109a83a8042b67ad90dbfcd100d43efc171ee036eb080667172079213242ca36e + languageName: node + linkType: hard + "setprototypeof@npm:1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" @@ -20523,6 +26896,15 @@ __metadata: languageName: node linkType: hard +"shallow-clone@npm:^3.0.0": + version: 3.0.1 + resolution: "shallow-clone@npm:3.0.1" + dependencies: + kind-of: ^6.0.2 + checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7 + languageName: node + linkType: hard + "shallowequal@npm:^1.1.0": version: 1.1.0 resolution: "shallowequal@npm:1.1.0" @@ -20546,7 +26928,14 @@ __metadata: languageName: node linkType: hard -"shelljs@npm:^0.8.3": +"shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1": + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b + languageName: node + linkType: hard + +"shelljs@npm:^0.8.3, shelljs@npm:^0.8.5": version: 0.8.5 resolution: "shelljs@npm:0.8.5" dependencies: @@ -20627,6 +27016,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^2.0.3": + version: 2.0.3 + resolution: "sirv@npm:2.0.3" + dependencies: + "@polka/url": ^1.0.0-next.20 + mrmime: ^1.0.0 + totalist: ^3.0.0 + checksum: e2dfd4c97735a6ad6d842d0eec2cd9e3919ff0e46f0d228248c5753ad4b70b832711e77e1259c031c439cdb08303cc54d923685c92b0e890145cc733af7c5568 + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -20634,6 +27034,20 @@ __metadata: languageName: node linkType: hard +"sitemap@npm:^7.1.1": + version: 7.1.1 + resolution: "sitemap@npm:7.1.1" + dependencies: + "@types/node": ^17.0.5 + "@types/sax": ^1.2.1 + arg: ^5.0.0 + sax: ^1.2.4 + bin: + sitemap: dist/cli.js + checksum: 87a6d21b0d4a33b8c611d3bb8543d02b813c0ebfce014213ef31849b5c1439005644f19ad1593ec89815f6101355f468c9a02c251d09aa03f6fddd17e23c4be4 + languageName: node + linkType: hard + "skip-regex@npm:^1.0.2": version: 1.0.2 resolution: "skip-regex@npm:1.0.2" @@ -20648,6 +27062,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^4.0.0": + version: 4.0.0 + resolution: "slash@npm:4.0.0" + checksum: da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d + languageName: node + linkType: hard + "slice-ansi@npm:^3.0.0": version: 3.0.0 resolution: "slice-ansi@npm:3.0.0" @@ -20687,6 +27108,17 @@ __metadata: languageName: node linkType: hard +"sockjs@npm:^0.3.24": + version: 0.3.24 + resolution: "sockjs@npm:0.3.24" + dependencies: + faye-websocket: ^0.11.3 + uuid: ^8.3.2 + websocket-driver: ^0.7.4 + checksum: 355309b48d2c4e9755349daa29cea1c0d9ee23e49b983841c6bf7a20276b00d3c02343f9f33f26d2ee8b261a5a02961b52a25c8da88b2538c5b68d3071b4934c + languageName: node + linkType: hard + "socks-proxy-agent@npm:^7.0.0": version: 7.0.0 resolution: "socks-proxy-agent@npm:7.0.0" @@ -20837,6 +27269,13 @@ __metadata: languageName: node linkType: hard +"sort-css-media-queries@npm:2.1.0": + version: 2.1.0 + resolution: "sort-css-media-queries@npm:2.1.0" + checksum: 25cb8f08b148a2ed83d0bc1cf20ddb888d3dee2a3c986896099a21b28b999d5cca3e46a9ef64381bb36fca0fc820471713f2e8af2729ecc6e108ab2b3b315ea9 + languageName: node + linkType: hard + "sort-keys-length@npm:^1.0.0": version: 1.0.1 resolution: "sort-keys-length@npm:1.0.1" @@ -20871,7 +27310,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c @@ -20888,14 +27327,14 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.7": +"source-map@npm:^0.5.0, source-map@npm:^0.5.7": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 @@ -20975,6 +27414,33 @@ __metadata: languageName: node linkType: hard +"spdy-transport@npm:^3.0.0": + version: 3.0.0 + resolution: "spdy-transport@npm:3.0.0" + dependencies: + debug: ^4.1.0 + detect-node: ^2.0.4 + hpack.js: ^2.1.6 + obuf: ^1.1.2 + readable-stream: ^3.0.6 + wbuf: ^1.7.3 + checksum: 0fcaad3b836fb1ec0bdd39fa7008b9a7a84a553f12be6b736a2512613b323207ffc924b9551cef0378f7233c85916cff1118652e03a730bdb97c0e042243d56c + languageName: node + linkType: hard + +"spdy@npm:^4.0.2": + version: 4.0.2 + resolution: "spdy@npm:4.0.2" + dependencies: + debug: ^4.1.0 + handle-thing: ^2.0.0 + http-deceiver: ^1.2.7 + select-hose: ^2.0.0 + spdy-transport: ^3.0.0 + checksum: 2c739d0ff6f56ad36d2d754d0261d5ec358457bea7cbf77b1b05b0c6464f2ce65b85f196305f50b7bd9120723eb94bae9933466f28e67e5cd8cde4e27f1d75f8 + languageName: node + linkType: hard + "split2@npm:^3.0.0": version: 3.2.2 resolution: "split2@npm:3.2.2" @@ -21030,6 +27496,13 @@ __metadata: languageName: node linkType: hard +"stable@npm:^0.1.8": + version: 0.1.8 + resolution: "stable@npm:0.1.8" + checksum: 2ff482bb100285d16dd75cd8f7c60ab652570e8952c0bfa91828a2b5f646a0ff533f14596ea4eabd48bb7f4aeea408dce8f8515812b975d958a4cc4fa6b9dfeb + languageName: node + linkType: hard + "stack-utils@npm:^2.0.3": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" @@ -21048,6 +27521,13 @@ __metadata: languageName: node linkType: hard +"state-toggle@npm:^1.0.0": + version: 1.0.3 + resolution: "state-toggle@npm:1.0.3" + checksum: 17398af928413e8d8b866cf0c81fd1b1348bb7d65d8983126ff6ff2317a80d6ee023484fba0c54d8169f5aa544f125434a650ae3a71eddc935cae307d4692b4f + languageName: node + linkType: hard + "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -21055,6 +27535,20 @@ __metadata: languageName: node linkType: hard +"statuses@npm:>= 1.4.0 < 2": + version: 1.5.0 + resolution: "statuses@npm:1.5.0" + checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c + languageName: node + linkType: hard + +"std-env@npm:^3.0.1": + version: 3.6.0 + resolution: "std-env@npm:3.6.0" + checksum: ec344e93af17fd1b71eb28aeb4712f72790b9f2363981fc91ad1a91c9c7967c1ab89271819242d1b3bdbd57f10ac8ef0559d561ccf081a5377f9b3cd8c9b2259 + languageName: node + linkType: hard + "stdin-discarder@npm:^0.1.0": version: 0.1.0 resolution: "stdin-discarder@npm:0.1.0" @@ -21109,7 +27603,7 @@ __metadata: languageName: node linkType: hard -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -21338,6 +27832,13 @@ __metadata: languageName: node linkType: hard +"strip-bom-string@npm:^1.0.0": + version: 1.0.0 + resolution: "strip-bom-string@npm:1.0.0" + checksum: 5635a3656d8512a2c194d6c8d5dee7ef0dde6802f7be9413b91e201981ad4132506656d9cf14137f019fd50f0269390d91c7f6a2601b1bee039a4859cfce4934 + languageName: node + linkType: hard + "strip-bom@npm:4.0.0, strip-bom@npm:^4.0.0": version: 4.0.0 resolution: "strip-bom@npm:4.0.0" @@ -21400,7 +27901,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:2.0.1": +"strip-json-comments@npm:2.0.1, strip-json-comments@npm:~2.0.1": version: 2.0.1 resolution: "strip-json-comments@npm:2.0.1" checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 @@ -21423,6 +27924,15 @@ __metadata: languageName: node linkType: hard +"style-to-object@npm:0.3.0, style-to-object@npm:^0.3.0": + version: 0.3.0 + resolution: "style-to-object@npm:0.3.0" + dependencies: + inline-style-parser: 0.1.1 + checksum: 4d7084015207f2a606dfc10c29cb5ba569f2fe8005551df7396110dd694d6ff650f2debafa95bd5d147dfb4ca50f57868e2a7f91bf5d11ef734fe7ccbd7abf59 + languageName: node + linkType: hard + "styled-components@npm:^6.0.5": version: 6.1.0 resolution: "styled-components@npm:6.1.0" @@ -21475,6 +27985,18 @@ __metadata: languageName: node linkType: hard +"stylehacks@npm:^5.1.1": + version: 5.1.1 + resolution: "stylehacks@npm:5.1.1" + dependencies: + browserslist: ^4.21.4 + postcss-selector-parser: ^6.0.4 + peerDependencies: + postcss: ^8.2.15 + checksum: 11175366ef52de65bf06cefba0ddc9db286dc3a1451fd2989e74c6ea47091a02329a4bf6ce10b1a36950056927b6bbbe47c5ab3a1f4c7032df932d010fbde5a2 + languageName: node + linkType: hard + "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -21558,6 +28080,53 @@ __metadata: languageName: node linkType: hard +"svg-parser@npm:^2.0.2, svg-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "svg-parser@npm:2.0.4" + checksum: b3de6653048212f2ae7afe4a423e04a76ec6d2d06e1bf7eacc618a7c5f7df7faa5105561c57b94579ec831fbbdbf5f190ba56a9205ff39ed13eabdf8ab086ddf + languageName: node + linkType: hard + +"svgo@npm:^1.2.2": + version: 1.3.2 + resolution: "svgo@npm:1.3.2" + dependencies: + chalk: ^2.4.1 + coa: ^2.0.2 + css-select: ^2.0.0 + css-select-base-adapter: ^0.1.1 + css-tree: 1.0.0-alpha.37 + csso: ^4.0.2 + js-yaml: ^3.13.1 + mkdirp: ~0.5.1 + object.values: ^1.1.0 + sax: ~1.2.4 + stable: ^0.1.8 + unquote: ~1.1.1 + util.promisify: ~1.0.0 + bin: + svgo: ./bin/svgo + checksum: 28a5680a61245eb4a1603bc03459095bb01ad5ebd23e95882d886c3c81752313c0a9a9fe48dd0bcbb9a27c52e11c603640df952971573b2b550d9e15a9ee6116 + languageName: node + linkType: hard + +"svgo@npm:^2.7.0, svgo@npm:^2.8.0": + version: 2.8.0 + resolution: "svgo@npm:2.8.0" + dependencies: + "@trysound/sax": 0.2.0 + commander: ^7.2.0 + css-select: ^4.1.3 + css-tree: ^1.1.3 + csso: ^4.2.0 + picocolors: ^1.0.0 + stable: ^0.1.8 + bin: + svgo: bin/svgo + checksum: b92f71a8541468ffd0b81b8cdb36b1e242eea320bf3c1a9b2c8809945853e9d8c80c19744267eb91cabf06ae9d5fff3592d677df85a31be4ed59ff78534fa420 + languageName: node + linkType: hard + "swarm-js@npm:^0.1.40": version: 0.1.42 resolution: "swarm-js@npm:0.1.42" @@ -21629,6 +28198,20 @@ __metadata: languageName: node linkType: hard +"tapable@npm:^1.0.0": + version: 1.1.3 + resolution: "tapable@npm:1.1.3" + checksum: 53ff4e7c3900051c38cc4faab428ebfd7e6ad0841af5a7ac6d5f3045c5b50e88497bfa8295b4b3fbcadd94993c9e358868b78b9fb249a76cb8b018ac8dccafd7 + languageName: node + linkType: hard + +"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0": + version: 2.2.1 + resolution: "tapable@npm:2.2.1" + checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 + languageName: node + linkType: hard + "tar-stream@npm:^1.5.2": version: 1.6.2 resolution: "tar-stream@npm:1.6.2" @@ -21738,6 +28321,28 @@ __metadata: languageName: node linkType: hard +"terser-webpack-plugin@npm:^5.3.7": + version: 5.3.9 + resolution: "terser-webpack-plugin@npm:5.3.9" + dependencies: + "@jridgewell/trace-mapping": ^0.3.17 + jest-worker: ^27.4.5 + schema-utils: ^3.1.1 + serialize-javascript: ^6.0.1 + terser: ^5.16.8 + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f + languageName: node + linkType: hard + "terser@npm:^5.0.0, terser@npm:^5.16.5": version: 5.16.8 resolution: "terser@npm:5.16.8" @@ -21752,6 +28357,20 @@ __metadata: languageName: node linkType: hard +"terser@npm:^5.10.0, terser@npm:^5.16.8": + version: 5.26.0 + resolution: "terser@npm:5.26.0" + dependencies: + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: 02a9bb896f04df828025af8f0eced36c315d25d310b6c2418e7dad2bed19ddeb34a9cea9b34e7c24789830fa51e1b6a9be26679980987a9c817a7e6d9cd4154b + languageName: node + linkType: hard + "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" @@ -21819,6 +28438,13 @@ __metadata: languageName: node linkType: hard +"thunky@npm:^1.0.2": + version: 1.1.0 + resolution: "thunky@npm:1.1.0" + checksum: 993096c472b6b8f30e29dc777a8d17720e4cab448375041f20c0cb802a09a7fb2217f2a3e8cdc11851faa71c957e2db309357367fc9d7af3cb7a4d00f4b66034 + languageName: node + linkType: hard + "timed-out@npm:^4.0.1": version: 4.0.1 resolution: "timed-out@npm:4.0.1" @@ -21826,13 +28452,20 @@ __metadata: languageName: node linkType: hard -"tiny-invariant@npm:^1.0.6": +"tiny-invariant@npm:^1.0.2, tiny-invariant@npm:^1.0.6": version: 1.3.1 resolution: "tiny-invariant@npm:1.3.1" checksum: 872dbd1ff20a21303a2fd20ce3a15602cfa7fcf9b228bd694a52e2938224313b5385a1078cb667ed7375d1612194feaca81c4ecbe93121ca1baebe344de4f84c languageName: node linkType: hard +"tiny-warning@npm:^1.0.0": + version: 1.0.3 + resolution: "tiny-warning@npm:1.0.3" + checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71 + languageName: node + linkType: hard + "tmp@npm:0.0.33, tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -21893,6 +28526,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a + languageName: node + linkType: hard + "tough-cookie@npm:^2.3.3, tough-cookie@npm:~2.5.0": version: 2.5.0 resolution: "tough-cookie@npm:2.5.0" @@ -21956,6 +28596,27 @@ __metadata: languageName: node linkType: hard +"trim-trailing-lines@npm:^1.0.0": + version: 1.1.4 + resolution: "trim-trailing-lines@npm:1.1.4" + checksum: 5d39d21c0d4b258667012fcd784f73129e148ea1c213b1851d8904f80499fc91df6710c94c7dd49a486a32da2b9cb86020dda79f285a9a2586cfa622f80490c2 + languageName: node + linkType: hard + +"trim@npm:0.0.1": + version: 0.0.1 + resolution: "trim@npm:0.0.1" + checksum: 2b4646dff99a222e8e1526edd4e3a43bbd925af0b8e837c340455d250157e7deefaa4da49bb891ab841e5c27b1afc5e9e32d4b57afb875d2dfcabf4e319b8f7f + languageName: node + linkType: hard + +"trough@npm:^1.0.0": + version: 1.0.5 + resolution: "trough@npm:1.0.5" + checksum: d6c8564903ed00e5258bab92134b020724dbbe83148dc72e4bf6306c03ed8843efa1bcc773fa62410dd89161ecb067432dd5916501793508a9506cacbc408e25 + languageName: node + linkType: hard + "ts-command-line-args@npm:^2.2.0": version: 2.4.2 resolution: "ts-command-line-args@npm:2.4.2" @@ -22190,7 +28851,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.13.0": +"type-fest@npm:^2.13.0, type-fest@npm:^2.5.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 @@ -22339,7 +29000,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.4.3, typescript@npm:^4.7.0, typescript@npm:^4.7.3": +"typescript@npm:^4.3.5, typescript@npm:^4.4.3, typescript@npm:^4.7.0, typescript@npm:^4.7.3": version: 4.9.5 resolution: "typescript@npm:4.9.5" bin: @@ -22379,7 +29040,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.4.3#~builtin, typescript@patch:typescript@^4.7.0#~builtin, typescript@patch:typescript@^4.7.3#~builtin": +"typescript@patch:typescript@^4.3.5#~builtin, typescript@patch:typescript@^4.4.3#~builtin, typescript@patch:typescript@^4.7.0#~builtin, typescript@patch:typescript@^4.7.3#~builtin": version: 4.9.5 resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=7ad353" bin: @@ -22423,6 +29084,13 @@ __metadata: languageName: node linkType: hard +"ua-parser-js@npm:^1.0.35": + version: 1.0.37 + resolution: "ua-parser-js@npm:1.0.37" + checksum: 4d481c720d523366d7762dc8a46a1b58967d979aacf786f9ceceb1cd767de069f64a4bdffb63956294f1c0696eb465ddb950f28ba90571709e33521b4bd75e07 + languageName: node + linkType: hard + "ufo@npm:^0.8.6": version: 0.8.6 resolution: "ufo@npm:0.8.6" @@ -22507,6 +29175,16 @@ __metadata: languageName: node linkType: hard +"unherit@npm:^1.0.4": + version: 1.1.3 + resolution: "unherit@npm:1.1.3" + dependencies: + inherits: ^2.0.0 + xtend: ^4.0.0 + checksum: fd7922f84fc0bfb7c4df6d1f5a50b5b94a0218e3cda98a54dbbd209226ddd4072d742d3df44d0e295ab08d5ccfd304a1e193dfe31a86d2a91b7cb9fdac093194 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -22545,6 +29223,34 @@ __metadata: languageName: node linkType: hard +"unified@npm:9.2.0": + version: 9.2.0 + resolution: "unified@npm:9.2.0" + dependencies: + bail: ^1.0.0 + extend: ^3.0.0 + is-buffer: ^2.0.0 + is-plain-obj: ^2.0.0 + trough: ^1.0.0 + vfile: ^4.0.0 + checksum: 0cac4ae119893fbd49d309b4db48595e4d4e9f0a2dc1dde4d0074059f9a46012a2905f37c1346715e583f30c970bc8078db8462675411d39ff5036ae18b4fb8a + languageName: node + linkType: hard + +"unified@npm:^9.2.2": + version: 9.2.2 + resolution: "unified@npm:9.2.2" + dependencies: + bail: ^1.0.0 + extend: ^3.0.0 + is-buffer: ^2.0.0 + is-plain-obj: ^2.0.0 + trough: ^1.0.0 + vfile: ^4.0.0 + checksum: 7c24461be7de4145939739ce50d18227c5fbdf9b3bc5a29dabb1ce26dd3e8bd4a1c385865f6f825f3b49230953ee8b591f23beab3bb3643e3e9dc37aa8a089d5 + languageName: node + linkType: hard + "unique-filename@npm:^2.0.0": version: 2.0.1 resolution: "unique-filename@npm:2.0.1" @@ -22590,6 +29296,82 @@ __metadata: languageName: node linkType: hard +"unist-builder@npm:2.0.3, unist-builder@npm:^2.0.0": + version: 2.0.3 + resolution: "unist-builder@npm:2.0.3" + checksum: e946fdf77dbfc320feaece137ce4959ae2da6614abd1623bd39512dc741a9d5f313eb2ba79f8887d941365dccddec7fef4e953827475e392bf49b45336f597f6 + languageName: node + linkType: hard + +"unist-util-generated@npm:^1.0.0": + version: 1.1.6 + resolution: "unist-util-generated@npm:1.1.6" + checksum: 86239ff88a08800d52198f2f0e15911f05bab2dad17cef95550f7c2728f15ebb0344694fcc3101d05762d88adaf86cb85aa7a3300fedabd0b6d7d00b41cdcb7f + languageName: node + linkType: hard + +"unist-util-is@npm:^4.0.0": + version: 4.1.0 + resolution: "unist-util-is@npm:4.1.0" + checksum: 726484cd2adc9be75a939aeedd48720f88294899c2e4a3143da413ae593f2b28037570730d5cf5fd910ff41f3bc1501e3d636b6814c478d71126581ef695f7ea + languageName: node + linkType: hard + +"unist-util-position@npm:^3.0.0": + version: 3.1.0 + resolution: "unist-util-position@npm:3.1.0" + checksum: 10b3952e32a1ffabbecad41c3946237f7059f5bb6436796da05531a285f50b97e4f37cfc2f7164676d041063f40fe1ad92fbb8ca38d3ae8747328ebe738d738f + languageName: node + linkType: hard + +"unist-util-remove-position@npm:^2.0.0": + version: 2.0.1 + resolution: "unist-util-remove-position@npm:2.0.1" + dependencies: + unist-util-visit: ^2.0.0 + checksum: 4149294969f1a78a367b5d03eb0a138aa8320a39e1b15686647a2bec5945af3df27f2936a1e9752ecbb4a82dc23bd86f7e5a0ee048e5eeaedc2deb9237872795 + languageName: node + linkType: hard + +"unist-util-remove@npm:^2.0.0": + version: 2.1.0 + resolution: "unist-util-remove@npm:2.1.0" + dependencies: + unist-util-is: ^4.0.0 + checksum: 99e54f3ea0523f8cf957579a6e84e5b58427bffab929cc7f6aa5119581f929db683dd4691ea5483df0c272f486dda9dbd04f4ab74dca6cae1f3ebe8e4261a4d9 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^2.0.0": + version: 2.0.3 + resolution: "unist-util-stringify-position@npm:2.0.3" + dependencies: + "@types/unist": ^2.0.2 + checksum: f755cadc959f9074fe999578a1a242761296705a7fe87f333a37c00044de74ab4b184b3812989a57d4cd12211f0b14ad397b327c3a594c7af84361b1c25a7f09 + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^3.0.0": + version: 3.1.1 + resolution: "unist-util-visit-parents@npm:3.1.1" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^4.0.0 + checksum: 1170e397dff88fab01e76d5154981666eb0291019d2462cff7a2961a3e76d3533b42eaa16b5b7e2d41ad42a5ea7d112301458283d255993e660511387bf67bc3 + languageName: node + linkType: hard + +"unist-util-visit@npm:2.0.3, unist-util-visit@npm:^2.0.0, unist-util-visit@npm:^2.0.3": + version: 2.0.3 + resolution: "unist-util-visit@npm:2.0.3" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^4.0.0 + unist-util-visit-parents: ^3.0.0 + checksum: 1fe19d500e212128f96d8c3cfa3312846e586b797748a1fd195fe6479f06bc90a6f6904deb08eefc00dd58e83a1c8a32fb8677252d2273ad7a5e624525b69b8f + languageName: node + linkType: hard + "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" @@ -22618,6 +29400,13 @@ __metadata: languageName: node linkType: hard +"unquote@npm:~1.1.1": + version: 1.1.1 + resolution: "unquote@npm:1.1.1" + checksum: 71745867d09cba44ba2d26cb71d6dda7045a98b14f7405df4faaf2b0c90d24703ad027a9d90ba9a6e0d096de2c8d56f864fd03f1c0498c0b7a3990f73b4c8f5f + languageName: node + linkType: hard + "upath2@npm:^3.1.13": version: 3.1.19 resolution: "upath2@npm:3.1.19" @@ -22651,6 +29440,42 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + languageName: node + linkType: hard + +"update-notifier@npm:^5.1.0": + version: 5.1.0 + resolution: "update-notifier@npm:5.1.0" + dependencies: + boxen: ^5.0.0 + chalk: ^4.1.0 + configstore: ^5.0.1 + has-yarn: ^2.1.0 + import-lazy: ^2.1.0 + is-ci: ^2.0.0 + is-installed-globally: ^0.4.0 + is-npm: ^5.0.0 + is-yarn-global: ^0.3.0 + latest-version: ^5.1.0 + pupa: ^2.1.1 + semver: ^7.3.4 + semver-diff: ^3.1.1 + xdg-basedir: ^4.0.0 + checksum: 461e5e5b002419296d3868ee2abe0f9ab3e1846d9db642936d0c46f838872ec56069eddfe662c45ce1af0a8d6d5026353728de2e0a95ab2e3546a22ea077caf1 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -22660,6 +29485,23 @@ __metadata: languageName: node linkType: hard +"url-loader@npm:^4.1.1": + version: 4.1.1 + resolution: "url-loader@npm:4.1.1" + dependencies: + loader-utils: ^2.0.0 + mime-types: ^2.1.27 + schema-utils: ^3.0.0 + peerDependencies: + file-loader: "*" + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + checksum: c1122a992c6cff70a7e56dfc2b7474534d48eb40b2cc75467cde0c6972e7597faf8e43acb4f45f93c2473645dfd803bcbc20960b57544dd1e4c96e77f72ba6fd + languageName: node + linkType: hard + "url-parse-lax@npm:^3.0.0": version: 3.0.0 resolution: "url-parse-lax@npm:3.0.0" @@ -22708,6 +29550,41 @@ __metadata: languageName: node linkType: hard +"use-composed-ref@npm:^1.3.0": + version: 1.3.0 + resolution: "use-composed-ref@npm:1.3.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: f771cbadfdc91e03b7ab9eb32d0fc0cc647755711801bf507e891ad38c4bbc5f02b2509acadf9c965ec9c5f2f642fd33bdfdfb17b0873c4ad0a9b1f5e5e724bf + languageName: node + linkType: hard + +"use-isomorphic-layout-effect@npm:^1.1.1": + version: 1.1.2 + resolution: "use-isomorphic-layout-effect@npm:1.1.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb + languageName: node + linkType: hard + +"use-latest@npm:^1.2.1": + version: 1.2.1 + resolution: "use-latest@npm:1.2.1" + dependencies: + use-isomorphic-layout-effect: ^1.1.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ed3f2ddddf6f21825e2ede4c2e0f0db8dcce5129802b69d1f0575fc1b42380436e8c76a6cd885d4e9aa8e292e60fb8b959c955f33c6a9123b83814a1a1875367 + languageName: node + linkType: hard + "use-sidecar@npm:^1.1.2": version: 1.1.2 resolution: "use-sidecar@npm:1.1.2" @@ -22750,13 +29627,25 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 languageName: node linkType: hard +"util.promisify@npm:~1.0.0": + version: 1.0.1 + resolution: "util.promisify@npm:1.0.1" + dependencies: + define-properties: ^1.1.3 + es-abstract: ^1.17.2 + has-symbols: ^1.0.1 + object.getownpropertydescriptors: ^2.1.0 + checksum: d823c75b3fc66510018596f128a6592c98991df38bc0464a633bdf9134e2de0a1a33199c5c21cc261048a3982d7a19e032ecff8835b3c587f843deba96063e37 + languageName: node + linkType: hard + "util@npm:^0.12.0, util@npm:^0.12.5": version: 0.12.5 resolution: "util@npm:0.12.5" @@ -22770,6 +29659,20 @@ __metadata: languageName: node linkType: hard +"utila@npm:~0.4": + version: 0.4.0 + resolution: "utila@npm:0.4.0" + checksum: 97ffd3bd2bb80c773429d3fb8396469115cd190dded1e733f190d8b602bd0a1bcd6216b7ce3c4395ee3c79e3c879c19d268dbaae3093564cb169ad1212d436f4 + languageName: node + linkType: hard + +"utility-types@npm:^3.10.0": + version: 3.10.0 + resolution: "utility-types@npm:3.10.0" + checksum: 8f274415c6196ab62883b8bd98c9d2f8829b58016e4269aaa1ebd84184ac5dda7dc2ca45800c0d5e0e0650966ba063bf9a412aaeaea6850ca4440a391283d5c8 + languageName: node + linkType: hard + "utils-merge@npm:1.0.1": version: 1.0.1 resolution: "utils-merge@npm:1.0.1" @@ -22866,6 +29769,13 @@ __metadata: languageName: node linkType: hard +"value-equal@npm:^1.0.1": + version: 1.0.1 + resolution: "value-equal@npm:1.0.1" + checksum: bb7ae1facc76b5cf8071aeb6c13d284d023fdb370478d10a5d64508e0e6e53bb459c4bbe34258df29d82e6f561f874f0105eba38de0e61fe9edd0bdce07a77a2 + languageName: node + linkType: hard + "varint@npm:^5.0.0": version: 5.0.2 resolution: "varint@npm:5.0.2" @@ -22891,6 +29801,35 @@ __metadata: languageName: node linkType: hard +"vfile-location@npm:^3.0.0, vfile-location@npm:^3.2.0": + version: 3.2.0 + resolution: "vfile-location@npm:3.2.0" + checksum: 9bb3df6d0be31b5dd2d8da0170c27b7045c64493a8ba7b6ff7af8596c524fc8896924b8dd85ae12d201eead2709217a0fbc44927b7264f4bbf0aa8027a78be9c + languageName: node + linkType: hard + +"vfile-message@npm:^2.0.0": + version: 2.0.4 + resolution: "vfile-message@npm:2.0.4" + dependencies: + "@types/unist": ^2.0.0 + unist-util-stringify-position: ^2.0.0 + checksum: 1bade499790f46ca5aba04bdce07a1e37c2636a8872e05cf32c26becc912826710b7eb063d30c5754fdfaeedc8a7658e78df10b3bc535c844890ec8a184f5643 + languageName: node + linkType: hard + +"vfile@npm:^4.0.0": + version: 4.2.1 + resolution: "vfile@npm:4.2.1" + dependencies: + "@types/unist": ^2.0.0 + is-buffer: ^2.0.0 + unist-util-stringify-position: ^2.0.0 + vfile-message: ^2.0.0 + checksum: ee5726e10d170472cde778fc22e0f7499caa096eb85babea5d0ce0941455b721037ee1c9e6ae506ca2803250acd313d0f464328ead0b55cfe7cb6315f1b462d6 + languageName: node + linkType: hard + "vscode-oniguruma@npm:^1.7.0": version: 1.7.0 resolution: "vscode-oniguruma@npm:1.7.0" @@ -22923,6 +29862,21 @@ __metadata: languageName: node linkType: hard +"wait-on@npm:^6.0.1": + version: 6.0.1 + resolution: "wait-on@npm:6.0.1" + dependencies: + axios: ^0.25.0 + joi: ^17.6.0 + lodash: ^4.17.21 + minimist: ^1.2.5 + rxjs: ^7.5.4 + bin: + wait-on: bin/wait-on + checksum: e4d62aa4145d99fe34747ccf7506d4b4d6e60dd677c0eb18a51e316d38116ace2d194e4b22a9eb7b767b0282f39878ddcc4ae9440dcb0c005c9150668747cf5b + languageName: node + linkType: hard + "walker@npm:^1.0.7": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -22948,7 +29902,7 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:2.4.0": +"watchpack@npm:2.4.0, watchpack@npm:^2.4.0": version: 2.4.0 resolution: "watchpack@npm:2.4.0" dependencies: @@ -22958,6 +29912,15 @@ __metadata: languageName: node linkType: hard +"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": + version: 1.7.3 + resolution: "wbuf@npm:1.7.3" + dependencies: + minimalistic-assert: ^1.0.0 + checksum: 2abc306c96930b757972a1c4650eb6b25b5d99f24088714957f88629e137db569368c5de0e57986c89ea70db2f1df9bba11a87cb6d0c8694b6f53a0159fab3bf + languageName: node + linkType: hard + "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -22967,6 +29930,13 @@ __metadata: languageName: node linkType: hard +"web-namespaces@npm:^1.0.0": + version: 1.1.4 + resolution: "web-namespaces@npm:1.1.4" + checksum: 5149842ccbfbc56fe4f8758957b3f8c8616a281874a5bb84aa1b305e4436a9bad853d21c629a7b8f174902449e1489c7a6c724fccf60965077c5636bd8aed42b + languageName: node + linkType: hard + "web-streams-polyfill@npm:^3.0.3": version: 3.2.1 resolution: "web-streams-polyfill@npm:3.2.1" @@ -23580,6 +30550,102 @@ __metadata: languageName: node linkType: hard +"webpack-bundle-analyzer@npm:^4.5.0": + version: 4.10.1 + resolution: "webpack-bundle-analyzer@npm:4.10.1" + dependencies: + "@discoveryjs/json-ext": 0.5.7 + acorn: ^8.0.4 + acorn-walk: ^8.0.0 + commander: ^7.2.0 + debounce: ^1.2.1 + escape-string-regexp: ^4.0.0 + gzip-size: ^6.0.0 + html-escaper: ^2.0.2 + is-plain-object: ^5.0.0 + opener: ^1.5.2 + picocolors: ^1.0.0 + sirv: ^2.0.3 + ws: ^7.3.1 + bin: + webpack-bundle-analyzer: lib/bin/analyzer.js + checksum: 77f48f10a493b1cc95674526472978a2de32412ddbf556bd3903738f14890611426f19477352993efe5a9fd6ca16711eb912d986f2221b17ba6eeca1b6f71fb6 + languageName: node + linkType: hard + +"webpack-dev-middleware@npm:^5.3.1": + version: 5.3.3 + resolution: "webpack-dev-middleware@npm:5.3.3" + dependencies: + colorette: ^2.0.10 + memfs: ^3.4.3 + mime-types: ^2.1.31 + range-parser: ^1.2.1 + schema-utils: ^4.0.0 + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: dd332cc6da61222c43d25e5a2155e23147b777ff32fdf1f1a0a8777020c072fbcef7756360ce2a13939c3f534c06b4992a4d659318c4a7fe2c0530b52a8a6621 + languageName: node + linkType: hard + +"webpack-dev-server@npm:^4.9.3": + version: 4.15.1 + resolution: "webpack-dev-server@npm:4.15.1" + dependencies: + "@types/bonjour": ^3.5.9 + "@types/connect-history-api-fallback": ^1.3.5 + "@types/express": ^4.17.13 + "@types/serve-index": ^1.9.1 + "@types/serve-static": ^1.13.10 + "@types/sockjs": ^0.3.33 + "@types/ws": ^8.5.5 + ansi-html-community: ^0.0.8 + bonjour-service: ^1.0.11 + chokidar: ^3.5.3 + colorette: ^2.0.10 + compression: ^1.7.4 + connect-history-api-fallback: ^2.0.0 + default-gateway: ^6.0.3 + express: ^4.17.3 + graceful-fs: ^4.2.6 + html-entities: ^2.3.2 + http-proxy-middleware: ^2.0.3 + ipaddr.js: ^2.0.1 + launch-editor: ^2.6.0 + open: ^8.0.9 + p-retry: ^4.5.0 + rimraf: ^3.0.2 + schema-utils: ^4.0.0 + selfsigned: ^2.1.1 + serve-index: ^1.9.1 + sockjs: ^0.3.24 + spdy: ^4.0.2 + webpack-dev-middleware: ^5.3.1 + ws: ^8.13.0 + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + bin: + webpack-dev-server: bin/webpack-dev-server.js + checksum: cd0063b068d2b938fd76c412d555374186ac2fa84bbae098265212ed50a5c15d6f03aa12a5a310c544a242943eb58c0bfde4c296d5c36765c182f53799e1bc71 + languageName: node + linkType: hard + +"webpack-merge@npm:^5.8.0": + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" + dependencies: + clone-deep: ^4.0.1 + flat: ^5.0.2 + wildcard: ^2.0.0 + checksum: 1fe8bf5309add7298e1ac72fb3f2090e1dfa80c48c7e79fa48aa60b5961332c7d0d61efa8851acb805e6b91a4584537a347bc106e05e9aec87fa4f7088c62f2f + languageName: node + linkType: hard + "webpack-sources@npm:^1.4.3": version: 1.4.3 resolution: "webpack-sources@npm:1.4.3" @@ -23590,6 +30656,82 @@ __metadata: languageName: node linkType: hard +"webpack-sources@npm:^3.2.2, webpack-sources@npm:^3.2.3": + version: 3.2.3 + resolution: "webpack-sources@npm:3.2.3" + checksum: 989e401b9fe3536529e2a99dac8c1bdc50e3a0a2c8669cbafad31271eadd994bc9405f88a3039cd2e29db5e6d9d0926ceb7a1a4e7409ece021fe79c37d9c4607 + languageName: node + linkType: hard + +"webpack@npm:^5.73.0": + version: 5.89.0 + resolution: "webpack@npm:5.89.0" + dependencies: + "@types/eslint-scope": ^3.7.3 + "@types/estree": ^1.0.0 + "@webassemblyjs/ast": ^1.11.5 + "@webassemblyjs/wasm-edit": ^1.11.5 + "@webassemblyjs/wasm-parser": ^1.11.5 + acorn: ^8.7.1 + acorn-import-assertions: ^1.9.0 + browserslist: ^4.14.5 + chrome-trace-event: ^1.0.2 + enhanced-resolve: ^5.15.0 + es-module-lexer: ^1.2.1 + eslint-scope: 5.1.1 + events: ^3.2.0 + glob-to-regexp: ^0.4.1 + graceful-fs: ^4.2.9 + json-parse-even-better-errors: ^2.3.1 + loader-runner: ^4.2.0 + mime-types: ^2.1.27 + neo-async: ^2.6.2 + schema-utils: ^3.2.0 + tapable: ^2.1.1 + terser-webpack-plugin: ^5.3.7 + watchpack: ^2.4.0 + webpack-sources: ^3.2.3 + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 43fe0dbc30e168a685ef5a86759d5016a705f6563b39a240aa00826a80637d4a3deeb8062e709d6a4b05c63e796278244c84b04174704dc4a37bedb0f565c5ed + languageName: node + linkType: hard + +"webpackbar@npm:^5.0.2": + version: 5.0.2 + resolution: "webpackbar@npm:5.0.2" + dependencies: + chalk: ^4.1.0 + consola: ^2.15.3 + pretty-time: ^1.1.0 + std-env: ^3.0.1 + peerDependencies: + webpack: 3 || 4 || 5 + checksum: 214a734b1d4d391eb8271ed1b11085f0efe6831e93f641229b292abfd6fea871422dce121612511c17ae8047522be6d65c1a2666cabb396c79549816a3612338 + languageName: node + linkType: hard + +"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": + version: 0.7.4 + resolution: "websocket-driver@npm:0.7.4" + dependencies: + http-parser-js: ">=0.5.1" + safe-buffer: ">=5.1.0" + websocket-extensions: ">=0.1.1" + checksum: fffe5a33fe8eceafd21d2a065661d09e38b93877eae1de6ab5d7d2734c6ed243973beae10ae48c6613cfd675f200e5a058d1e3531bc9e6c5d4f1396ff1f0bfb9 + languageName: node + linkType: hard + +"websocket-extensions@npm:>=0.1.1": + version: 0.1.4 + resolution: "websocket-extensions@npm:0.1.4" + checksum: 5976835e68a86afcd64c7a9762ed85f2f27d48c488c707e67ba85e717b90fa066b98ab33c744d64255c9622d349eedecf728e65a5f921da71b58d0e9591b9038 + languageName: node + linkType: hard + "websocket@npm:^1.0.32": version: 1.0.34 resolution: "websocket@npm:1.0.34" @@ -23782,6 +30924,15 @@ __metadata: languageName: node linkType: hard +"widest-line@npm:^3.1.0": + version: 3.1.0 + resolution: "widest-line@npm:3.1.0" + dependencies: + string-width: ^4.0.0 + checksum: 03db6c9d0af9329c37d74378ff1d91972b12553c7d72a6f4e8525fe61563fa7adb0b9d6e8d546b7e059688712ea874edd5ded475999abdeedf708de9849310e0 + languageName: node + linkType: hard + "widest-line@npm:^4.0.1": version: 4.0.1 resolution: "widest-line@npm:4.0.1" @@ -23791,6 +30942,13 @@ __metadata: languageName: node linkType: hard +"wildcard@npm:^2.0.0": + version: 2.0.1 + resolution: "wildcard@npm:2.0.1" + checksum: e0c60a12a219e4b12065d1199802d81c27b841ed6ad6d9d28240980c73ceec6f856771d575af367cbec2982d9ae7838759168b551776577f155044f5a5ba843c + languageName: node + linkType: hard + "word-wrap@npm:^1.0.3, word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" @@ -24116,7 +31274,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.4.6": +"ws@npm:^7.3.1, ws@npm:^7.4.6": version: 7.5.9 resolution: "ws@npm:7.5.9" peerDependencies: @@ -24131,6 +31289,28 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.13.0": + version: 8.15.1 + resolution: "ws@npm:8.15.1" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 8c67365f6e6134278ad635d558bfce466d7ef7543a043baea333aaa430429f0af8a130c0c36e7dd78f918d68167a659ba9b5067330b77c4b279e91533395952b + languageName: node + linkType: hard + +"xdg-basedir@npm:^4.0.0": + version: 4.0.0 + resolution: "xdg-basedir@npm:4.0.0" + checksum: 0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c + languageName: node + linkType: hard + "xhr-request-promise@npm:^0.1.2": version: 0.1.3 resolution: "xhr-request-promise@npm:0.1.3" @@ -24176,6 +31356,17 @@ __metadata: languageName: node linkType: hard +"xml-js@npm:^1.6.11": + version: 1.6.11 + resolution: "xml-js@npm:1.6.11" + dependencies: + sax: ^1.2.4 + bin: + xml-js: ./bin/cli.js + checksum: 24a55479919413687105fc2d8ab05e613ebedb1c1bc12258a108e07cff5ef793779297db854800a4edf0281303ebd1f177bc4a588442f5344e62b3dddda26c2b + languageName: node + linkType: hard + "xml-name-validator@npm:^3.0.0": version: 3.0.0 resolution: "xml-name-validator@npm:3.0.0" @@ -24197,7 +31388,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0": +"xtend@npm:^4.0.0, xtend@npm:^4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a @@ -24239,7 +31430,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^1.10.0, yaml@npm:^1.10.2": +"yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2": version: 1.10.2 resolution: "yaml@npm:1.10.2" checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f @@ -24371,3 +31562,10 @@ __metadata: checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard + +"zwitch@npm:^1.0.0": + version: 1.0.5 + resolution: "zwitch@npm:1.0.5" + checksum: 28a1bebacab3bc60150b6b0a2ba1db2ad033f068e81f05e4892ec0ea13ae63f5d140a1d692062ac0657840c8da076f35b94433b5f1c329d7803b247de80f064a + languageName: node + linkType: hard