diff --git a/package-lock.json b/package-lock.json index 1daf759..81e206e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "eslint": "^10.4.1", "jest": "^30.4.2", "ts-jest": "^29.4.11", - "typescript": "^5.9.3", + "typescript": "^6.0.3", "typescript-eslint": "^8.61.0" } }, @@ -5940,9 +5940,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "peer": true, diff --git a/package.json b/package.json index 3fb2e41..d0eb8e2 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "eslint": "^10.4.1", "jest": "^30.4.2", "ts-jest": "^29.4.11", - "typescript": "^5.9.3", + "typescript": "^6.0.3", "typescript-eslint": "^8.61.0" } } diff --git a/supported-version/dist/index.js b/supported-version/dist/index.js index 479cd70..379a7e7 100644 --- a/supported-version/dist/index.js +++ b/supported-version/dist/index.js @@ -43,7 +43,7 @@ ${r.count} ${r.noun} ${r.is} pending: ${e.format(t)} `.trim())}};wB.exports=bc});var Vn=h((O1,FB)=>{"use strict";var RB=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:kF}=Y(),FF=Xt();kB()===void 0&&bB(new FF);function bB(A){if(!A||typeof A.dispatch!="function")throw new kF("Argument agent must implement Agent");Object.defineProperty(globalThis,RB,{value:A,writable:!0,enumerable:!1,configurable:!1})}function kB(){return globalThis[RB]}FB.exports={setGlobalDispatcher:bB,getGlobalDispatcher:kB}});var Hn=h((P1,NB)=>{"use strict";NB.exports=class{#e;constructor(e){if(typeof e!="object"||e===null)throw new TypeError("handler must be an object");this.#e=e}onConnect(...e){return this.#e.onConnect?.(...e)}onError(...e){return this.#e.onError?.(...e)}onUpgrade(...e){return this.#e.onUpgrade?.(...e)}onResponseStarted(...e){return this.#e.onResponseStarted?.(...e)}onHeaders(...e){return this.#e.onHeaders?.(...e)}onData(...e){return this.#e.onData?.(...e)}onComplete(...e){return this.#e.onComplete?.(...e)}onBodySent(...e){return this.#e.onBodySent?.(...e)}}});var UB=h((j1,SB)=>{"use strict";var NF=mn();SB.exports=A=>{let e=A?.maxRedirections;return t=>function(s,n){let{maxRedirections:i=e,...o}=s;if(!i)return t(s,n);let a=new NF(t,i,s,n);return t(o,a)}}});var LB=h((_1,MB)=>{"use strict";var SF=Un();MB.exports=A=>e=>function(r,s){return e(r,new SF({...r,retryOptions:{...A,...r.retryOptions}},{handler:s,dispatch:e}))}});var xB=h((Z1,TB)=>{"use strict";var UF=x(),{InvalidArgumentError:MF,RequestAbortedError:LF}=Y(),TF=Hn(),kc=class extends TF{#e=1024*1024;#A=null;#t=!1;#n=!1;#s=0;#r=null;#i=null;constructor({maxSize:e},t){if(super(t),e!=null&&(!Number.isFinite(e)||e<1))throw new MF("maxSize must be a number greater than 0");this.#e=e??this.#e,this.#i=t}onConnect(e){this.#A=e,this.#i.onConnect(this.#o.bind(this))}#o(e){this.#n=!0,this.#r=e}onHeaders(e,t,r,s){let i=UF.parseHeaders(t)["content-length"];if(i!=null&&i>this.#e)throw new LF(`Response size (${i}) larger than maxSize (${this.#e})`);return this.#n?!0:this.#i.onHeaders(e,t,r,s)}onError(e){this.#t||(e=this.#r??e,this.#i.onError(e))}onData(e){return this.#s=this.#s+e.length,this.#s>=this.#e&&(this.#t=!0,this.#n?this.#i.onError(this.#r):this.#i.onComplete([])),!0}onComplete(e){if(!this.#t){if(this.#n){this.#i.onError(this.reason);return}this.#i.onComplete(e)}}};function xF({maxSize:A}={maxSize:1024*1024}){return e=>function(r,s){let{dumpMaxSize:n=A}=r,i=new kc({maxSize:n},s);return e(r,i)}}TB.exports=xF});var GB=h((K1,qB)=>{"use strict";var{isIP:vF}=require("node:net"),{lookup:qF}=require("node:dns"),GF=Hn(),{InvalidArgumentError:or,InformationalError:YF}=Y(),vB=Math.pow(2,31)-1,Fc=class{#e=0;#A=0;#t=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(e){this.#e=e.maxTTL,this.#A=e.maxItems,this.dualStack=e.dualStack,this.affinity=e.affinity,this.lookup=e.lookup??this.#n,this.pick=e.pick??this.#s}get full(){return this.#t.size===this.#A}runLookup(e,t,r){let s=this.#t.get(e.hostname);if(s==null&&this.full){r(null,e.origin);return}let n={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#A};if(s==null)this.lookup(e,n,(i,o)=>{if(i||o==null||o.length===0){r(i??new YF("No DNS entries found"));return}this.setRecords(e,o);let a=this.#t.get(e.hostname),c=this.pick(e,a,n.affinity),l;typeof c.port=="number"?l=`:${c.port}`:e.port!==""?l=`:${e.port}`:l="",r(null,`${e.protocol}//${c.family===6?`[${c.address}]`:c.address}${l}`)});else{let i=this.pick(e,s,n.affinity);if(i==null){this.#t.delete(e.hostname),this.runLookup(e,t,r);return}let o;typeof i.port=="number"?o=`:${i.port}`:e.port!==""?o=`:${e.port}`:o="",r(null,`${e.protocol}//${i.family===6?`[${i.address}]`:i.address}${o}`)}}#n(e,t,r){qF(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(s,n)=>{if(s)return r(s);let i=new Map;for(let o of n)i.set(`${o.address}:${o.family}`,o);r(null,i.values())})}#s(e,t,r){let s=null,{records:n,offset:i}=t,o;if(this.dualStack?(r==null&&(i==null||i===vB?(t.offset=0,r=4):(t.offset++,r=(t.offset&1)===1?6:4)),n[r]!=null&&n[r].ips.length>0?o=n[r]:o=n[r===4?6:4]):o=n[r],o==null||o.ips.length===0)return s;o.offset==null||o.offset===vB?o.offset=0:o.offset++;let a=o.offset%o.ips.length;return s=o.ips[a]??null,s==null?s:Date.now()-s.timestamp>s.ttl?(o.ips.splice(a,1),this.pick(e,t,r)):s}setRecords(e,t){let r=Date.now(),s={records:{4:null,6:null}};for(let n of t){n.timestamp=r,typeof n.ttl=="number"?n.ttl=Math.min(n.ttl,this.#e):n.ttl=this.#e;let i=s.records[n.family]??{ips:[]};i.ips.push(n),s.records[n.family]=i}this.#t.set(e.hostname,s)}getHandler(e,t){return new Nc(this,e,t)}},Nc=class extends GF{#e=null;#A=null;#t=null;#n=null;#s=null;constructor(e,{origin:t,handler:r,dispatch:s},n){super(r),this.#s=t,this.#n=r,this.#A={...n},this.#e=e,this.#t=s}onError(e){switch(e.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){this.#e.runLookup(this.#s,this.#A,(t,r)=>{if(t)return this.#n.onError(t);let s={...this.#A,origin:r};this.#t(s,this)});return}this.#n.onError(e);return}case"ENOTFOUND":this.#e.deleteRecord(this.#s);default:this.#n.onError(e);break}}};qB.exports=A=>{if(A?.maxTTL!=null&&(typeof A?.maxTTL!="number"||A?.maxTTL<0))throw new or("Invalid maxTTL. Must be a positive number");if(A?.maxItems!=null&&(typeof A?.maxItems!="number"||A?.maxItems<1))throw new or("Invalid maxItems. Must be a positive number and greater than zero");if(A?.affinity!=null&&A?.affinity!==4&&A?.affinity!==6)throw new or("Invalid affinity. Must be either 4 or 6");if(A?.dualStack!=null&&typeof A?.dualStack!="boolean")throw new or("Invalid dualStack. Must be a boolean");if(A?.lookup!=null&&typeof A?.lookup!="function")throw new or("Invalid lookup. Must be a function");if(A?.pick!=null&&typeof A?.pick!="function")throw new or("Invalid pick. Must be a function");let e=A?.dualStack??!0,t;e?t=A?.affinity??null:t=A?.affinity??4;let r={maxTTL:A?.maxTTL??1e4,lookup:A?.lookup??null,pick:A?.pick??null,dualStack:e,affinity:t,maxItems:A?.maxItems??1/0},s=new Fc(r);return n=>function(o,a){let c=o.origin.constructor===URL?o.origin:new URL(o.origin);return vF(c.hostname)!==0?n(o,a):(s.runLookup(c,o,(l,g)=>{if(l)return a.onError(l);let Q=null;Q={...o,servername:c.hostname,origin:g,headers:{host:c.hostname,...o.headers}},n(Q,s.getHandler({origin:c,dispatch:n,handler:a},o))}),!0)}}});var ut=h((X1,PB)=>{"use strict";var{kConstruct:JF}=K(),{kEnumerableProperty:ar}=x(),{iteratorMixin:VF,isValidHeaderName:ss,isValidHeaderValue:JB}=ke(),{webidl:G}=ce(),Sc=require("node:assert"),On=require("node:util"),ne=Symbol("headers map"),Ue=Symbol("headers map sorted");function YB(A){return A===10||A===13||A===9||A===32}function VB(A){let e=0,t=A.length;for(;t>e&&YB(A.charCodeAt(t-1));)--t;for(;t>e&&YB(A.charCodeAt(e));)++e;return e===0&&t===A.length?A:A.substring(e,t)}function HB(A,e){if(Array.isArray(e))for(let t=0;t>","record"]})}function Uc(A,e,t){if(t=VB(t),ss(e)){if(!JB(t))throw G.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw G.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header name"});if(WB(A)==="immutable")throw new TypeError("immutable");return Mc(A).append(e,t,!1)}function OB(A,e){return A[0]>1),t[c][0]<=l[0]?a=c+1:o=c;if(n!==c){for(i=n;i>a;)t[i]=t[--i];t[a]=l}}if(!r.next().done)throw new TypeError("Unreachable");return t}else{let r=0;for(let{0:s,1:{value:n}}of this[ne])t[r++]=[s,n],Sc(n!==null);return t.sort(OB)}}},ze=class A{#e;#A;constructor(e=void 0){G.util.markAsUncloneable(this),e!==JF&&(this.#A=new Wn,this.#e="none",e!==void 0&&(e=G.converters.HeadersInit(e,"Headers contructor","init"),HB(this,e)))}append(e,t){G.brandCheck(this,A),G.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return e=G.converters.ByteString(e,r,"name"),t=G.converters.ByteString(t,r,"value"),Uc(this,e,t)}delete(e){if(G.brandCheck(this,A),G.argumentLengthCheck(arguments,1,"Headers.delete"),e=G.converters.ByteString(e,"Headers.delete","name"),!ss(e))throw G.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.contains(e,!1)&&this.#A.delete(e,!1)}get(e){G.brandCheck(this,A),G.argumentLengthCheck(arguments,1,"Headers.get");let t="Headers.get";if(e=G.converters.ByteString(e,t,"name"),!ss(e))throw G.errors.invalidArgument({prefix:t,value:e,type:"header name"});return this.#A.get(e,!1)}has(e){G.brandCheck(this,A),G.argumentLengthCheck(arguments,1,"Headers.has");let t="Headers.has";if(e=G.converters.ByteString(e,t,"name"),!ss(e))throw G.errors.invalidArgument({prefix:t,value:e,type:"header name"});return this.#A.contains(e,!1)}set(e,t){G.brandCheck(this,A),G.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(e=G.converters.ByteString(e,r,"name"),t=G.converters.ByteString(t,r,"value"),t=VB(t),ss(e)){if(!JB(t))throw G.errors.invalidArgument({prefix:r,value:t,type:"header value"})}else throw G.errors.invalidArgument({prefix:r,value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.set(e,t,!1)}getSetCookie(){G.brandCheck(this,A);let e=this.#A.cookies;return e?[...e]:[]}get[Ue](){if(this.#A[Ue])return this.#A[Ue];let e=[],t=this.#A.toSortedArray(),r=this.#A.cookies;if(r===null||r.length===1)return this.#A[Ue]=t;for(let s=0;s>"](A,e,t,r.bind(A)):G.converters["record"](A,e,t)}throw G.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};PB.exports={fill:HB,compareHeaderName:OB,Headers:ze,HeadersList:Wn,getHeadersGuard:WB,setHeadersGuard:HF,setHeadersList:OF,getHeadersList:Mc}});var is=h((z1,sI)=>{"use strict";var{Headers:zB,HeadersList:jB,fill:WF,getHeadersGuard:PF,setHeadersGuard:$B,setHeadersList:eI}=ut(),{extractBody:_B,cloneBody:jF,mixinBody:_F,hasFinalizationRegistry:AI,streamRegistry:tI,bodyUnusable:ZF}=Vt(),Lc=x(),ZB=require("node:util"),{kEnumerableProperty:Me}=Lc,{isValidReasonPhrase:KF,isCancelled:XF,isAborted:zF,isBlobLike:$F,serializeJavascriptValueToJSONString:eN,isErrorLike:AN,isomorphicEncode:tN,environmentSettingsObject:rN}=ke(),{redirectStatusSet:sN,nullBodyStatus:nN}=Fr(),{kState:z,kHeaders:bA}=LA(),{webidl:T}=ce(),{FormData:iN}=Tr(),{URLSerializer:KB}=pe(),{kConstruct:jn}=K(),Tc=require("node:assert"),{types:oN}=require("node:util"),aN=new TextEncoder("utf-8"),Bt=class A{static error(){return ns(_n(),"immutable")}static json(e,t={}){T.argumentLengthCheck(arguments,1,"Response.json"),t!==null&&(t=T.converters.ResponseInit(t));let r=aN.encode(eN(e)),s=_B(r),n=ns(cr({}),"response");return XB(n,t,{body:s[0],type:"application/json"}),n}static redirect(e,t=302){T.argumentLengthCheck(arguments,1,"Response.redirect"),e=T.converters.USVString(e),t=T.converters["unsigned short"](t);let r;try{r=new URL(e,rN.settingsObject.baseUrl)}catch(i){throw new TypeError(`Failed to parse URL from ${e}`,{cause:i})}if(!sN.has(t))throw new RangeError(`Invalid status code ${t}`);let s=ns(cr({}),"immutable");s[z].status=t;let n=tN(KB(r));return s[z].headersList.append("location",n,!0),s}constructor(e=null,t={}){if(T.util.markAsUncloneable(this),e===jn)return;e!==null&&(e=T.converters.BodyInit(e)),t=T.converters.ResponseInit(t),this[z]=cr({}),this[bA]=new zB(jn),$B(this[bA],"response"),eI(this[bA],this[z].headersList);let r=null;if(e!=null){let[s,n]=_B(e);r={body:s,type:n}}XB(this,t,r)}get type(){return T.brandCheck(this,A),this[z].type}get url(){T.brandCheck(this,A);let e=this[z].urlList,t=e[e.length-1]??null;return t===null?"":KB(t,!0)}get redirected(){return T.brandCheck(this,A),this[z].urlList.length>1}get status(){return T.brandCheck(this,A),this[z].status}get ok(){return T.brandCheck(this,A),this[z].status>=200&&this[z].status<=299}get statusText(){return T.brandCheck(this,A),this[z].statusText}get headers(){return T.brandCheck(this,A),this[bA]}get body(){return T.brandCheck(this,A),this[z].body?this[z].body.stream:null}get bodyUsed(){return T.brandCheck(this,A),!!this[z].body&&Lc.isDisturbed(this[z].body.stream)}clone(){if(T.brandCheck(this,A),ZF(this))throw T.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let e=xc(this[z]);return AI&&this[z].body?.stream&&tI.register(this,new WeakRef(this[z].body.stream)),ns(e,PF(this[bA]))}[ZB.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${ZB.formatWithOptions(t,r)}`}};_F(Bt);Object.defineProperties(Bt.prototype,{type:Me,url:Me,status:Me,ok:Me,redirected:Me,statusText:Me,headers:Me,clone:Me,body:Me,bodyUsed:Me,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Bt,{json:Me,redirect:Me,error:Me});function xc(A){if(A.internalResponse)return rI(xc(A.internalResponse),A.type);let e=cr({...A,body:null});return A.body!=null&&(e.body=jF(e,A.body)),e}function cr(A){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...A,headersList:A?.headersList?new jB(A?.headersList):new jB,urlList:A?.urlList?[...A.urlList]:[]}}function _n(A){let e=AN(A);return cr({type:"error",status:0,error:e?A:new Error(A&&String(A)),aborted:A&&A.name==="AbortError"})}function cN(A){return A.type==="error"&&A.status===0}function Pn(A,e){return e={internalResponse:A,...e},new Proxy(A,{get(t,r){return r in e?e[r]:t[r]},set(t,r,s){return Tc(!(r in e)),t[r]=s,!0}})}function rI(A,e){if(e==="basic")return Pn(A,{type:"basic",headersList:A.headersList});if(e==="cors")return Pn(A,{type:"cors",headersList:A.headersList});if(e==="opaque")return Pn(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(e==="opaqueredirect")return Pn(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Tc(!1)}function gN(A,e=null){return Tc(XF(A)),zF(A)?_n(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:e})):_n(Object.assign(new DOMException("Request was cancelled."),{cause:e}))}function XB(A,e,t){if(e.status!==null&&(e.status<200||e.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in e&&e.statusText!=null&&!KF(String(e.statusText)))throw new TypeError("Invalid statusText");if("status"in e&&e.status!=null&&(A[z].status=e.status),"statusText"in e&&e.statusText!=null&&(A[z].statusText=e.statusText),"headers"in e&&e.headers!=null&&WF(A[bA],e.headers),t){if(nN.includes(A.status))throw T.errors.exception({header:"Response constructor",message:`Invalid response status code ${A.status}`});A[z].body=t.body,t.type!=null&&!A[z].headersList.contains("content-type",!0)&&A[z].headersList.append("content-type",t.type,!0)}}function ns(A,e){let t=new Bt(jn);return t[z]=A,t[bA]=new zB(jn),eI(t[bA],A.headersList),$B(t[bA],e),AI&&A.body?.stream&&tI.register(t,new WeakRef(A.body.stream)),t}T.converters.ReadableStream=T.interfaceConverter(ReadableStream);T.converters.FormData=T.interfaceConverter(iN);T.converters.URLSearchParams=T.interfaceConverter(URLSearchParams);T.converters.XMLHttpRequestBodyInit=function(A,e,t){return typeof A=="string"?T.converters.USVString(A,e,t):$F(A)?T.converters.Blob(A,e,t,{strict:!1}):ArrayBuffer.isView(A)||oN.isArrayBuffer(A)?T.converters.BufferSource(A,e,t):Lc.isFormDataLike(A)?T.converters.FormData(A,e,t,{strict:!1}):A instanceof URLSearchParams?T.converters.URLSearchParams(A,e,t):T.converters.DOMString(A,e,t)};T.converters.BodyInit=function(A,e,t){return A instanceof ReadableStream?T.converters.ReadableStream(A,e,t):A?.[Symbol.asyncIterator]?A:T.converters.XMLHttpRequestBodyInit(A,e,t)};T.converters.ResponseInit=T.dictionaryConverter([{key:"status",converter:T.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:T.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:T.converters.HeadersInit}]);sI.exports={isNetworkError:cN,makeNetworkError:_n,makeResponse:cr,makeAppropriateNetworkError:gN,filterResponse:rI,Response:Bt,cloneResponse:xc,fromInnerResponse:ns}});var aI=h(($1,oI)=>{"use strict";var{kConnected:nI,kSize:iI}=K(),vc=class{constructor(e){this.value=e}deref(){return this.value[nI]===0&&this.value[iI]===0?void 0:this.value}},qc=class{constructor(e){this.finalizer=e}register(e,t){e.on&&e.on("disconnect",()=>{e[nI]===0&&e[iI]===0&&this.finalizer(t)})}unregister(e){}};oI.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:vc,FinalizationRegistry:qc}):{WeakRef,FinalizationRegistry}}});var gr=h((eq,yI)=>{"use strict";var{extractBody:lN,mixinBody:QN,cloneBody:EN,bodyUnusable:cI}=Vt(),{Headers:CI,fill:hN,HeadersList:zn,setHeadersGuard:Yc,getHeadersGuard:uN,setHeadersList:dI,getHeadersList:gI}=ut(),{FinalizationRegistry:BN}=aI()(),Kn=x(),lI=require("node:util"),{isValidHTTPToken:IN,sameOrigin:QI,environmentSettingsObject:Zn}=ke(),{forbiddenMethodsSet:CN,corsSafeListedMethodsSet:dN,referrerPolicy:fN,requestRedirect:mN,requestMode:pN,requestCredentials:yN,requestCache:wN,requestDuplex:DN}=Fr(),{kEnumerableProperty:ie,normalizedMethodRecordsBase:RN,normalizedMethodRecords:bN}=Kn,{kHeaders:Le,kSignal:Xn,kState:_,kDispatcher:Gc}=LA(),{webidl:N}=ce(),{URLSerializer:kN}=pe(),{kConstruct:$n}=K(),FN=require("node:assert"),{getMaxListeners:EI,setMaxListeners:hI,getEventListeners:NN,defaultMaxListeners:uI}=require("node:events"),SN=Symbol("abortController"),fI=new BN(({signal:A,abort:e})=>{A.removeEventListener("abort",e)}),ei=new WeakMap;function BI(A){return e;function e(){let t=A.deref();if(t!==void 0){fI.unregister(e),this.removeEventListener("abort",e),t.abort(this.reason);let r=ei.get(t.signal);if(r!==void 0){if(r.size!==0){for(let s of r){let n=s.deref();n!==void 0&&n.abort(this.reason)}r.clear()}ei.delete(t.signal)}}}}var II=!1,PA=class A{constructor(e,t={}){if(N.util.markAsUncloneable(this),e===$n)return;let r="Request constructor";N.argumentLengthCheck(arguments,1,r),e=N.converters.RequestInfo(e,r,"input"),t=N.converters.RequestInit(t,r,"init");let s=null,n=null,i=Zn.settingsObject.baseUrl,o=null;if(typeof e=="string"){this[Gc]=t.dispatcher;let u;try{u=new URL(e,i)}catch(f){throw new TypeError("Failed to parse URL from "+e,{cause:f})}if(u.username||u.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e);s=Ai({urlList:[u]}),n="cors"}else this[Gc]=t.dispatcher||e[Gc],FN(e instanceof A),s=e[_],o=e[Xn];let a=Zn.settingsObject.origin,c="client";if(s.window?.constructor?.name==="EnvironmentSettingsObject"&&QI(s.window,a)&&(c=s.window),t.window!=null)throw new TypeError(`'window' option '${c}' must be null`);"window"in t&&(c="no-window"),s=Ai({method:s.method,headersList:s.headersList,unsafeRequest:s.unsafeRequest,client:Zn.settingsObject,window:c,priority:s.priority,origin:s.origin,referrer:s.referrer,referrerPolicy:s.referrerPolicy,mode:s.mode,credentials:s.credentials,cache:s.cache,redirect:s.redirect,integrity:s.integrity,keepalive:s.keepalive,reloadNavigation:s.reloadNavigation,historyNavigation:s.historyNavigation,urlList:[...s.urlList]});let l=Object.keys(t).length!==0;if(l&&(s.mode==="navigate"&&(s.mode="same-origin"),s.reloadNavigation=!1,s.historyNavigation=!1,s.origin="client",s.referrer="client",s.referrerPolicy="",s.url=s.urlList[s.urlList.length-1],s.urlList=[s.url]),t.referrer!==void 0){let u=t.referrer;if(u==="")s.referrer="no-referrer";else{let f;try{f=new URL(u,i)}catch(R){throw new TypeError(`Referrer "${u}" is not a valid URL.`,{cause:R})}f.protocol==="about:"&&f.hostname==="client"||a&&!QI(f,Zn.settingsObject.baseUrl)?s.referrer="client":s.referrer=f}}t.referrerPolicy!==void 0&&(s.referrerPolicy=t.referrerPolicy);let g;if(t.mode!==void 0?g=t.mode:g=n,g==="navigate")throw N.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(g!=null&&(s.mode=g),t.credentials!==void 0&&(s.credentials=t.credentials),t.cache!==void 0&&(s.cache=t.cache),s.cache==="only-if-cached"&&s.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(s.redirect=t.redirect),t.integrity!=null&&(s.integrity=String(t.integrity)),t.keepalive!==void 0&&(s.keepalive=!!t.keepalive),t.method!==void 0){let u=t.method,f=bN[u];if(f!==void 0)s.method=f;else{if(!IN(u))throw new TypeError(`'${u}' is not a valid HTTP method.`);let R=u.toUpperCase();if(CN.has(R))throw new TypeError(`'${u}' HTTP method is unsupported.`);u=RN[R]??u,s.method=u}!II&&s.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),II=!0)}t.signal!==void 0&&(o=t.signal),this[_]=s;let Q=new AbortController;if(this[Xn]=Q.signal,o!=null){if(!o||typeof o.aborted!="boolean"||typeof o.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(o.aborted)Q.abort(o.reason);else{this[SN]=Q;let u=new WeakRef(Q),f=BI(u);try{(typeof EI=="function"&&EI(o)===uI||NN(o,"abort").length>=uI)&&hI(1500,o)}catch{}Kn.addAbortListener(o,f),fI.register(Q,{signal:o,abort:f},f)}}if(this[Le]=new CI($n),dI(this[Le],s.headersList),Yc(this[Le],"request"),g==="no-cors"){if(!dN.has(s.method))throw new TypeError(`'${s.method} is unsupported in no-cors mode.`);Yc(this[Le],"request-no-cors")}if(l){let u=gI(this[Le]),f=t.headers!==void 0?t.headers:new zn(u);if(u.clear(),f instanceof zn){for(let{name:R,value:b}of f.rawValues())u.append(R,b,!1);u.cookies=f.cookies}else hN(this[Le],f)}let E=e instanceof A?e[_].body:null;if((t.body!=null||E!=null)&&(s.method==="GET"||s.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let B=null;if(t.body!=null){let[u,f]=lN(t.body,s.keepalive);B=u,f&&!gI(this[Le]).contains("content-type",!0)&&this[Le].append("content-type",f)}let I=B??E;if(I!=null&&I.source==null){if(B!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(s.mode!=="same-origin"&&s.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');s.useCORSPreflightFlag=!0}let m=I;if(B==null&&E!=null){if(cI(e))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let u=new TransformStream;E.stream.pipeThrough(u),m={source:E.source,length:E.length,stream:u.readable}}this[_].body=m}get method(){return N.brandCheck(this,A),this[_].method}get url(){return N.brandCheck(this,A),kN(this[_].url)}get headers(){return N.brandCheck(this,A),this[Le]}get destination(){return N.brandCheck(this,A),this[_].destination}get referrer(){return N.brandCheck(this,A),this[_].referrer==="no-referrer"?"":this[_].referrer==="client"?"about:client":this[_].referrer.toString()}get referrerPolicy(){return N.brandCheck(this,A),this[_].referrerPolicy}get mode(){return N.brandCheck(this,A),this[_].mode}get credentials(){return this[_].credentials}get cache(){return N.brandCheck(this,A),this[_].cache}get redirect(){return N.brandCheck(this,A),this[_].redirect}get integrity(){return N.brandCheck(this,A),this[_].integrity}get keepalive(){return N.brandCheck(this,A),this[_].keepalive}get isReloadNavigation(){return N.brandCheck(this,A),this[_].reloadNavigation}get isHistoryNavigation(){return N.brandCheck(this,A),this[_].historyNavigation}get signal(){return N.brandCheck(this,A),this[Xn]}get body(){return N.brandCheck(this,A),this[_].body?this[_].body.stream:null}get bodyUsed(){return N.brandCheck(this,A),!!this[_].body&&Kn.isDisturbed(this[_].body.stream)}get duplex(){return N.brandCheck(this,A),"half"}clone(){if(N.brandCheck(this,A),cI(this))throw new TypeError("unusable");let e=mI(this[_]),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let r=ei.get(this.signal);r===void 0&&(r=new Set,ei.set(this.signal,r));let s=new WeakRef(t);r.add(s),Kn.addAbortListener(t.signal,BI(s))}return pI(e,t.signal,uN(this[Le]))}[lI.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${lI.formatWithOptions(t,r)}`}};QN(PA);function Ai(A){return{method:A.method??"GET",localURLsOnly:A.localURLsOnly??!1,unsafeRequest:A.unsafeRequest??!1,body:A.body??null,client:A.client??null,reservedClient:A.reservedClient??null,replacesClientId:A.replacesClientId??"",window:A.window??"client",keepalive:A.keepalive??!1,serviceWorkers:A.serviceWorkers??"all",initiator:A.initiator??"",destination:A.destination??"",priority:A.priority??null,origin:A.origin??"client",policyContainer:A.policyContainer??"client",referrer:A.referrer??"client",referrerPolicy:A.referrerPolicy??"",mode:A.mode??"no-cors",useCORSPreflightFlag:A.useCORSPreflightFlag??!1,credentials:A.credentials??"same-origin",useCredentials:A.useCredentials??!1,cache:A.cache??"default",redirect:A.redirect??"follow",integrity:A.integrity??"",cryptoGraphicsNonceMetadata:A.cryptoGraphicsNonceMetadata??"",parserMetadata:A.parserMetadata??"",reloadNavigation:A.reloadNavigation??!1,historyNavigation:A.historyNavigation??!1,userActivation:A.userActivation??!1,taintedOrigin:A.taintedOrigin??!1,redirectCount:A.redirectCount??0,responseTainting:A.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:A.preventNoCacheCacheControlHeaderModification??!1,done:A.done??!1,timingAllowFailed:A.timingAllowFailed??!1,urlList:A.urlList,url:A.urlList[0],headersList:A.headersList?new zn(A.headersList):new zn}}function mI(A){let e=Ai({...A,body:null});return A.body!=null&&(e.body=EN(e,A.body)),e}function pI(A,e,t){let r=new PA($n);return r[_]=A,r[Xn]=e,r[Le]=new CI($n),dI(r[Le],A.headersList),Yc(r[Le],t),r}Object.defineProperties(PA.prototype,{method:ie,url:ie,headers:ie,redirect:ie,clone:ie,signal:ie,duplex:ie,destination:ie,body:ie,bodyUsed:ie,isHistoryNavigation:ie,isReloadNavigation:ie,keepalive:ie,integrity:ie,cache:ie,credentials:ie,attribute:ie,referrerPolicy:ie,referrer:ie,mode:ie,[Symbol.toStringTag]:{value:"Request",configurable:!0}});N.converters.Request=N.interfaceConverter(PA);N.converters.RequestInfo=function(A,e,t){return typeof A=="string"?N.converters.USVString(A,e,t):A instanceof PA?N.converters.Request(A,e,t):N.converters.USVString(A,e,t)};N.converters.AbortSignal=N.interfaceConverter(AbortSignal);N.converters.RequestInit=N.dictionaryConverter([{key:"method",converter:N.converters.ByteString},{key:"headers",converter:N.converters.HeadersInit},{key:"body",converter:N.nullableConverter(N.converters.BodyInit)},{key:"referrer",converter:N.converters.USVString},{key:"referrerPolicy",converter:N.converters.DOMString,allowedValues:fN},{key:"mode",converter:N.converters.DOMString,allowedValues:pN},{key:"credentials",converter:N.converters.DOMString,allowedValues:yN},{key:"cache",converter:N.converters.DOMString,allowedValues:wN},{key:"redirect",converter:N.converters.DOMString,allowedValues:mN},{key:"integrity",converter:N.converters.DOMString},{key:"keepalive",converter:N.converters.boolean},{key:"signal",converter:N.nullableConverter(A=>N.converters.AbortSignal(A,"RequestInit","signal",{strict:!1}))},{key:"window",converter:N.converters.any},{key:"duplex",converter:N.converters.DOMString,allowedValues:DN},{key:"dispatcher",converter:N.converters.any}]);yI.exports={Request:PA,makeRequest:Ai,fromInnerRequest:pI,cloneRequest:mI}});var as=h((Aq,qI)=>{"use strict";var{makeNetworkError:H,makeAppropriateNetworkError:ti,filterResponse:Jc,makeResponse:ri,fromInnerResponse:UN}=is(),{HeadersList:wI}=ut(),{Request:MN,cloneRequest:LN}=gr(),jA=require("node:zlib"),{bytesMatch:TN,makePolicyContainer:xN,clonePolicyContainer:vN,requestBadPort:qN,TAOCheck:GN,appendRequestOriginHeader:YN,responseLocationURL:JN,requestCurrentURL:QA,setRequestReferrerPolicyOnRedirect:VN,tryUpgradeRequestToAPotentiallyTrustworthyURL:HN,createOpaqueTimingInfo:Pc,appendFetchMetadata:ON,corsCheck:WN,crossOriginResourcePolicyCheck:PN,determineRequestsReferrer:jN,coarsenedSharedCurrentTime:os,createDeferredPromise:_N,isBlobLike:ZN,sameOrigin:Wc,isCancelled:It,isAborted:DI,isErrorLike:KN,fullyReadBody:XN,readableStreamClose:zN,isomorphicEncode:si,urlIsLocal:$N,urlIsHttpHttpsScheme:jc,urlHasHttpsScheme:e2,clampAndCoarsenConnectionTimingInfo:A2,simpleRangeHeaderValue:t2,buildContentRange:r2,createInflate:s2,extractMimeType:n2}=ke(),{kState:FI,kDispatcher:i2}=LA(),Ct=require("node:assert"),{safelyExtractBody:_c,extractBody:RI}=Vt(),{redirectStatusSet:NI,nullBodyStatus:SI,safeMethodsSet:o2,requestBodyHeader:a2,subresourceSet:c2}=Fr(),g2=require("node:events"),{Readable:l2,pipeline:Q2,finished:E2}=require("node:stream"),{addAbortListener:h2,isErrored:u2,isReadable:ni,bufferToLowerCasedHeaderName:bI}=x(),{dataURLProcessor:B2,serializeAMimeType:I2,minimizeSupportedMimeType:C2}=pe(),{getGlobalDispatcher:d2}=Vn(),{webidl:f2}=ce(),{STATUS_CODES:m2}=require("node:http"),p2=["GET","HEAD"],y2=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Vc,ii=class extends g2{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(e){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(e),this.emit("terminated",e))}abort(e){this.state==="ongoing"&&(this.state="aborted",e||(e=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit("terminated",e))}};function w2(A){UI(A,"fetch")}function D2(A,e=void 0){f2.argumentLengthCheck(arguments,1,"globalThis.fetch");let t=_N(),r;try{r=new MN(A,e)}catch(l){return t.reject(l),t.promise}let s=r[FI];if(r.signal.aborted)return Hc(t,s,null,r.signal.reason),t.promise;s.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(s.serviceWorkers="none");let i=null,o=!1,a=null;return h2(r.signal,()=>{o=!0,Ct(a!=null),a.abort(r.signal.reason);let l=i?.deref();Hc(t,s,l,r.signal.reason)}),a=LI({request:s,processResponseEndOfBody:w2,processResponse:l=>{if(!o){if(l.aborted){Hc(t,s,i,a.serializedAbortReason);return}if(l.type==="error"){t.reject(new TypeError("fetch failed",{cause:l.error}));return}i=new WeakRef(UN(l,"immutable")),t.resolve(i.deref()),t=null}},dispatcher:r[i2]}),t.promise}function UI(A,e="other"){if(A.type==="error"&&A.aborted||!A.urlList?.length)return;let t=A.urlList[0],r=A.timingInfo,s=A.cacheState;jc(t)&&r!==null&&(A.timingAllowPassed||(r=Pc({startTime:r.startTime}),s=""),r.endTime=os(),A.timingInfo=r,MI(r,t.href,e,globalThis,s))}var MI=performance.markResourceTiming;function Hc(A,e,t,r){if(A&&A.reject(r),e.body!=null&&ni(e.body?.stream)&&e.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n}),t==null)return;let s=t[FI];s.body!=null&&ni(s.body?.stream)&&s.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n})}function LI({request:A,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:s,processResponseConsumeBody:n,useParallelQueue:i=!1,dispatcher:o=d2()}){Ct(o);let a=null,c=!1;A.client!=null&&(a=A.client.globalObject,c=A.client.crossOriginIsolatedCapability);let l=os(c),g=Pc({startTime:l}),Q={controller:new ii(o),request:A,timingInfo:g,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:n,processResponseEndOfBody:s,taskDestination:a,crossOriginIsolatedCapability:c};return Ct(!A.body||A.body.stream),A.window==="client"&&(A.window=A.client?.globalObject?.constructor?.name==="Window"?A.client:"no-window"),A.origin==="client"&&(A.origin=A.client.origin),A.policyContainer==="client"&&(A.client!=null?A.policyContainer=vN(A.client.policyContainer):A.policyContainer=xN()),A.headersList.contains("accept",!0)||A.headersList.append("accept","*/*",!0),A.headersList.contains("accept-language",!0)||A.headersList.append("accept-language","*",!0),A.priority,c2.has(A.destination),TI(Q).catch(E=>{Q.controller.terminate(E)}),Q.controller}async function TI(A,e=!1){let t=A.request,r=null;if(t.localURLsOnly&&!$N(QA(t))&&(r=H("local URLs only")),HN(t),qN(t)==="blocked"&&(r=H("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=jN(t)),r===null&&(r=await(async()=>{let n=QA(t);return Wc(n,t.url)&&t.responseTainting==="basic"||n.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await kI(A)):t.mode==="same-origin"?H('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?H('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await kI(A)):jc(QA(t))?(t.responseTainting="cors",await xI(A)):H("URL scheme must be a HTTP(S) scheme")})()),e)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=Jc(r,"basic"):t.responseTainting==="cors"?r=Jc(r,"cors"):t.responseTainting==="opaque"?r=Jc(r,"opaque"):Ct(!1));let s=r.status===0?r:r.internalResponse;if(s.urlList.length===0&&s.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&s.status===206&&s.rangeRequested&&!t.headers.contains("range",!0)&&(r=s=H()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||SI.includes(s.status))&&(s.body=null,A.controller.dump=!0),t.integrity){let n=o=>Oc(A,H(o));if(t.responseTainting==="opaque"||r.body==null){n(r.error);return}let i=o=>{if(!TN(o,t.integrity)){n("integrity mismatch");return}r.body=_c(o)[0],Oc(A,r)};await XN(r.body,i,n)}else Oc(A,r)}function kI(A){if(It(A)&&A.request.redirectCount===0)return Promise.resolve(ti(A));let{request:e}=A,{protocol:t}=QA(e);switch(t){case"about:":return Promise.resolve(H("about scheme is not supported"));case"blob:":{Vc||(Vc=require("node:buffer").resolveObjectURL);let r=QA(e);if(r.search.length!==0)return Promise.resolve(H("NetworkError when attempting to fetch resource."));let s=Vc(r.toString());if(e.method!=="GET"||!ZN(s))return Promise.resolve(H("invalid method"));let n=ri(),i=s.size,o=si(`${i}`),a=s.type;if(e.headersList.contains("range",!0)){n.rangeRequested=!0;let c=e.headersList.get("range",!0),l=t2(c,!0);if(l==="failure")return Promise.resolve(H("failed to fetch the data URL"));let{rangeStartValue:g,rangeEndValue:Q}=l;if(g===null)g=i-Q,Q=g+Q-1;else{if(g>=i)return Promise.resolve(H("Range start is greater than the blob's size."));(Q===null||Q>=i)&&(Q=i-1)}let E=s.slice(g,Q,a),B=RI(E);n.body=B[0];let I=si(`${E.size}`),m=r2(g,Q,i);n.status=206,n.statusText="Partial Content",n.headersList.set("content-length",I,!0),n.headersList.set("content-type",a,!0),n.headersList.set("content-range",m,!0)}else{let c=RI(s);n.statusText="OK",n.body=c[0],n.headersList.set("content-length",o,!0),n.headersList.set("content-type",a,!0)}return Promise.resolve(n)}case"data:":{let r=QA(e),s=B2(r);if(s==="failure")return Promise.resolve(H("failed to fetch the data URL"));let n=I2(s.mimeType);return Promise.resolve(ri({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:n}]],body:_c(s.body)[0]}))}case"file:":return Promise.resolve(H("not implemented... yet..."));case"http:":case"https:":return xI(A).catch(r=>H(r));default:return Promise.resolve(H("unknown scheme"))}}function R2(A,e){A.request.done=!0,A.processResponseDone!=null&&queueMicrotask(()=>A.processResponseDone(e))}function Oc(A,e){let t=A.timingInfo,r=()=>{let n=Date.now();A.request.destination==="document"&&(A.controller.fullTimingInfo=t),A.controller.reportTimingSteps=()=>{if(A.request.url.protocol!=="https:")return;t.endTime=n;let o=e.cacheState,a=e.bodyInfo;e.timingAllowPassed||(t=Pc(t),o="");let c=0;if(A.request.mode!=="navigator"||!e.hasCrossOriginRedirects){c=e.status;let l=n2(e.headersList);l!=="failure"&&(a.contentType=C2(l))}A.request.initiatorType!=null&&MI(t,A.request.url.href,A.request.initiatorType,globalThis,o,a,c)};let i=()=>{A.request.done=!0,A.processResponseEndOfBody!=null&&queueMicrotask(()=>A.processResponseEndOfBody(e)),A.request.initiatorType!=null&&A.controller.reportTimingSteps()};queueMicrotask(()=>i())};A.processResponse!=null&&queueMicrotask(()=>{A.processResponse(e),A.processResponse=null});let s=e.type==="error"?e:e.internalResponse??e;s.body==null?r():E2(s.body.stream,()=>{r()})}async function xI(A){let e=A.request,t=null,r=null,s=A.timingInfo;if(e.serviceWorkers,t===null){if(e.redirect==="follow"&&(e.serviceWorkers="none"),r=t=await vI(A),e.responseTainting==="cors"&&WN(e,t)==="failure")return H("cors failure");GN(e,t)==="failure"&&(e.timingAllowFailed=!0)}return(e.responseTainting==="opaque"||t.type==="opaque")&&PN(e.origin,e.client,e.destination,r)==="blocked"?H("blocked"):(NI.has(r.status)&&(e.redirect!=="manual"&&A.controller.connection.destroy(void 0,!1),e.redirect==="error"?t=H("unexpected redirect"):e.redirect==="manual"?t=r:e.redirect==="follow"?t=await b2(A,t):Ct(!1)),t.timingInfo=s,t)}function b2(A,e){let t=A.request,r=e.internalResponse?e.internalResponse:e,s;try{if(s=JN(r,QA(t).hash),s==null)return e}catch(i){return Promise.resolve(H(i))}if(!jc(s))return Promise.resolve(H("URL scheme must be a HTTP(S) scheme"));if(t.redirectCount===20)return Promise.resolve(H("redirect count exceeded"));if(t.redirectCount+=1,t.mode==="cors"&&(s.username||s.password)&&!Wc(t,s))return Promise.resolve(H('cross origin not allowed for request mode "cors"'));if(t.responseTainting==="cors"&&(s.username||s.password))return Promise.resolve(H('URL cannot contain credentials for request mode "cors"'));if(r.status!==303&&t.body!=null&&t.body.source==null)return Promise.resolve(H());if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!p2.includes(t.method)){t.method="GET",t.body=null;for(let i of a2)t.headersList.delete(i)}Wc(QA(t),s)||(t.headersList.delete("authorization",!0),t.headersList.delete("proxy-authorization",!0),t.headersList.delete("cookie",!0),t.headersList.delete("host",!0)),t.body!=null&&(Ct(t.body.source!=null),t.body=_c(t.body.source)[0]);let n=A.timingInfo;return n.redirectEndTime=n.postRedirectStartTime=os(A.crossOriginIsolatedCapability),n.redirectStartTime===0&&(n.redirectStartTime=n.startTime),t.urlList.push(s),VN(t,r),TI(A,!0)}async function vI(A,e=!1,t=!1){let r=A.request,s=null,n=null,i=null,o=null,a=!1;r.window==="no-window"&&r.redirect==="error"?(s=A,n=r):(n=LN(r),s={...A},s.request=n);let c=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",l=n.body?n.body.length:null,g=null;if(n.body==null&&["POST","PUT"].includes(n.method)&&(g="0"),l!=null&&(g=si(`${l}`)),g!=null&&n.headersList.append("content-length",g,!0),l!=null&&n.keepalive,n.referrer instanceof URL&&n.headersList.append("referer",si(n.referrer.href),!0),YN(n),ON(n),n.headersList.contains("user-agent",!0)||n.headersList.append("user-agent",y2),n.cache==="default"&&(n.headersList.contains("if-modified-since",!0)||n.headersList.contains("if-none-match",!0)||n.headersList.contains("if-unmodified-since",!0)||n.headersList.contains("if-match",!0)||n.headersList.contains("if-range",!0))&&(n.cache="no-store"),n.cache==="no-cache"&&!n.preventNoCacheCacheControlHeaderModification&&!n.headersList.contains("cache-control",!0)&&n.headersList.append("cache-control","max-age=0",!0),(n.cache==="no-store"||n.cache==="reload")&&(n.headersList.contains("pragma",!0)||n.headersList.append("pragma","no-cache",!0),n.headersList.contains("cache-control",!0)||n.headersList.append("cache-control","no-cache",!0)),n.headersList.contains("range",!0)&&n.headersList.append("accept-encoding","identity",!0),n.headersList.contains("accept-encoding",!0)||(e2(QA(n))?n.headersList.append("accept-encoding","br, gzip, deflate",!0):n.headersList.append("accept-encoding","gzip, deflate",!0)),n.headersList.delete("host",!0),o==null&&(n.cache="no-store"),n.cache!=="no-store"&&n.cache,i==null){if(n.cache==="only-if-cached")return H("only if cached");let Q=await k2(s,c,t);!o2.has(n.method)&&Q.status>=200&&Q.status<=399,a&&Q.status,i==null&&(i=Q)}if(i.urlList=[...n.urlList],n.headersList.contains("range",!0)&&(i.rangeRequested=!0),i.requestIncludesCredentials=c,i.status===407)return r.window==="no-window"?H():It(A)?ti(A):H("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if(It(A))return ti(A);A.controller.connection.destroy(),i=await vI(A,e,!0)}return i}async function k2(A,e=!1,t=!1){Ct(!A.controller.connection||A.controller.connection.destroyed),A.controller.connection={abort:null,destroyed:!1,destroy(B,I=!0){this.destroyed||(this.destroyed=!0,I&&this.abort?.(B??new DOMException("The operation was aborted.","AbortError")))}};let r=A.request,s=null,n=A.timingInfo;null==null&&(r.cache="no-store");let o=t?"yes":"no";r.mode;let a=null;if(r.body==null&&A.processRequestEndOfBody)queueMicrotask(()=>A.processRequestEndOfBody());else if(r.body!=null){let B=async function*(u){It(A)||(yield u,A.processRequestBodyChunkLength?.(u.byteLength))},I=()=>{It(A)||A.processRequestEndOfBody&&A.processRequestEndOfBody()},m=u=>{It(A)||(u.name==="AbortError"?A.controller.abort():A.controller.terminate(u))};a=(async function*(){try{for await(let u of r.body.stream)yield*B(u);I()}catch(u){m(u)}})()}try{let{body:B,status:I,statusText:m,headersList:u,socket:f}=await E({body:a});if(f)s=ri({status:I,statusText:m,headersList:u,socket:f});else{let R=B[Symbol.asyncIterator]();A.controller.next=()=>R.next(),s=ri({status:I,statusText:m,headersList:u})}}catch(B){return B.name==="AbortError"?(A.controller.connection.destroy(),ti(A,B)):H(B)}let c=async()=>{await A.controller.resume()},l=B=>{It(A)||A.controller.abort(B)},g=new ReadableStream({async start(B){A.controller.controller=B},async pull(B){await c(B)},async cancel(B){await l(B)},type:"bytes"});s.body={stream:g,source:null,length:null},A.controller.onAborted=Q,A.controller.on("terminated",Q),A.controller.resume=async()=>{for(;;){let B,I;try{let{done:u,value:f}=await A.controller.next();if(DI(A))break;B=u?void 0:f}catch(u){A.controller.ended&&!n.encodedBodySize?B=void 0:(B=u,I=!0)}if(B===void 0){zN(A.controller.controller),R2(A,s);return}if(n.decodedBodySize+=B?.byteLength??0,I){A.controller.terminate(B);return}let m=new Uint8Array(B);if(m.byteLength&&A.controller.controller.enqueue(m),u2(g)){A.controller.terminate();return}if(A.controller.controller.desiredSize<=0)return}};function Q(B){DI(A)?(s.aborted=!0,ni(g)&&A.controller.controller.error(A.controller.serializedAbortReason)):ni(g)&&A.controller.controller.error(new TypeError("terminated",{cause:KN(B)?B:void 0})),A.controller.connection.destroy()}return s;function E({body:B}){let I=QA(r),m=A.controller.dispatcher;return new Promise((u,f)=>m.dispatch({path:I.pathname+I.search,origin:I.origin,method:r.method,body:m.isMockActive?r.body&&(r.body.source||r.body.stream):B,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(R){let{connection:b}=A.controller;n.finalConnectionTimingInfo=A2(void 0,n.postRedirectStartTime,A.crossOriginIsolatedCapability),b.destroyed?R(new DOMException("The operation was aborted.","AbortError")):(A.controller.on("terminated",R),this.abort=b.abort=R),n.finalNetworkRequestStartTime=os(A.crossOriginIsolatedCapability)},onResponseStarted(){n.finalNetworkResponseStartTime=os(A.crossOriginIsolatedCapability)},onHeaders(R,b,W,te){if(R<200)return;let $="",AA=new wI;for(let me=0;meRt)return f(new Error(`too many content-encodings in response: ${Dt.length}, maximum allowed is ${Rt}`)),!0;for(let Wi=Dt.length-1;Wi>=0;--Wi){let Ss=Dt[Wi].trim();if(Ss==="x-gzip"||Ss==="gzip")BA.push(jA.createGunzip({flush:jA.constants.Z_SYNC_FLUSH,finishFlush:jA.constants.Z_SYNC_FLUSH}));else if(Ss==="deflate")BA.push(s2({flush:jA.constants.Z_SYNC_FLUSH,finishFlush:jA.constants.Z_SYNC_FLUSH}));else if(Ss==="br")BA.push(jA.createBrotliDecompress({flush:jA.constants.BROTLI_OPERATION_FLUSH,finishFlush:jA.constants.BROTLI_OPERATION_FLUSH}));else{BA.length=0;break}}}let SA=this.onError.bind(this);return u({status:R,statusText:te,headersList:AA,body:BA.length?Q2(this.body,...BA,me=>{me&&this.onError(me)}).on("error",SA):this.body.on("error",SA)}),!0},onData(R){if(A.controller.dump)return;let b=R;return n.encodedBodySize+=b.byteLength,this.body.push(b)},onComplete(){this.abort&&A.controller.off("terminated",this.abort),A.controller.onAborted&&A.controller.off("terminated",A.controller.onAborted),A.controller.ended=!0,this.body.push(null)},onError(R){this.abort&&A.controller.off("terminated",this.abort),this.body?.destroy(R),A.controller.terminate(R),f(R)},onUpgrade(R,b,W){if(R!==101)return;let te=new wI;for(let $=0;${"use strict";GI.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var JI=h((rq,YI)=>{"use strict";var{webidl:Te}=ce(),oi=Symbol("ProgressEvent state"),Kc=class A extends Event{constructor(e,t={}){e=Te.converters.DOMString(e,"ProgressEvent constructor","type"),t=Te.converters.ProgressEventInit(t??{}),super(e,t),this[oi]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return Te.brandCheck(this,A),this[oi].lengthComputable}get loaded(){return Te.brandCheck(this,A),this[oi].loaded}get total(){return Te.brandCheck(this,A),this[oi].total}};Te.converters.ProgressEventInit=Te.dictionaryConverter([{key:"lengthComputable",converter:Te.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:Te.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:Te.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:Te.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Te.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Te.converters.boolean,defaultValue:()=>!1}]);YI.exports={ProgressEvent:Kc}});var HI=h((sq,VI)=>{"use strict";function F2(A){if(!A)return"failure";switch(A.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}VI.exports={getEncoding:F2}});var XI=h((nq,KI)=>{"use strict";var{kState:lr,kError:Xc,kResult:OI,kAborted:cs,kLastProgressEventFired:zc}=Zc(),{ProgressEvent:N2}=JI(),{getEncoding:WI}=HI(),{serializeAMimeType:S2,parseMIMEType:PI}=pe(),{types:U2}=require("node:util"),{StringDecoder:jI}=require("string_decoder"),{btoa:_I}=require("node:buffer"),M2={enumerable:!0,writable:!1,configurable:!1};function L2(A,e,t,r){if(A[lr]==="loading")throw new DOMException("Invalid state","InvalidStateError");A[lr]="loading",A[OI]=null,A[Xc]=null;let n=e.stream().getReader(),i=[],o=n.read(),a=!0;(async()=>{for(;!A[cs];)try{let{done:c,value:l}=await o;if(a&&!A[cs]&&queueMicrotask(()=>{_A("loadstart",A)}),a=!1,!c&&U2.isUint8Array(l))i.push(l),(A[zc]===void 0||Date.now()-A[zc]>=50)&&!A[cs]&&(A[zc]=Date.now(),queueMicrotask(()=>{_A("progress",A)})),o=n.read();else if(c){queueMicrotask(()=>{A[lr]="done";try{let g=T2(i,t,e.type,r);if(A[cs])return;A[OI]=g,_A("load",A)}catch(g){A[Xc]=g,_A("error",A)}A[lr]!=="loading"&&_A("loadend",A)});break}}catch(c){if(A[cs])return;queueMicrotask(()=>{A[lr]="done",A[Xc]=c,_A("error",A),A[lr]!=="loading"&&_A("loadend",A)});break}})()}function _A(A,e){let t=new N2(A,{bubbles:!1,cancelable:!1});e.dispatchEvent(t)}function T2(A,e,t,r){switch(e){case"DataURL":{let s="data:",n=PI(t||"application/octet-stream");n!=="failure"&&(s+=S2(n)),s+=";base64,";let i=new jI("latin1");for(let o of A)s+=_I(i.write(o));return s+=_I(i.end()),s}case"Text":{let s="failure";if(r&&(s=WI(r)),s==="failure"&&t){let n=PI(t);n!=="failure"&&(s=WI(n.parameters.get("charset")))}return s==="failure"&&(s="UTF-8"),x2(A,s)}case"ArrayBuffer":return ZI(A).buffer;case"BinaryString":{let s="",n=new jI("latin1");for(let i of A)s+=n.write(i);return s+=n.end(),s}}}function x2(A,e){let t=ZI(A),r=v2(t),s=0;r!==null&&(e=r,s=r==="UTF-8"?3:2);let n=t.slice(s);return new TextDecoder(e).decode(n)}function v2(A){let[e,t,r]=A;return e===239&&t===187&&r===191?"UTF-8":e===254&&t===255?"UTF-16BE":e===255&&t===254?"UTF-16LE":null}function ZI(A){let e=A.reduce((r,s)=>r+s.byteLength,0),t=0;return A.reduce((r,s)=>(r.set(s,t),t+=s.byteLength,r),new Uint8Array(e))}KI.exports={staticPropertyDescriptors:M2,readOperation:L2,fireAProgressEvent:_A}});var AC=h((iq,eC)=>{"use strict";var{staticPropertyDescriptors:Qr,readOperation:ai,fireAProgressEvent:zI}=XI(),{kState:dt,kError:$I,kResult:ci,kEvents:J,kAborted:q2}=Zc(),{webidl:O}=ce(),{kEnumerableProperty:De}=x(),$e=class A extends EventTarget{constructor(){super(),this[dt]="empty",this[ci]=null,this[$I]=null,this[J]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){O.brandCheck(this,A),O.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),e=O.converters.Blob(e,{strict:!1}),ai(this,e,"ArrayBuffer")}readAsBinaryString(e){O.brandCheck(this,A),O.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),e=O.converters.Blob(e,{strict:!1}),ai(this,e,"BinaryString")}readAsText(e,t=void 0){O.brandCheck(this,A),O.argumentLengthCheck(arguments,1,"FileReader.readAsText"),e=O.converters.Blob(e,{strict:!1}),t!==void 0&&(t=O.converters.DOMString(t,"FileReader.readAsText","encoding")),ai(this,e,"Text",t)}readAsDataURL(e){O.brandCheck(this,A),O.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),e=O.converters.Blob(e,{strict:!1}),ai(this,e,"DataURL")}abort(){if(this[dt]==="empty"||this[dt]==="done"){this[ci]=null;return}this[dt]==="loading"&&(this[dt]="done",this[ci]=null),this[q2]=!0,zI("abort",this),this[dt]!=="loading"&&zI("loadend",this)}get readyState(){switch(O.brandCheck(this,A),this[dt]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return O.brandCheck(this,A),this[ci]}get error(){return O.brandCheck(this,A),this[$I]}get onloadend(){return O.brandCheck(this,A),this[J].loadend}set onloadend(e){O.brandCheck(this,A),this[J].loadend&&this.removeEventListener("loadend",this[J].loadend),typeof e=="function"?(this[J].loadend=e,this.addEventListener("loadend",e)):this[J].loadend=null}get onerror(){return O.brandCheck(this,A),this[J].error}set onerror(e){O.brandCheck(this,A),this[J].error&&this.removeEventListener("error",this[J].error),typeof e=="function"?(this[J].error=e,this.addEventListener("error",e)):this[J].error=null}get onloadstart(){return O.brandCheck(this,A),this[J].loadstart}set onloadstart(e){O.brandCheck(this,A),this[J].loadstart&&this.removeEventListener("loadstart",this[J].loadstart),typeof e=="function"?(this[J].loadstart=e,this.addEventListener("loadstart",e)):this[J].loadstart=null}get onprogress(){return O.brandCheck(this,A),this[J].progress}set onprogress(e){O.brandCheck(this,A),this[J].progress&&this.removeEventListener("progress",this[J].progress),typeof e=="function"?(this[J].progress=e,this.addEventListener("progress",e)):this[J].progress=null}get onload(){return O.brandCheck(this,A),this[J].load}set onload(e){O.brandCheck(this,A),this[J].load&&this.removeEventListener("load",this[J].load),typeof e=="function"?(this[J].load=e,this.addEventListener("load",e)):this[J].load=null}get onabort(){return O.brandCheck(this,A),this[J].abort}set onabort(e){O.brandCheck(this,A),this[J].abort&&this.removeEventListener("abort",this[J].abort),typeof e=="function"?(this[J].abort=e,this.addEventListener("abort",e)):this[J].abort=null}};$e.EMPTY=$e.prototype.EMPTY=0;$e.LOADING=$e.prototype.LOADING=1;$e.DONE=$e.prototype.DONE=2;Object.defineProperties($e.prototype,{EMPTY:Qr,LOADING:Qr,DONE:Qr,readAsArrayBuffer:De,readAsBinaryString:De,readAsText:De,readAsDataURL:De,abort:De,readyState:De,result:De,error:De,onloadstart:De,onprogress:De,onload:De,onabort:De,onerror:De,onloadend:De,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties($e,{EMPTY:Qr,LOADING:Qr,DONE:Qr});eC.exports={FileReader:$e}});var gi=h((oq,tC)=>{"use strict";tC.exports={kConstruct:K().kConstruct}});var nC=h((aq,sC)=>{"use strict";var G2=require("node:assert"),{URLSerializer:rC}=pe(),{isValidHeaderName:Y2}=ke();function J2(A,e,t=!1){let r=rC(A,t),s=rC(e,t);return r===s}function V2(A){G2(A!==null);let e=[];for(let t of A.split(","))t=t.trim(),Y2(t)&&e.push(t);return e}sC.exports={urlEquals:J2,getFieldValues:V2}});var aC=h((cq,oC)=>{"use strict";var{kConstruct:H2}=gi(),{urlEquals:O2,getFieldValues:$c}=nC(),{kEnumerableProperty:ft,isDisturbed:W2}=x(),{webidl:D}=ce(),{Response:P2,cloneResponse:j2,fromInnerResponse:_2}=is(),{Request:kA,fromInnerRequest:Z2}=gr(),{kState:eA}=LA(),{fetching:K2}=as(),{urlIsHttpHttpsScheme:li,createDeferredPromise:Er,readAllBytes:X2}=ke(),eg=require("node:assert"),Qi=class A{#e;constructor(){arguments[0]!==H2&&D.illegalConstructor(),D.util.markAsUncloneable(this),this.#e=arguments[1]}async match(e,t={}){D.brandCheck(this,A);let r="Cache.match";D.argumentLengthCheck(arguments,1,r),e=D.converters.RequestInfo(e,r,"request"),t=D.converters.CacheQueryOptions(t,r,"options");let s=this.#s(e,t,1);if(s.length!==0)return s[0]}async matchAll(e=void 0,t={}){D.brandCheck(this,A);let r="Cache.matchAll";return e!==void 0&&(e=D.converters.RequestInfo(e,r,"request")),t=D.converters.CacheQueryOptions(t,r,"options"),this.#s(e,t)}async add(e){D.brandCheck(this,A);let t="Cache.add";D.argumentLengthCheck(arguments,1,t),e=D.converters.RequestInfo(e,t,"request");let r=[e];return await this.addAll(r)}async addAll(e){D.brandCheck(this,A);let t="Cache.addAll";D.argumentLengthCheck(arguments,1,t);let r=[],s=[];for(let Q of e){if(Q===void 0)throw D.errors.conversionFailed({prefix:t,argument:"Argument 1",types:["undefined is not allowed"]});if(Q=D.converters.RequestInfo(Q),typeof Q=="string")continue;let E=Q[eA];if(!li(E.url)||E.method!=="GET")throw D.errors.exception({header:t,message:"Expected http/s scheme when method is not GET."})}let n=[];for(let Q of e){let E=new kA(Q)[eA];if(!li(E.url))throw D.errors.exception({header:t,message:"Expected http/s scheme."});E.initiator="fetch",E.destination="subresource",s.push(E);let B=Er();n.push(K2({request:E,processResponse(I){if(I.type==="error"||I.status===206||I.status<200||I.status>299)B.reject(D.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(I.headersList.contains("vary")){let m=$c(I.headersList.get("vary"));for(let u of m)if(u==="*"){B.reject(D.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let f of n)f.abort();return}}},processResponseEndOfBody(I){if(I.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(I)}})),r.push(B.promise)}let o=await Promise.all(r),a=[],c=0;for(let Q of o){let E={type:"put",request:s[c],response:Q};a.push(E),c++}let l=Er(),g=null;try{this.#A(a)}catch(Q){g=Q}return queueMicrotask(()=>{g===null?l.resolve(void 0):l.reject(g)}),l.promise}async put(e,t){D.brandCheck(this,A);let r="Cache.put";D.argumentLengthCheck(arguments,2,r),e=D.converters.RequestInfo(e,r,"request"),t=D.converters.Response(t,r,"response");let s=null;if(e instanceof kA?s=e[eA]:s=new kA(e)[eA],!li(s.url)||s.method!=="GET")throw D.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let n=t[eA];if(n.status===206)throw D.errors.exception({header:r,message:"Got 206 status"});if(n.headersList.contains("vary")){let E=$c(n.headersList.get("vary"));for(let B of E)if(B==="*")throw D.errors.exception({header:r,message:"Got * vary field value"})}if(n.body&&(W2(n.body.stream)||n.body.stream.locked))throw D.errors.exception({header:r,message:"Response body is locked or disturbed"});let i=j2(n),o=Er();if(n.body!=null){let B=n.body.stream.getReader();X2(B).then(o.resolve,o.reject)}else o.resolve(void 0);let a=[],c={type:"put",request:s,response:i};a.push(c);let l=await o.promise;i.body!=null&&(i.body.source=l);let g=Er(),Q=null;try{this.#A(a)}catch(E){Q=E}return queueMicrotask(()=>{Q===null?g.resolve():g.reject(Q)}),g.promise}async delete(e,t={}){D.brandCheck(this,A);let r="Cache.delete";D.argumentLengthCheck(arguments,1,r),e=D.converters.RequestInfo(e,r,"request"),t=D.converters.CacheQueryOptions(t,r,"options");let s=null;if(e instanceof kA){if(s=e[eA],s.method!=="GET"&&!t.ignoreMethod)return!1}else eg(typeof e=="string"),s=new kA(e)[eA];let n=[],i={type:"delete",request:s,options:t};n.push(i);let o=Er(),a=null,c;try{c=this.#A(n)}catch(l){a=l}return queueMicrotask(()=>{a===null?o.resolve(!!c?.length):o.reject(a)}),o.promise}async keys(e=void 0,t={}){D.brandCheck(this,A);let r="Cache.keys";e!==void 0&&(e=D.converters.RequestInfo(e,r,"request")),t=D.converters.CacheQueryOptions(t,r,"options");let s=null;if(e!==void 0)if(e instanceof kA){if(s=e[eA],s.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(s=new kA(e)[eA]);let n=Er(),i=[];if(e===void 0)for(let o of this.#e)i.push(o[0]);else{let o=this.#t(s,t);for(let a of o)i.push(a[0])}return queueMicrotask(()=>{let o=[];for(let a of i){let c=Z2(a,new AbortController().signal,"immutable");o.push(c)}n.resolve(Object.freeze(o))}),n.promise}#A(e){let t=this.#e,r=[...t],s=[],n=[];try{for(let i of e){if(i.type!=="delete"&&i.type!=="put")throw D.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw D.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#t(i.request,i.options,s).length)throw new DOMException("???","InvalidStateError");let o;if(i.type==="delete"){if(o=this.#t(i.request,i.options),o.length===0)return[];for(let a of o){let c=t.indexOf(a);eg(c!==-1),t.splice(c,1)}}else if(i.type==="put"){if(i.response==null)throw D.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=i.request;if(!li(a.url))throw D.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw D.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw D.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});o=this.#t(i.request);for(let c of o){let l=t.indexOf(c);eg(l!==-1),t.splice(l,1)}t.push([i.request,i.response]),s.push([i.request,i.response])}n.push([i.request,i.response])}return n}catch(i){throw this.#e.length=0,this.#e=r,i}}#t(e,t,r){let s=[],n=r??this.#e;for(let i of n){let[o,a]=i;this.#n(e,o,a,t)&&s.push(i)}return s}#n(e,t,r=null,s){let n=new URL(e.url),i=new URL(t.url);if(s?.ignoreSearch&&(i.search="",n.search=""),!O2(n,i,!0))return!1;if(r==null||s?.ignoreVary||!r.headersList.contains("vary"))return!0;let o=$c(r.headersList.get("vary"));for(let a of o){if(a==="*")return!1;let c=t.headersList.get(a),l=e.headersList.get(a);if(c!==l)return!1}return!0}#s(e,t,r=1/0){let s=null;if(e!==void 0)if(e instanceof kA){if(s=e[eA],s.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(s=new kA(e)[eA]);let n=[];if(e===void 0)for(let o of this.#e)n.push(o[1]);else{let o=this.#t(s,t);for(let a of o)n.push(a[1])}let i=[];for(let o of n){let a=_2(o,"immutable");if(i.push(a.clone()),i.length>=r)break}return Object.freeze(i)}};Object.defineProperties(Qi.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:ft,matchAll:ft,add:ft,addAll:ft,put:ft,delete:ft,keys:ft});var iC=[{key:"ignoreSearch",converter:D.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:D.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:D.converters.boolean,defaultValue:()=>!1}];D.converters.CacheQueryOptions=D.dictionaryConverter(iC);D.converters.MultiCacheQueryOptions=D.dictionaryConverter([...iC,{key:"cacheName",converter:D.converters.DOMString}]);D.converters.Response=D.interfaceConverter(P2);D.converters["sequence"]=D.sequenceConverter(D.converters.RequestInfo);oC.exports={Cache:Qi}});var gC=h((gq,cC)=>{"use strict";var{kConstruct:gs}=gi(),{Cache:Ei}=aC(),{webidl:he}=ce(),{kEnumerableProperty:ls}=x(),hi=class A{#e=new Map;constructor(){arguments[0]!==gs&&he.illegalConstructor(),he.util.markAsUncloneable(this)}async match(e,t={}){if(he.brandCheck(this,A),he.argumentLengthCheck(arguments,1,"CacheStorage.match"),e=he.converters.RequestInfo(e),t=he.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let r=this.#e.get(t.cacheName);return await new Ei(gs,r).match(e,t)}}else for(let r of this.#e.values()){let n=await new Ei(gs,r).match(e,t);if(n!==void 0)return n}}async has(e){he.brandCheck(this,A);let t="CacheStorage.has";return he.argumentLengthCheck(arguments,1,t),e=he.converters.DOMString(e,t,"cacheName"),this.#e.has(e)}async open(e){he.brandCheck(this,A);let t="CacheStorage.open";if(he.argumentLengthCheck(arguments,1,t),e=he.converters.DOMString(e,t,"cacheName"),this.#e.has(e)){let s=this.#e.get(e);return new Ei(gs,s)}let r=[];return this.#e.set(e,r),new Ei(gs,r)}async delete(e){he.brandCheck(this,A);let t="CacheStorage.delete";return he.argumentLengthCheck(arguments,1,t),e=he.converters.DOMString(e,t,"cacheName"),this.#e.delete(e)}async keys(){return he.brandCheck(this,A),[...this.#e.keys()]}};Object.defineProperties(hi.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:ls,has:ls,open:ls,delete:ls,keys:ls});cC.exports={CacheStorage:hi}});var QC=h((lq,lC)=>{"use strict";lC.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Ag=h((Qq,IC)=>{"use strict";function z2(A){for(let e=0;e=0&&t<=8||t>=10&&t<=31||t===127)return!0}return!1}function EC(A){for(let e=0;e126||t===34||t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===47||t===91||t===93||t===63||t===61||t===123||t===125)throw new Error("Invalid cookie name")}}function hC(A){let e=A.length,t=0;if(A[0]==='"'){if(e===1||A[e-1]!=='"')throw new Error("Invalid cookie value");--e,++t}for(;t126||r===34||r===44||r===59||r===92)throw new Error("Invalid cookie value")}}function uC(A){for(let e=0;ee.toString().padStart(2,"0"));function BC(A){return typeof A=="number"&&(A=new Date(A)),`${eS[A.getUTCDay()]}, ${ui[A.getUTCDate()]} ${AS[A.getUTCMonth()]} ${A.getUTCFullYear()} ${ui[A.getUTCHours()]}:${ui[A.getUTCMinutes()]}:${ui[A.getUTCSeconds()]} GMT`}function tS(A){if(A<0)throw new Error("Invalid cookie max-age")}function rS(A){if(A.name.length===0)return null;EC(A.name),hC(A.value);let e=[`${A.name}=${A.value}`];A.name.startsWith("__Secure-")&&(A.secure=!0),A.name.startsWith("__Host-")&&(A.secure=!0,A.domain=null,A.path="/"),A.secure&&e.push("Secure"),A.httpOnly&&e.push("HttpOnly"),typeof A.maxAge=="number"&&(tS(A.maxAge),e.push(`Max-Age=${A.maxAge}`)),A.domain&&($2(A.domain),e.push(`Domain=${A.domain}`)),A.path&&(uC(A.path),e.push(`Path=${A.path}`)),A.expires&&A.expires.toString()!=="Invalid Date"&&e.push(`Expires=${BC(A.expires)}`),A.sameSite&&e.push(`SameSite=${A.sameSite}`);for(let t of A.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...s]=t.split("=");e.push(`${r.trim()}=${s.join("=")}`)}return e.join("; ")}IC.exports={isCTLExcludingHtab:z2,validateCookieName:EC,validateCookiePath:uC,validateCookieValue:hC,toIMFDate:BC,stringify:rS}});var dC=h((Eq,CC)=>{"use strict";var{maxNameValuePairSize:sS,maxAttributeValueSize:nS}=QC(),{isCTLExcludingHtab:iS}=Ag(),{collectASequenceOfCodePointsFast:Bi}=pe(),oS=require("node:assert");function aS(A){if(iS(A))return null;let e="",t="",r="",s="";if(A.includes(";")){let n={position:0};e=Bi(";",A,n),t=A.slice(n.position)}else e=A;if(!e.includes("="))s=e;else{let n={position:0};r=Bi("=",e,n),s=e.slice(n.position+1)}return r=r.trim(),s=s.trim(),r.length+s.length>sS?null:{name:r,value:s,...hr(t)}}function hr(A,e={}){if(A.length===0)return e;oS(A[0]===";"),A=A.slice(1);let t="";A.includes(";")?(t=Bi(";",A,{position:0}),A=A.slice(t.length)):(t=A,A="");let r="",s="";if(t.includes("=")){let i={position:0};r=Bi("=",t,i),s=t.slice(i.position+1)}else r=t;if(r=r.trim(),s=s.trim(),s.length>nS)return hr(A,e);let n=r.toLowerCase();if(n==="expires"){let i=new Date(s);e.expires=i}else if(n==="max-age"){let i=s.charCodeAt(0);if((i<48||i>57)&&s[0]!=="-"||!/^\d+$/.test(s))return hr(A,e);let o=Number(s);e.maxAge=o}else if(n==="domain"){let i=s;i[0]==="."&&(i=i.slice(1)),i=i.toLowerCase(),e.domain=i}else if(n==="path"){let i="";s.length===0||s[0]!=="/"?i="/":i=s,e.path=i}else if(n==="secure")e.secure=!0;else if(n==="httponly")e.httpOnly=!0;else if(n==="samesite"){let i="Default",o=s.toLowerCase();o.includes("none")&&(i="None"),o.includes("strict")&&(i="Strict"),o.includes("lax")&&(i="Lax"),e.sameSite=i}else e.unparsed??=[],e.unparsed.push(`${r}=${s}`);return hr(A,e)}CC.exports={parseSetCookie:aS,parseUnparsedAttributes:hr}});var pC=h((hq,mC)=>{"use strict";var{parseSetCookie:cS}=dC(),{stringify:gS}=Ag(),{webidl:q}=ce(),{Headers:Ii}=ut();function lS(A){q.argumentLengthCheck(arguments,1,"getCookies"),q.brandCheck(A,Ii,{strict:!1});let e=A.get("cookie"),t={};if(!e)return t;for(let r of e.split(";")){let[s,...n]=r.split("=");t[s.trim()]=n.join("=")}return t}function QS(A,e,t){q.brandCheck(A,Ii,{strict:!1});let r="deleteCookie";q.argumentLengthCheck(arguments,2,r),e=q.converters.DOMString(e,r,"name"),t=q.converters.DeleteCookieAttributes(t),fC(A,{name:e,value:"",expires:new Date(0),...t})}function ES(A){q.argumentLengthCheck(arguments,1,"getSetCookies"),q.brandCheck(A,Ii,{strict:!1});let e=A.getSetCookie();return e?e.map(t=>cS(t)):[]}function fC(A,e){q.argumentLengthCheck(arguments,2,"setCookie"),q.brandCheck(A,Ii,{strict:!1}),e=q.converters.Cookie(e);let t=gS(e);t&&A.append("Set-Cookie",t)}q.converters.DeleteCookieAttributes=q.dictionaryConverter([{converter:q.nullableConverter(q.converters.DOMString),key:"path",defaultValue:()=>null},{converter:q.nullableConverter(q.converters.DOMString),key:"domain",defaultValue:()=>null}]);q.converters.Cookie=q.dictionaryConverter([{converter:q.converters.DOMString,key:"name"},{converter:q.converters.DOMString,key:"value"},{converter:q.nullableConverter(A=>typeof A=="number"?q.converters["unsigned long long"](A):new Date(A)),key:"expires",defaultValue:()=>null},{converter:q.nullableConverter(q.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:q.nullableConverter(q.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:q.nullableConverter(q.converters.DOMString),key:"path",defaultValue:()=>null},{converter:q.nullableConverter(q.converters.boolean),key:"secure",defaultValue:()=>null},{converter:q.nullableConverter(q.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:q.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:q.sequenceConverter(q.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);mC.exports={getCookies:lS,deleteCookie:QS,getSetCookies:ES,setCookie:fC}});var Br=h((uq,wC)=>{"use strict";var{webidl:w}=ce(),{kEnumerableProperty:Re}=x(),{kConstruct:yC}=K(),{MessagePort:hS}=require("node:worker_threads"),ur=class A extends Event{#e;constructor(e,t={}){if(e===yC){super(arguments[1],arguments[2]),w.util.markAsUncloneable(this);return}let r="MessageEvent constructor";w.argumentLengthCheck(arguments,1,r),e=w.converters.DOMString(e,r,"type"),t=w.converters.MessageEventInit(t,r,"eventInitDict"),super(e,t),this.#e=t,w.util.markAsUncloneable(this)}get data(){return w.brandCheck(this,A),this.#e.data}get origin(){return w.brandCheck(this,A),this.#e.origin}get lastEventId(){return w.brandCheck(this,A),this.#e.lastEventId}get source(){return w.brandCheck(this,A),this.#e.source}get ports(){return w.brandCheck(this,A),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(e,t=!1,r=!1,s=null,n="",i="",o=null,a=[]){return w.brandCheck(this,A),w.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new A(e,{bubbles:t,cancelable:r,data:s,origin:n,lastEventId:i,source:o,ports:a})}static createFastMessageEvent(e,t){let r=new A(yC,e,t);return r.#e=t,r.#e.data??=null,r.#e.origin??="",r.#e.lastEventId??="",r.#e.source??=null,r.#e.ports??=[],r}},{createFastMessageEvent:uS}=ur;delete ur.createFastMessageEvent;var Ci=class A extends Event{#e;constructor(e,t={}){let r="CloseEvent constructor";w.argumentLengthCheck(arguments,1,r),e=w.converters.DOMString(e,r,"type"),t=w.converters.CloseEventInit(t),super(e,t),this.#e=t,w.util.markAsUncloneable(this)}get wasClean(){return w.brandCheck(this,A),this.#e.wasClean}get code(){return w.brandCheck(this,A),this.#e.code}get reason(){return w.brandCheck(this,A),this.#e.reason}},di=class A extends Event{#e;constructor(e,t){let r="ErrorEvent constructor";w.argumentLengthCheck(arguments,1,r),super(e,t),w.util.markAsUncloneable(this),e=w.converters.DOMString(e,r,"type"),t=w.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return w.brandCheck(this,A),this.#e.message}get filename(){return w.brandCheck(this,A),this.#e.filename}get lineno(){return w.brandCheck(this,A),this.#e.lineno}get colno(){return w.brandCheck(this,A),this.#e.colno}get error(){return w.brandCheck(this,A),this.#e.error}};Object.defineProperties(ur.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:Re,origin:Re,lastEventId:Re,source:Re,ports:Re,initMessageEvent:Re});Object.defineProperties(Ci.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:Re,code:Re,wasClean:Re});Object.defineProperties(di.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:Re,filename:Re,lineno:Re,colno:Re,error:Re});w.converters.MessagePort=w.interfaceConverter(hS);w.converters["sequence"]=w.sequenceConverter(w.converters.MessagePort);var tg=[{key:"bubbles",converter:w.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:w.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:w.converters.boolean,defaultValue:()=>!1}];w.converters.MessageEventInit=w.dictionaryConverter([...tg,{key:"data",converter:w.converters.any,defaultValue:()=>null},{key:"origin",converter:w.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:w.converters.DOMString,defaultValue:()=>""},{key:"source",converter:w.nullableConverter(w.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:w.converters["sequence"],defaultValue:()=>new Array(0)}]);w.converters.CloseEventInit=w.dictionaryConverter([...tg,{key:"wasClean",converter:w.converters.boolean,defaultValue:()=>!1},{key:"code",converter:w.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:w.converters.USVString,defaultValue:()=>""}]);w.converters.ErrorEventInit=w.dictionaryConverter([...tg,{key:"message",converter:w.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:w.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:w.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:w.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:w.converters.any}]);wC.exports={MessageEvent:ur,CloseEvent:Ci,ErrorEvent:di,createFastMessageEvent:uS}});var mt=h((Bq,DC)=>{"use strict";var BS="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",IS={enumerable:!0,writable:!1,configurable:!1},CS={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},dS={NOT_SENT:0,PROCESSING:1,SENT:2},fS={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},mS=2**16-1,pS={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},yS=Buffer.allocUnsafe(0),wS={string:1,typedArray:2,arrayBuffer:3,blob:4};DC.exports={uid:BS,sentCloseFrameState:dS,staticPropertyDescriptors:IS,states:CS,opcodes:fS,maxUnsigned16Bit:mS,parserStates:pS,emptyBuffer:yS,sendHints:wS}});var Qs=h((Iq,RC)=>{"use strict";RC.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var us=h((Cq,TC)=>{"use strict";var{kReadyState:Es,kController:DS,kResponse:RS,kBinaryType:bS,kWebSocketURL:kS}=Qs(),{states:hs,opcodes:ZA}=mt(),{ErrorEvent:FS,createFastMessageEvent:NS}=Br(),{isUtf8:SS}=require("node:buffer"),{collectASequenceOfCodePointsFast:US,removeHTTPWhitespace:bC}=pe();function MS(A){return A[Es]===hs.CONNECTING}function LS(A){return A[Es]===hs.OPEN}function TS(A){return A[Es]===hs.CLOSING}function xS(A){return A[Es]===hs.CLOSED}function rg(A,e,t=(s,n)=>new Event(s,n),r={}){let s=t(A,r);e.dispatchEvent(s)}function vS(A,e,t){if(A[Es]!==hs.OPEN)return;let r;if(e===ZA.TEXT)try{r=LC(t)}catch{FC(A,"Received invalid UTF-8 in text frame.");return}else e===ZA.BINARY&&(A[bS]==="blob"?r=new Blob([t]):r=qS(t));rg("message",A,NS,{origin:A[kS].origin,data:r})}function qS(A){return A.byteLength===A.buffer.byteLength?A.buffer:A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength)}function GS(A){if(A.length===0)return!1;for(let e=0;e126||t===34||t===40||t===41||t===44||t===47||t===58||t===59||t===60||t===61||t===62||t===63||t===64||t===91||t===92||t===93||t===123||t===125)return!1}return!0}function YS(A){return A>=1e3&&A<1015?A!==1004&&A!==1005&&A!==1006:A>=3e3&&A<=4999}function FC(A,e){let{[DS]:t,[RS]:r}=A;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),e&&rg("error",A,(s,n)=>new FS(s,n),{error:new Error(e),message:e})}function NC(A){return A===ZA.CLOSE||A===ZA.PING||A===ZA.PONG}function SC(A){return A===ZA.CONTINUATION}function UC(A){return A===ZA.TEXT||A===ZA.BINARY}function JS(A){return UC(A)||SC(A)||NC(A)}function VS(A){let e={position:0},t=new Map;for(;e.position57)return!1}let e=Number.parseInt(A,10);return e>=8&&e<=15}var MC=typeof process.versions.icu=="string",kC=MC?new TextDecoder("utf-8",{fatal:!0}):void 0,LC=MC?kC.decode.bind(kC):function(A){if(SS(A))return A.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};TC.exports={isConnecting:MS,isEstablished:LS,isClosing:TS,isClosed:xS,fireEvent:rg,isValidSubprotocol:GS,isValidStatusCode:YS,failWebsocketConnection:FC,websocketMessageReceived:vS,utf8Decode:LC,isControlFrame:NC,isContinuationFrame:SC,isTextBinaryFrame:UC,isValidOpcode:JS,parseExtensions:VS,isValidClientWindowBits:HS}});var mi=h((dq,xC)=>{"use strict";var{maxUnsigned16Bit:OS}=mt(),fi=16386,sg,Bs=null,Ir=fi;try{sg=require("node:crypto")}catch{sg={randomFillSync:function(e,t,r){for(let s=0;sOS?(i+=8,n=127):s>125&&(i+=2,n=126);let o=Buffer.allocUnsafe(s+i);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+e;o[i-4]=r[0],o[i-3]=r[1],o[i-2]=r[2],o[i-1]=r[3],o[1]=n,n===126?o.writeUInt16BE(s,2):n===127&&(o[2]=o[3]=0,o.writeUIntBE(s,4,6)),o[1]|=128;for(let a=0;a{"use strict";var{uid:PS,states:Is,sentCloseFrameState:pi,emptyBuffer:jS,opcodes:_S}=mt(),{kReadyState:Cs,kSentClose:yi,kByteParser:qC,kReceivedClose:vC,kResponse:GC}=Qs(),{fireEvent:ZS,failWebsocketConnection:KA,isClosing:KS,isClosed:XS,isEstablished:zS,parseExtensions:$S}=us(),{channels:Cr}=Ft(),{CloseEvent:eU}=Br(),{makeRequest:AU}=gr(),{fetching:tU}=as(),{Headers:rU,getHeadersList:sU}=ut(),{getDecodeSplit:nU}=ke(),{WebsocketFrameSend:iU}=mi(),ig;try{ig=require("node:crypto")}catch{}function oU(A,e,t,r,s,n){let i=A;i.protocol=A.protocol==="ws:"?"http:":"https:";let o=AU({urlList:[i],client:t,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(n.headers){let g=sU(new rU(n.headers));o.headersList=g}let a=ig.randomBytes(16).toString("base64");o.headersList.append("sec-websocket-key",a),o.headersList.append("sec-websocket-version","13");for(let g of e)o.headersList.append("sec-websocket-protocol",g);return o.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),tU({request:o,useParallelQueue:!0,dispatcher:n.dispatcher,processResponse(g){if(g.type==="error"||g.status!==101){KA(r,"Received network error or non-101 status code.");return}if(e.length!==0&&!g.headersList.get("Sec-WebSocket-Protocol")){KA(r,"Server did not respond with sent protocols.");return}if(g.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){KA(r,'Server did not set Upgrade header to "websocket".');return}if(g.headersList.get("Connection")?.toLowerCase()!=="upgrade"){KA(r,'Server did not set Connection header to "upgrade".');return}let Q=g.headersList.get("Sec-WebSocket-Accept"),E=ig.createHash("sha1").update(a+PS).digest("base64");if(Q!==E){KA(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=g.headersList.get("Sec-WebSocket-Extensions"),I;if(B!==null&&(I=$S(B),!I.has("permessage-deflate"))){KA(r,"Sec-WebSocket-Extensions header does not match.");return}let m=g.headersList.get("Sec-WebSocket-Protocol");if(m!==null&&!nU("sec-websocket-protocol",o.headersList).includes(m)){KA(r,"Protocol was not set in the opening handshake.");return}g.socket.on("data",YC),g.socket.on("close",JC),g.socket.on("error",VC),Cr.open.hasSubscribers&&Cr.open.publish({address:g.socket.address(),protocol:m,extensions:B}),s(g,I)}})}function aU(A,e,t,r){if(!(KS(A)||XS(A)))if(!zS(A))KA(A,"Connection was closed before it was established."),A[Cs]=Is.CLOSING;else if(A[yi]===pi.NOT_SENT){A[yi]=pi.PROCESSING;let s=new iU;e!==void 0&&t===void 0?(s.frameData=Buffer.allocUnsafe(2),s.frameData.writeUInt16BE(e,0)):e!==void 0&&t!==void 0?(s.frameData=Buffer.allocUnsafe(2+r),s.frameData.writeUInt16BE(e,0),s.frameData.write(t,2,"utf-8")):s.frameData=jS,A[GC].socket.write(s.createFrame(_S.CLOSE)),A[yi]=pi.SENT,A[Cs]=Is.CLOSING}else A[Cs]=Is.CLOSING}function YC(A){this.ws[qC].write(A)||this.pause()}function JC(){let{ws:A}=this,{[GC]:e}=A;e.socket.off("data",YC),e.socket.off("close",JC),e.socket.off("error",VC);let t=A[yi]===pi.SENT&&A[vC],r=1005,s="",n=A[qC].closingInfo;n&&!n.error?(r=n.code??1005,s=n.reason):A[vC]||(r=1006),A[Cs]=Is.CLOSED,ZS("close",A,(i,o)=>new eU(i,o),{wasClean:t,code:r,reason:s}),Cr.close.hasSubscribers&&Cr.close.publish({websocket:A,code:r,reason:s})}function VC(A){let{ws:e}=this;e[Cs]=Is.CLOSING,Cr.socketError.hasSubscribers&&Cr.socketError.publish(A),this.destroy()}HC.exports={establishWebSocketConnection:oU,closeWebSocketConnection:aU}});var WC=h((mq,OC)=>{"use strict";var{createInflateRaw:cU,Z_DEFAULT_WINDOWBITS:gU}=require("node:zlib"),{isValidClientWindowBits:lU}=us(),{MessageSizeExceededError:QU}=Y(),EU=Buffer.from([0,0,255,255]),wi=Symbol("kBuffer"),ds=Symbol("kLength"),ag=class{#e;#A={};#t=0;constructor(e,t){this.#A.serverNoContextTakeover=e.has("server_no_context_takeover"),this.#A.serverMaxWindowBits=e.get("server_max_window_bits"),this.#t=t.maxPayloadSize}decompress(e,t,r){if(!this.#e){let s=gU;if(this.#A.serverMaxWindowBits){if(!lU(this.#A.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}s=Number.parseInt(this.#A.serverMaxWindowBits)}try{this.#e=cU({windowBits:s})}catch(n){r(n);return}this.#e[wi]=[],this.#e[ds]=0,this.#e.on("data",n=>{if(this.#e[ds]+=n.length,this.#t>0&&this.#e[ds]>this.#t){r(new QU),this.#e.removeAllListeners(),this.#e=null;return}this.#e[wi].push(n)}),this.#e.on("error",n=>{this.#e=null,r(n)})}this.#e.write(e),t&&this.#e.write(EU),this.#e.flush(()=>{if(!this.#e)return;let s=Buffer.concat(this.#e[wi],this.#e[ds]);this.#e[wi].length=0,this.#e[ds]=0,r(null,s)})}};OC.exports={PerMessageDeflate:ag}});var A0=h((pq,e0)=>{"use strict";var{Writable:hU}=require("node:stream"),uU=require("node:assert"),{parserStates:be,opcodes:dr,states:BU,emptyBuffer:PC,sentCloseFrameState:jC}=mt(),{kReadyState:IU,kSentClose:_C,kResponse:ZC,kReceivedClose:KC}=Qs(),{channels:Di}=Ft(),{isValidStatusCode:CU,isValidOpcode:dU,failWebsocketConnection:ue,websocketMessageReceived:XC,utf8Decode:fU,isControlFrame:cg,isTextBinaryFrame:gg,isContinuationFrame:mU}=us(),{WebsocketFrameSend:zC}=mi(),{closeWebSocketConnection:pU}=og(),{PerMessageDeflate:yU}=WC(),{MessageSizeExceededError:$C}=Y(),lg=class extends hU{#e=[];#A=0;#t=0;#n=!1;#s=be.INFO;#r={};#i=[];#o;#a;constructor(e,t,r={}){super(),this.ws=e,this.#o=t??new Map,this.#a=r.maxPayloadSize??0,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new yU(t,r))}_write(e,t,r){this.#e.push(e),this.#t+=e.length,this.#n=!0,this.run(r)}#c(){return this.#a>0&&!cg(this.#r.opcode)&&this.#r.payloadLength>this.#a?(ue(this.ws,"Payload size exceeds maximum allowed size"),!1):!0}run(e){for(;this.#n;)if(this.#s===be.INFO){if(this.#t<2)return e();let t=this.consume(2),r=(t[0]&128)!==0,s=t[0]&15,n=(t[1]&128)===128,i=!r&&s!==dr.CONTINUATION,o=t[1]&127,a=t[0]&64,c=t[0]&32,l=t[0]&16;if(!dU(s))return ue(this.ws,"Invalid opcode received"),e();if(n)return ue(this.ws,"Frame cannot be masked"),e();if(a!==0&&!this.#o.has("permessage-deflate")){ue(this.ws,"Expected RSV1 to be clear.");return}if(c!==0||l!==0){ue(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(i&&!gg(s)){ue(this.ws,"Invalid frame type was fragmented.");return}if(gg(s)&&this.#i.length>0){ue(this.ws,"Expected continuation frame");return}if(this.#r.fragmented&&i){ue(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((o>125||i)&&cg(s)){ue(this.ws,"Control frame either too large or fragmented");return}if(mU(s)&&this.#i.length===0&&!this.#r.compressed){ue(this.ws,"Unexpected continuation frame");return}if(o<=125){if(this.#r.payloadLength=o,this.#s=be.READ_DATA,!this.#c())return}else o===126?this.#s=be.PAYLOADLENGTH_16:o===127&&(this.#s=be.PAYLOADLENGTH_64);gg(s)&&(this.#r.binaryType=s,this.#r.compressed=a!==0),this.#r.opcode=s,this.#r.masked=n,this.#r.fin=r,this.#r.fragmented=i}else if(this.#s===be.PAYLOADLENGTH_16){if(this.#t<2)return e();let t=this.consume(2);if(this.#r.payloadLength=t.readUInt16BE(0),this.#s=be.READ_DATA,!this.#c())return}else if(this.#s===be.PAYLOADLENGTH_64){if(this.#t<8)return e();let t=this.consume(8),r=t.readUInt32BE(0),s=t.readUInt32BE(4);if(r!==0||s>2**31-1){ue(this.ws,"Received payload length > 2^31 bytes.");return}if(this.#r.payloadLength=s,this.#s=be.READ_DATA,!this.#c())return}else if(this.#s===be.READ_DATA){if(this.#t{if(r){ue(this.ws,r.message);return}if(this.writeFragments(s),this.#a>0&&this.#A>this.#a){ue(this.ws,new $C().message);return}if(!this.#r.fin){this.#s=be.INFO,this.#n=!0,this.run(e);return}XC(this.ws,this.#r.binaryType,this.consumeFragments()),this.#n=!0,this.#s=be.INFO,this.run(e)}),this.#n=!1;break}else{if(this.writeFragments(t),this.#a>0&&this.#A>this.#a){ue(this.ws,new $C().message);return}!this.#r.fragmented&&this.#r.fin&&XC(this.ws,this.#r.binaryType,this.consumeFragments()),this.#s=be.INFO}}}consume(e){if(e>this.#t)throw new Error("Called consume() before buffers satiated.");if(e===0)return PC;if(this.#e[0].length===e)return this.#t-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(e),r=0;for(;r!==e;){let s=this.#e[0],{length:n}=s;if(n+r===e){t.set(this.#e.shift(),r);break}else if(n+r>e){t.set(s.subarray(0,e-r),r),this.#e[0]=s.subarray(e-r);break}else t.set(this.#e.shift(),r),r+=s.length}return this.#t-=e,t}writeFragments(e){this.#A+=e.length,this.#i.push(e)}consumeFragments(){let e=this.#i;if(e.length===1)return this.#A=0,e.shift();let t=Buffer.concat(e,this.#A);return this.#i=[],this.#A=0,t}parseCloseBody(e){uU(e.length!==1);let t;if(e.length>=2&&(t=e.readUInt16BE(0)),t!==void 0&&!CU(t))return{code:1002,reason:"Invalid status code",error:!0};let r=e.subarray(2);r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3));try{r=fU(r)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:t,reason:r,error:!1}}parseControlFrame(e){let{opcode:t,payloadLength:r}=this.#r;if(t===dr.CLOSE){if(r===1)return ue(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#r.closeInfo=this.parseCloseBody(e),this.#r.closeInfo.error){let{code:s,reason:n}=this.#r.closeInfo;return pU(this.ws,s,n,n.length),ue(this.ws,n),!1}if(this.ws[_C]!==jC.SENT){let s=PC;this.#r.closeInfo.code&&(s=Buffer.allocUnsafe(2),s.writeUInt16BE(this.#r.closeInfo.code,0));let n=new zC(s);this.ws[ZC].socket.write(n.createFrame(dr.CLOSE),i=>{i||(this.ws[_C]=jC.SENT)})}return this.ws[IU]=BU.CLOSING,this.ws[KC]=!0,!1}else if(t===dr.PING){if(!this.ws[KC]){let s=new zC(e);this.ws[ZC].socket.write(s.createFrame(dr.PONG)),Di.ping.hasSubscribers&&Di.ping.publish({payload:e})}}else t===dr.PONG&&Di.pong.hasSubscribers&&Di.pong.publish({payload:e});return!0}get closingInfo(){return this.#r.closeInfo}};e0.exports={ByteParser:lg}});var i0=h((yq,n0)=>{"use strict";var{WebsocketFrameSend:wU}=mi(),{opcodes:t0,sendHints:fr}=mt(),DU=fa(),r0=Buffer[Symbol.species],Qg=class{#e=new DU;#A=!1;#t;constructor(e){this.#t=e}add(e,t,r){if(r!==fr.blob){let n=s0(e,r);if(!this.#A)this.#t.write(n,t);else{let i={promise:null,callback:t,frame:n};this.#e.push(i)}return}let s={promise:e.arrayBuffer().then(n=>{s.promise=null,s.frame=s0(n,r)}),callback:t,frame:null};this.#e.push(s),this.#A||this.#n()}async#n(){this.#A=!0;let e=this.#e;for(;!e.isEmpty();){let t=e.shift();t.promise!==null&&await t.promise,this.#t.write(t.frame,t.callback),t.callback=t.frame=null}this.#A=!1}};function s0(A,e){return new wU(RU(A,e)).createFrame(e===fr.string?t0.TEXT:t0.BINARY)}function RU(A,e){switch(e){case fr.string:return Buffer.from(A);case fr.arrayBuffer:case fr.blob:return new r0(A);case fr.typedArray:return new r0(A.buffer,A.byteOffset,A.byteLength)}}n0.exports={SendQueue:Qg}});var B0=h((wq,u0)=>{"use strict";var{webidl:U}=ce(),{URLSerializer:bU}=pe(),{environmentSettingsObject:o0}=ke(),{staticPropertyDescriptors:XA,states:fs,sentCloseFrameState:kU,sendHints:Ri}=mt(),{kWebSocketURL:a0,kReadyState:Eg,kController:c0,kBinaryType:bi,kResponse:g0,kSentClose:FU,kByteParser:NU}=Qs(),{isConnecting:SU,isEstablished:UU,isClosing:MU,isValidSubprotocol:LU,fireEvent:l0}=us(),{establishWebSocketConnection:TU,closeWebSocketConnection:Q0}=og(),{ByteParser:xU}=A0(),{kEnumerableProperty:Ve,isBlobLike:E0}=x(),{getGlobalDispatcher:vU}=Vn(),{types:h0}=require("node:util"),{ErrorEvent:qU,CloseEvent:GU}=Br(),{SendQueue:YU}=i0(),xe=class A extends EventTarget{#e={open:null,error:null,close:null,message:null};#A=0;#t="";#n="";#s;constructor(e,t=[]){super(),U.util.markAsUncloneable(this);let r="WebSocket constructor";U.argumentLengthCheck(arguments,1,r);let s=U.converters["DOMString or sequence or WebSocketInit"](t,r,"options");e=U.converters.USVString(e,r,"url"),t=s.protocols;let n=o0.settingsObject.baseUrl,i;try{i=new URL(e,n)}catch(a){throw new DOMException(a,"SyntaxError")}if(i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),i.protocol!=="ws:"&&i.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${i.protocol}`,"SyntaxError");if(i.hash||i.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(a=>LU(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[a0]=new URL(i.href);let o=o0.settingsObject;this[c0]=TU(i,t,o,this,(a,c)=>this.#r(a,c),s),this[Eg]=A.CONNECTING,this[FU]=kU.NOT_SENT,this[bi]="blob"}close(e=void 0,t=void 0){U.brandCheck(this,A);let r="WebSocket.close";if(e!==void 0&&(e=U.converters["unsigned short"](e,r,"code",{clamp:!0})),t!==void 0&&(t=U.converters.USVString(t,r,"reason")),e!==void 0&&e!==1e3&&(e<3e3||e>4999))throw new DOMException("invalid code","InvalidAccessError");let s=0;if(t!==void 0&&(s=Buffer.byteLength(t),s>123))throw new DOMException(`Reason must be less than 123 bytes; received ${s}`,"SyntaxError");Q0(this,e,t,s)}send(e){U.brandCheck(this,A);let t="WebSocket.send";if(U.argumentLengthCheck(arguments,1,t),e=U.converters.WebSocketSendData(e,t,"data"),SU(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!UU(this)||MU(this)))if(typeof e=="string"){let r=Buffer.byteLength(e);this.#A+=r,this.#s.add(e,()=>{this.#A-=r},Ri.string)}else h0.isArrayBuffer(e)?(this.#A+=e.byteLength,this.#s.add(e,()=>{this.#A-=e.byteLength},Ri.arrayBuffer)):ArrayBuffer.isView(e)?(this.#A+=e.byteLength,this.#s.add(e,()=>{this.#A-=e.byteLength},Ri.typedArray)):E0(e)&&(this.#A+=e.size,this.#s.add(e,()=>{this.#A-=e.size},Ri.blob))}get readyState(){return U.brandCheck(this,A),this[Eg]}get bufferedAmount(){return U.brandCheck(this,A),this.#A}get url(){return U.brandCheck(this,A),bU(this[a0])}get extensions(){return U.brandCheck(this,A),this.#n}get protocol(){return U.brandCheck(this,A),this.#t}get onopen(){return U.brandCheck(this,A),this.#e.open}set onopen(e){U.brandCheck(this,A),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof e=="function"?(this.#e.open=e,this.addEventListener("open",e)):this.#e.open=null}get onerror(){return U.brandCheck(this,A),this.#e.error}set onerror(e){U.brandCheck(this,A),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof e=="function"?(this.#e.error=e,this.addEventListener("error",e)):this.#e.error=null}get onclose(){return U.brandCheck(this,A),this.#e.close}set onclose(e){U.brandCheck(this,A),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof e=="function"?(this.#e.close=e,this.addEventListener("close",e)):this.#e.close=null}get onmessage(){return U.brandCheck(this,A),this.#e.message}set onmessage(e){U.brandCheck(this,A),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof e=="function"?(this.#e.message=e,this.addEventListener("message",e)):this.#e.message=null}get binaryType(){return U.brandCheck(this,A),this[bi]}set binaryType(e){U.brandCheck(this,A),e!=="blob"&&e!=="arraybuffer"?this[bi]="blob":this[bi]=e}#r(e,t){this[g0]=e;let r=this[c0]?.dispatcher?.webSocketOptions?.maxPayloadSize,s=new xU(this,t,{maxPayloadSize:r});s.on("drain",JU),s.on("error",VU.bind(this)),e.socket.ws=this,this[NU]=s,this.#s=new YU(e.socket),this[Eg]=fs.OPEN;let n=e.headersList.get("sec-websocket-extensions");n!==null&&(this.#n=n);let i=e.headersList.get("sec-websocket-protocol");i!==null&&(this.#t=i),l0("open",this)}};xe.CONNECTING=xe.prototype.CONNECTING=fs.CONNECTING;xe.OPEN=xe.prototype.OPEN=fs.OPEN;xe.CLOSING=xe.prototype.CLOSING=fs.CLOSING;xe.CLOSED=xe.prototype.CLOSED=fs.CLOSED;Object.defineProperties(xe.prototype,{CONNECTING:XA,OPEN:XA,CLOSING:XA,CLOSED:XA,url:Ve,readyState:Ve,bufferedAmount:Ve,onopen:Ve,onerror:Ve,onclose:Ve,close:Ve,onmessage:Ve,binaryType:Ve,send:Ve,extensions:Ve,protocol:Ve,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(xe,{CONNECTING:XA,OPEN:XA,CLOSING:XA,CLOSED:XA});U.converters["sequence"]=U.sequenceConverter(U.converters.DOMString);U.converters["DOMString or sequence"]=function(A,e,t){return U.util.Type(A)==="Object"&&Symbol.iterator in A?U.converters["sequence"](A):U.converters.DOMString(A,e,t)};U.converters.WebSocketInit=U.dictionaryConverter([{key:"protocols",converter:U.converters["DOMString or sequence"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:U.converters.any,defaultValue:()=>vU()},{key:"headers",converter:U.nullableConverter(U.converters.HeadersInit)}]);U.converters["DOMString or sequence or WebSocketInit"]=function(A){return U.util.Type(A)==="Object"&&!(Symbol.iterator in A)?U.converters.WebSocketInit(A):{protocols:U.converters["DOMString or sequence"](A)}};U.converters.WebSocketSendData=function(A){if(U.util.Type(A)==="Object"){if(E0(A))return U.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||h0.isArrayBuffer(A))return U.converters.BufferSource(A)}return U.converters.USVString(A)};function JU(){this.ws[g0].socket.resume()}function VU(A){let e,t;A instanceof GU?(e=A.reason,t=A.code):e=A.message,l0("error",this,()=>new qU("error",{error:A,message:e})),Q0(this,t)}u0.exports={WebSocket:xe}});var hg=h((Dq,I0)=>{"use strict";function HU(A){return A.indexOf("\0")===-1}function OU(A){if(A.length===0)return!1;for(let e=0;e57)return!1;return!0}function WU(A){return new Promise(e=>{setTimeout(e,A).unref()})}I0.exports={isValidLastEventId:HU,isASCIINumber:OU,delay:WU}});var m0=h((Rq,f0)=>{"use strict";var{Transform:PU}=require("node:stream"),{isASCIINumber:C0,isValidLastEventId:d0}=hg(),FA=[239,187,191],ug=10,ki=13,jU=58,_U=32,Bg=class extends PU{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(e={}){e.readableObjectMode=!0,super(e),this.state=e.eventSourceSettings||{},e.push&&(this.push=e.push)}_transform(e,t,r){if(e.length===0){r();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,e]):this.buffer=e,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===FA[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===FA[0]&&this.buffer[1]===FA[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===FA[0]&&this.buffer[1]===FA[1]&&this.buffer[2]===FA[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===FA[0]&&this.buffer[1]===FA[1]&&this.buffer[2]===FA[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos0&&(t[s]=n);break}}processEvent(e){e.retry&&C0(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id&&d0(e.id)&&(this.state.lastEventId=e.id),e.data!==void 0&&this.push({type:e.event||"message",options:{data:e.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};f0.exports={EventSourceStream:Bg}});var F0=h((bq,k0)=>{"use strict";var{pipeline:ZU}=require("node:stream"),{fetching:KU}=as(),{makeRequest:XU}=gr(),{webidl:NA}=ce(),{EventSourceStream:zU}=m0(),{parseMIMEType:$U}=pe(),{createFastMessageEvent:eM}=Br(),{isNetworkError:p0}=is(),{delay:AM}=hg(),{kEnumerableProperty:pt}=x(),{environmentSettingsObject:y0}=ke(),w0=!1,D0=3e3,ms=0,R0=1,ps=2,tM="anonymous",rM="use-credentials",mr=class A extends EventTarget{#e={open:null,error:null,message:null};#A=null;#t=!1;#n=ms;#s=null;#r=null;#i;#o;constructor(e,t={}){super(),NA.util.markAsUncloneable(this);let r="EventSource constructor";NA.argumentLengthCheck(arguments,1,r),w0||(w0=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),e=NA.converters.USVString(e,r,"url"),t=NA.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#i=t.dispatcher,this.#o={lastEventId:"",reconnectionTime:D0};let s=y0,n;try{n=new URL(e,s.settingsObject.baseUrl),this.#o.origin=n.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#A=n.href;let i=tM;t.withCredentials&&(i=rM,this.#t=!0);let o={redirect:"follow",keepalive:!0,mode:"cors",credentials:i==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};o.client=y0.settingsObject,o.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],o.cache="no-store",o.initiator="other",o.urlList=[new URL(this.#A)],this.#s=XU(o),this.#a()}get readyState(){return this.#n}get url(){return this.#A}get withCredentials(){return this.#t}#a(){if(this.#n===ps)return;this.#n=ms;let e={request:this.#s,dispatcher:this.#i},t=r=>{p0(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#c()};e.processResponseEndOfBody=t,e.processResponse=r=>{if(p0(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#c();return}let s=r.headersList.get("content-type",!0),n=s!==null?$U(s):"failure",i=n!=="failure"&&n.essence==="text/event-stream";if(r.status!==200||i===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#n=R0,this.dispatchEvent(new Event("open")),this.#o.origin=r.urlList[r.urlList.length-1].origin;let o=new zU({eventSourceSettings:this.#o,push:a=>{this.dispatchEvent(eM(a.type,a.options))}});ZU(r.body.stream,o,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=KU(e)}async#c(){this.#n!==ps&&(this.#n=ms,this.dispatchEvent(new Event("error")),await AM(this.#o.reconnectionTime),this.#n===ms&&(this.#o.lastEventId.length&&this.#s.headersList.set("last-event-id",this.#o.lastEventId,!0),this.#a()))}close(){NA.brandCheck(this,A),this.#n!==ps&&(this.#n=ps,this.#r.abort(),this.#s=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof e=="function"?(this.#e.open=e,this.addEventListener("open",e)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof e=="function"?(this.#e.message=e,this.addEventListener("message",e)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof e=="function"?(this.#e.error=e,this.addEventListener("error",e)):this.#e.error=null}},b0={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:ms,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:R0,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:ps,writable:!1}};Object.defineProperties(mr,b0);Object.defineProperties(mr.prototype,b0);Object.defineProperties(mr.prototype,{close:pt,onerror:pt,onmessage:pt,onopen:pt,readyState:pt,url:pt,withCredentials:pt});NA.converters.EventSourceInitDict=NA.dictionaryConverter([{key:"withCredentials",converter:NA.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:NA.converters.any}]);k0.exports={EventSource:mr,defaultReconnectionTime:D0}});var M0=h((kq,S)=>{"use strict";var sM=Zt(),N0=Rr(),nM=Kt(),iM=bh(),oM=Xt(),aM=Ya(),cM=Xh(),gM=ru(),S0=Y(),Ni=x(),{InvalidArgumentError:Fi}=S0,pr=Hu(),lM=kr(),QM=mc(),EM=DB(),hM=wc(),uM=ac(),BM=Un(),{getGlobalDispatcher:U0,setGlobalDispatcher:IM}=Vn(),CM=Hn(),dM=mn(),fM=pn();Object.assign(N0.prototype,pr);S.exports.Dispatcher=N0;S.exports.Client=sM;S.exports.Pool=nM;S.exports.BalancedPool=iM;S.exports.Agent=oM;S.exports.ProxyAgent=aM;S.exports.EnvHttpProxyAgent=cM;S.exports.RetryAgent=gM;S.exports.RetryHandler=BM;S.exports.DecoratorHandler=CM;S.exports.RedirectHandler=dM;S.exports.createRedirectInterceptor=fM;S.exports.interceptors={redirect:UB(),retry:LB(),dump:xB(),dns:GB()};S.exports.buildConnector=lM;S.exports.errors=S0;S.exports.util={parseHeaders:Ni.parseHeaders,headerNameToString:Ni.headerNameToString};function ys(A){return(e,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new Fi("invalid url");if(t!=null&&typeof t!="object")throw new Fi("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Fi("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),e=new URL(Ni.parseOrigin(e).origin+i)}else t||(t=typeof e=="object"?e:{}),e=Ni.parseURL(e);let{agent:s,dispatcher:n=U0()}=t;if(s)throw new Fi("unsupported opts.agent. Did you mean opts.client?");return A.call(n,{...t,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}S.exports.setGlobalDispatcher=IM;S.exports.getGlobalDispatcher=U0;var mM=as().fetch;S.exports.fetch=async function(e,t=void 0){try{return await mM(e,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};S.exports.Headers=ut().Headers;S.exports.Response=is().Response;S.exports.Request=gr().Request;S.exports.FormData=Tr().FormData;S.exports.File=globalThis.File??require("node:buffer").File;S.exports.FileReader=AC().FileReader;var{setGlobalOrigin:pM,getGlobalOrigin:yM}=Vo();S.exports.setGlobalOrigin=pM;S.exports.getGlobalOrigin=yM;var{CacheStorage:wM}=gC(),{kConstruct:DM}=gi();S.exports.caches=new wM(DM);var{deleteCookie:RM,getCookies:bM,getSetCookies:kM,setCookie:FM}=pC();S.exports.deleteCookie=RM;S.exports.getCookies=bM;S.exports.getSetCookies=kM;S.exports.setCookie=FM;var{parseMIMEType:NM,serializeAMimeType:SM}=pe();S.exports.parseMIMEType=NM;S.exports.serializeAMimeType=SM;var{CloseEvent:UM,ErrorEvent:MM,MessageEvent:LM}=Br();S.exports.WebSocket=B0().WebSocket;S.exports.CloseEvent=UM;S.exports.ErrorEvent=MM;S.exports.MessageEvent=LM;S.exports.request=ys(pr.request);S.exports.stream=ys(pr.stream);S.exports.pipeline=ys(pr.pipeline);S.exports.connect=ys(pr.connect);S.exports.upgrade=ys(pr.upgrade);S.exports.MockClient=QM;S.exports.MockPool=hM;S.exports.MockAgent=EM;S.exports.mockErrors=uM;var{EventSource:TM}=F0();S.exports.EventSource=TM});var yr=h(($G,nd)=>{"use strict";var hL="2.0.0",uL=Number.MAX_SAFE_INTEGER||9007199254740991,BL=16,IL=250,CL=["major","premajor","minor","preminor","patch","prepatch","prerelease"];nd.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:BL,MAX_SAFE_BUILD_LENGTH:IL,MAX_SAFE_INTEGER:uL,RELEASE_TYPES:CL,SEMVER_SPEC_VERSION:hL,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Rs=h((eY,id)=>{"use strict";var dL=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...A)=>console.error("SEMVER",...A):()=>{};id.exports=dL});var wr=h((uA,od)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:yg,MAX_SAFE_BUILD_LENGTH:fL,MAX_LENGTH:mL}=yr(),pL=Rs();uA=od.exports={};var yL=uA.re=[],wL=uA.safeRe=[],p=uA.src=[],DL=uA.safeSrc=[],y=uA.t={},RL=0,wg="[a-zA-Z0-9-]",bL=[["\\s",1],["\\d",mL],[wg,fL]],kL=A=>{for(let[e,t]of bL)A=A.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return A},L=(A,e,t)=>{let r=kL(e),s=RL++;pL(A,s,e),y[A]=s,p[s]=e,DL[s]=r,yL[s]=new RegExp(e,t?"g":void 0),wL[s]=new RegExp(r,t?"g":void 0)};L("NUMERICIDENTIFIER","0|[1-9]\\d*");L("NUMERICIDENTIFIERLOOSE","\\d+");L("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${wg}*`);L("MAINVERSION",`(${p[y.NUMERICIDENTIFIER]})\\.(${p[y.NUMERICIDENTIFIER]})\\.(${p[y.NUMERICIDENTIFIER]})`);L("MAINVERSIONLOOSE",`(${p[y.NUMERICIDENTIFIERLOOSE]})\\.(${p[y.NUMERICIDENTIFIERLOOSE]})\\.(${p[y.NUMERICIDENTIFIERLOOSE]})`);L("PRERELEASEIDENTIFIER",`(?:${p[y.NONNUMERICIDENTIFIER]}|${p[y.NUMERICIDENTIFIER]})`);L("PRERELEASEIDENTIFIERLOOSE",`(?:${p[y.NONNUMERICIDENTIFIER]}|${p[y.NUMERICIDENTIFIERLOOSE]})`);L("PRERELEASE",`(?:-(${p[y.PRERELEASEIDENTIFIER]}(?:\\.${p[y.PRERELEASEIDENTIFIER]})*))`);L("PRERELEASELOOSE",`(?:-?(${p[y.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${p[y.PRERELEASEIDENTIFIERLOOSE]})*))`);L("BUILDIDENTIFIER",`${wg}+`);L("BUILD",`(?:\\+(${p[y.BUILDIDENTIFIER]}(?:\\.${p[y.BUILDIDENTIFIER]})*))`);L("FULLPLAIN",`v?${p[y.MAINVERSION]}${p[y.PRERELEASE]}?${p[y.BUILD]}?`);L("FULL",`^${p[y.FULLPLAIN]}$`);L("LOOSEPLAIN",`[v=\\s]*${p[y.MAINVERSIONLOOSE]}${p[y.PRERELEASELOOSE]}?${p[y.BUILD]}?`);L("LOOSE",`^${p[y.LOOSEPLAIN]}$`);L("GTLT","((?:<|>)?=?)");L("XRANGEIDENTIFIERLOOSE",`${p[y.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);L("XRANGEIDENTIFIER",`${p[y.NUMERICIDENTIFIER]}|x|X|\\*`);L("XRANGEPLAIN",`[v=\\s]*(${p[y.XRANGEIDENTIFIER]})(?:\\.(${p[y.XRANGEIDENTIFIER]})(?:\\.(${p[y.XRANGEIDENTIFIER]})(?:${p[y.PRERELEASE]})?${p[y.BUILD]}?)?)?`);L("XRANGEPLAINLOOSE",`[v=\\s]*(${p[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${p[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${p[y.XRANGEIDENTIFIERLOOSE]})(?:${p[y.PRERELEASELOOSE]})?${p[y.BUILD]}?)?)?`);L("XRANGE",`^${p[y.GTLT]}\\s*${p[y.XRANGEPLAIN]}$`);L("XRANGELOOSE",`^${p[y.GTLT]}\\s*${p[y.XRANGEPLAINLOOSE]}$`);L("COERCEPLAIN",`(^|[^\\d])(\\d{1,${yg}})(?:\\.(\\d{1,${yg}}))?(?:\\.(\\d{1,${yg}}))?`);L("COERCE",`${p[y.COERCEPLAIN]}(?:$|[^\\d])`);L("COERCEFULL",p[y.COERCEPLAIN]+`(?:${p[y.PRERELEASE]})?(?:${p[y.BUILD]})?(?:$|[^\\d])`);L("COERCERTL",p[y.COERCE],!0);L("COERCERTLFULL",p[y.COERCEFULL],!0);L("LONETILDE","(?:~>?)");L("TILDETRIM",`(\\s*)${p[y.LONETILDE]}\\s+`,!0);uA.tildeTrimReplace="$1~";L("TILDE",`^${p[y.LONETILDE]}${p[y.XRANGEPLAIN]}$`);L("TILDELOOSE",`^${p[y.LONETILDE]}${p[y.XRANGEPLAINLOOSE]}$`);L("LONECARET","(?:\\^)");L("CARETTRIM",`(\\s*)${p[y.LONECARET]}\\s+`,!0);uA.caretTrimReplace="$1^";L("CARET",`^${p[y.LONECARET]}${p[y.XRANGEPLAIN]}$`);L("CARETLOOSE",`^${p[y.LONECARET]}${p[y.XRANGEPLAINLOOSE]}$`);L("COMPARATORLOOSE",`^${p[y.GTLT]}\\s*(${p[y.LOOSEPLAIN]})$|^$`);L("COMPARATOR",`^${p[y.GTLT]}\\s*(${p[y.FULLPLAIN]})$|^$`);L("COMPARATORTRIM",`(\\s*)${p[y.GTLT]}\\s*(${p[y.LOOSEPLAIN]}|${p[y.XRANGEPLAIN]})`,!0);uA.comparatorTrimReplace="$1$2$3";L("HYPHENRANGE",`^\\s*(${p[y.XRANGEPLAIN]})\\s+-\\s+(${p[y.XRANGEPLAIN]})\\s*$`);L("HYPHENRANGELOOSE",`^\\s*(${p[y.XRANGEPLAINLOOSE]})\\s+-\\s+(${p[y.XRANGEPLAINLOOSE]})\\s*$`);L("STAR","(<|>)?=?\\s*\\*");L("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");L("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Mi=h((AY,ad)=>{"use strict";var FL=Object.freeze({loose:!0}),NL=Object.freeze({}),SL=A=>A?typeof A!="object"?FL:A:NL;ad.exports=SL});var Dg=h((tY,ld)=>{"use strict";var cd=/^[0-9]+$/,gd=(A,e)=>{if(typeof A=="number"&&typeof e=="number")return A===e?0:Agd(e,A);ld.exports={compareIdentifiers:gd,rcompareIdentifiers:UL}});var ge=h((rY,Ed)=>{"use strict";var Li=Rs(),{MAX_LENGTH:Qd,MAX_SAFE_INTEGER:Ti}=yr(),{safeRe:xi,t:vi}=wr(),ML=Mi(),{compareIdentifiers:Rg}=Dg(),LL=(A,e)=>{let t=e.split(".");if(t.length>A.length)return!1;for(let r=0;rQd)throw new TypeError(`version is longer than ${Qd} characters`);Li("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let r=e.trim().match(t.loose?xi[vi.LOOSE]:xi[vi.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Ti||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Ti||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Ti||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){let n=+s;if(n>=0&&ne.major?1:this.minore.minor?1:this.patche.patch?1:0}comparePre(e){if(e instanceof A||(e=new A(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let r=this.prerelease[t],s=e.prerelease[t];if(Li("prerelease compare",t,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return Rg(r,s)}while(++t)}compareBuild(e){e instanceof A||(e=new A(e,this.options));let t=0;do{let r=this.build[t],s=e.build[t];if(Li("build compare",t,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return Rg(r,s)}while(++t)}inc(e,t,r){if(e.startsWith("pre")){if(!t&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let s=`-${t}`.match(this.options.loose?xi[vi.PRERELEASELOOSE]:xi[vi.PRERELEASE]);if(!s||s[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,r),this.inc("pre",t,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,r),this.inc("pre",t,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let s=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[s];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(t===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(t){let n=[t,s];if(r===!1&&(n=[t]),LL(this.prerelease,t)){let i=this.prerelease[t.split(".").length];isNaN(i)&&(this.prerelease=n)}else this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ed.exports=bg});var $A=h((sY,ud)=>{"use strict";var hd=ge(),TL=(A,e,t=!1)=>{if(A instanceof hd)return A;try{return new hd(A,e)}catch(r){if(!t)return null;throw r}};ud.exports=TL});var Id=h((nY,Bd)=>{"use strict";var xL=$A(),vL=(A,e)=>{let t=xL(A,e);return t?t.version:null};Bd.exports=vL});var dd=h((iY,Cd)=>{"use strict";var qL=$A(),GL=(A,e)=>{let t=qL(A.trim().replace(/^[=v]+/,""),e);return t?t.version:null};Cd.exports=GL});var pd=h((oY,md)=>{"use strict";var fd=ge(),YL=(A,e,t,r,s)=>{typeof t=="string"&&(s=r,r=t,t=void 0);try{return new fd(A instanceof fd?A.version:A,t).inc(e,r,s).version}catch{return null}};md.exports=YL});var Dd=h((aY,wd)=>{"use strict";var yd=$A(),JL=(A,e)=>{let t=yd(A,null,!0),r=yd(e,null,!0),s=t.compare(r);if(s===0)return null;let n=s>0,i=n?t:r,o=n?r:t,a=!!i.prerelease.length;if(!!o.prerelease.length&&!a){if(!o.patch&&!o.minor)return"major";if(o.compareMain(i)===0)return o.minor&&!o.patch?"minor":"patch"}let l=a?"pre":"";return t.major!==r.major?l+"major":t.minor!==r.minor?l+"minor":t.patch!==r.patch?l+"patch":"prerelease"};wd.exports=JL});var bd=h((cY,Rd)=>{"use strict";var VL=ge(),HL=(A,e)=>new VL(A,e).major;Rd.exports=HL});var Fd=h((gY,kd)=>{"use strict";var OL=ge(),WL=(A,e)=>new OL(A,e).minor;kd.exports=WL});var Sd=h((lY,Nd)=>{"use strict";var PL=ge(),jL=(A,e)=>new PL(A,e).patch;Nd.exports=jL});var Md=h((QY,Ud)=>{"use strict";var _L=$A(),ZL=(A,e)=>{let t=_L(A,e);return t&&t.prerelease.length?t.prerelease:null};Ud.exports=ZL});var He=h((EY,Td)=>{"use strict";var Ld=ge(),KL=(A,e,t)=>new Ld(A,t).compare(new Ld(e,t));Td.exports=KL});var vd=h((hY,xd)=>{"use strict";var XL=He(),zL=(A,e,t)=>XL(e,A,t);xd.exports=zL});var Gd=h((uY,qd)=>{"use strict";var $L=He(),eT=(A,e)=>$L(A,e,!0);qd.exports=eT});var qi=h((BY,Jd)=>{"use strict";var Yd=ge(),AT=(A,e,t)=>{let r=new Yd(A,t),s=new Yd(e,t);return r.compare(s)||r.compareBuild(s)};Jd.exports=AT});var Hd=h((IY,Vd)=>{"use strict";var tT=qi(),rT=(A,e)=>A.sort((t,r)=>tT(t,r,e));Vd.exports=rT});var Wd=h((CY,Od)=>{"use strict";var sT=qi(),nT=(A,e)=>A.sort((t,r)=>sT(r,t,e));Od.exports=nT});var bs=h((dY,Pd)=>{"use strict";var iT=He(),oT=(A,e,t)=>iT(A,e,t)>0;Pd.exports=oT});var Gi=h((fY,jd)=>{"use strict";var aT=He(),cT=(A,e,t)=>aT(A,e,t)<0;jd.exports=cT});var kg=h((mY,_d)=>{"use strict";var gT=He(),lT=(A,e,t)=>gT(A,e,t)===0;_d.exports=lT});var Fg=h((pY,Zd)=>{"use strict";var QT=He(),ET=(A,e,t)=>QT(A,e,t)!==0;Zd.exports=ET});var Yi=h((yY,Kd)=>{"use strict";var hT=He(),uT=(A,e,t)=>hT(A,e,t)>=0;Kd.exports=uT});var Ji=h((wY,Xd)=>{"use strict";var BT=He(),IT=(A,e,t)=>BT(A,e,t)<=0;Xd.exports=IT});var Ng=h((DY,zd)=>{"use strict";var CT=kg(),dT=Fg(),fT=bs(),mT=Yi(),pT=Gi(),yT=Ji(),wT=(A,e,t,r)=>{switch(e){case"===":return typeof A=="object"&&(A=A.version),typeof t=="object"&&(t=t.version),A===t;case"!==":return typeof A=="object"&&(A=A.version),typeof t=="object"&&(t=t.version),A!==t;case"":case"=":case"==":return CT(A,t,r);case"!=":return dT(A,t,r);case">":return fT(A,t,r);case">=":return mT(A,t,r);case"<":return pT(A,t,r);case"<=":return yT(A,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};zd.exports=wT});var ef=h((RY,$d)=>{"use strict";var DT=ge(),RT=$A(),{safeRe:Vi,t:Hi}=wr(),bT=(A,e)=>{if(A instanceof DT)return A;if(typeof A=="number"&&(A=String(A)),typeof A!="string")return null;e=e||{};let t=null;if(!e.rtl)t=A.match(e.includePrerelease?Vi[Hi.COERCEFULL]:Vi[Hi.COERCE]);else{let a=e.includePrerelease?Vi[Hi.COERCERTLFULL]:Vi[Hi.COERCERTL],c;for(;(c=a.exec(A))&&(!t||t.index+t[0].length!==A.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),a.lastIndex=c.index+c[1].length+c[2].length;a.lastIndex=-1}if(t===null)return null;let r=t[2],s=t[3]||"0",n=t[4]||"0",i=e.includePrerelease&&t[5]?`-${t[5]}`:"",o=e.includePrerelease&&t[6]?`+${t[6]}`:"";return RT(`${r}.${s}.${n}${i}${o}`,e)};$d.exports=bT});var tf=h((bY,Af)=>{"use strict";var kT=$A(),FT=yr(),NT=ge(),ST=(A,e,t)=>{if(!FT.RELEASE_TYPES.includes(e))return null;let r=UT(A,t);return r&&MT(r,e)},UT=(A,e)=>{let t=A instanceof NT?A.version:A;return kT(t,e)},MT=(A,e)=>{if(LT(e))return A.version;switch(A.prerelease=[],e){case"major":A.minor=0,A.patch=0;break;case"minor":A.patch=0;break}return A.format()},LT=A=>A.startsWith("pre");Af.exports=ST});var sf=h((kY,rf)=>{"use strict";var Sg=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let s=this.map.keys().next().value;this.delete(s)}this.map.set(e,t)}return this}};rf.exports=Sg});var Oe=h((FY,cf)=>{"use strict";var TT=/\s+/g,Ug=class A{constructor(e,t){if(t=vT(t),e instanceof A)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new A(e.raw,t);if(e instanceof Mg)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(TT," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(s=>!of(s[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let s of this.set)if(s.length===1&&PT(s[0])){this.set=[s];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e0&&(this.formatted+="||");let t=this.set[e];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=t[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(WT,"");let r=((this.options.includePrerelease&&HT)|(this.options.loose&&OT))+":"+e,s=nf.get(r);if(s)return s;let n=this.options.loose,i=n?de[le.HYPHENRANGELOOSE]:de[le.HYPHENRANGE];e=e.replace(i,tx(this.options.includePrerelease)),Z("hyphen replace",e),e=e.replace(de[le.COMPARATORTRIM],YT),Z("comparator trim",e),e=e.replace(de[le.TILDETRIM],JT),Z("tilde trim",e),e=e.replace(de[le.CARETTRIM],VT),Z("caret trim",e);let o=e.split(" ").map(g=>jT(g,this.options)).join(" ").split(/\s+/).map(g=>Ax(g,this.options));n&&(o=o.filter(g=>(Z("loose invalid filter",g,this.options),!!g.match(de[le.COMPARATORLOOSE])))),Z("range list",o);let a=new Map,c=o.map(g=>new Mg(g,this.options));for(let g of c){if(of(g))return[g];a.set(g.value,g)}a.size>1&&a.has("")&&a.delete("");let l=[...a.values()];return nf.set(r,l),l}intersects(e,t){if(!(e instanceof A))throw new TypeError("a Range is required");return this.set.some(r=>af(r,t)&&e.set.some(s=>af(s,t)&&r.every(n=>s.every(i=>n.intersects(i,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new qT(e,this.options)}catch{return!1}for(let t=0;tA.value==="<0.0.0-0",PT=A=>A.value==="",af=(A,e)=>{let t=!0,r=A.slice(),s=r.pop();for(;t&&r.length;)t=r.every(n=>s.intersects(n,e)),s=r.pop();return t},jT=(A,e)=>(A=A.replace(de[le.BUILD],""),Z("comp",A,e),A=KT(A,e),Z("caret",A),A=_T(A,e),Z("tildes",A),A=zT(A,e),Z("xrange",A),A=ex(A,e),Z("stars",A),A),fe=A=>!A||A.toLowerCase()==="x"||A==="*",_T=(A,e)=>A.trim().split(/\s+/).map(t=>ZT(t,e)).join(" "),ZT=(A,e)=>{let t=e.loose?de[le.TILDELOOSE]:de[le.TILDE];return A.replace(t,(r,s,n,i,o)=>{Z("tilde",A,r,s,n,i,o);let a;return fe(s)?a="":fe(n)?a=`>=${s}.0.0 <${+s+1}.0.0-0`:fe(i)?a=`>=${s}.${n}.0 <${s}.${+n+1}.0-0`:o?(Z("replaceTilde pr",o),a=`>=${s}.${n}.${i}-${o} <${s}.${+n+1}.0-0`):a=`>=${s}.${n}.${i} <${s}.${+n+1}.0-0`,Z("tilde return",a),a})},KT=(A,e)=>A.trim().split(/\s+/).map(t=>XT(t,e)).join(" "),XT=(A,e)=>{Z("caret",A,e);let t=e.loose?de[le.CARETLOOSE]:de[le.CARET],r=e.includePrerelease?"-0":"";return A.replace(t,(s,n,i,o,a)=>{Z("caret",A,s,n,i,o,a);let c;return fe(n)?c="":fe(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:fe(o)?n==="0"?c=`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:c=`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:a?(Z("replaceCaret pr",a),n==="0"?i==="0"?c=`>=${n}.${i}.${o}-${a} <${n}.${i}.${+o+1}-0`:c=`>=${n}.${i}.${o}-${a} <${n}.${+i+1}.0-0`:c=`>=${n}.${i}.${o}-${a} <${+n+1}.0.0-0`):(Z("no pr"),n==="0"?i==="0"?c=`>=${n}.${i}.${o} <${n}.${i}.${+o+1}-0`:c=`>=${n}.${i}.${o} <${n}.${+i+1}.0-0`:c=`>=${n}.${i}.${o} <${+n+1}.0.0-0`),Z("caret return",c),c})},zT=(A,e)=>(Z("replaceXRanges",A,e),A.split(/\s+/).map(t=>$T(t,e)).join(" ")),$T=(A,e)=>{A=A.trim();let t=e.loose?de[le.XRANGELOOSE]:de[le.XRANGE];return A.replace(t,(r,s,n,i,o,a)=>{Z("xRange",A,r,s,n,i,o,a);let c=fe(n),l=c||fe(i),g=l||fe(o),Q=g;return s==="="&&Q&&(s=""),a=e.includePrerelease?"-0":"",c?s===">"||s==="<"?r="<0.0.0-0":r="*":s&&Q?(l&&(i=0),o=0,s===">"?(s=">=",l?(n=+n+1,i=0,o=0):(i=+i+1,o=0)):s==="<="&&(s="<",l?n=+n+1:i=+i+1),s==="<"&&(a="-0"),r=`${s+n}.${i}.${o}${a}`):l?r=`>=${n}.0.0${a} <${+n+1}.0.0-0`:g&&(r=`>=${n}.${i}.0${a} <${n}.${+i+1}.0-0`),Z("xRange return",r),r})},ex=(A,e)=>(Z("replaceStars",A,e),A.trim().replace(de[le.STAR],"")),Ax=(A,e)=>(Z("replaceGTE0",A,e),A.trim().replace(de[e.includePrerelease?le.GTE0PRE:le.GTE0],"")),tx=A=>(e,t,r,s,n,i,o,a,c,l,g,Q)=>(fe(r)?t="":fe(s)?t=`>=${r}.0.0${A?"-0":""}`:fe(n)?t=`>=${r}.${s}.0${A?"-0":""}`:i?t=`>=${t}`:t=`>=${t}${A?"-0":""}`,fe(c)?a="":fe(l)?a=`<${+c+1}.0.0-0`:fe(g)?a=`<${c}.${+l+1}.0-0`:Q?a=`<=${c}.${l}.${g}-${Q}`:A?a=`<${c}.${l}.${+g+1}-0`:a=`<=${a}`,`${t} ${a}`.trim()),rx=(A,e,t)=>{for(let r=0;r0){let s=A[r].semver;if(s.major===e.major&&s.minor===e.minor&&s.patch===e.patch)return!0}return!1}return!0}});var ks=h((NY,uf)=>{"use strict";var Fs=Symbol("SemVer ANY"),xg=class A{static get ANY(){return Fs}constructor(e,t){if(t=gf(t),e instanceof A){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Tg("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Fs?this.value="":this.value=this.operator+this.semver.version,Tg("comp",this)}parse(e){let t=this.options.loose?lf[Qf.COMPARATORLOOSE]:lf[Qf.COMPARATOR],r=e.match(t);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new Ef(r[2],this.options.loose):this.semver=Fs}toString(){return this.value}test(e){if(Tg("Comparator.test",e,this.options.loose),this.semver===Fs||e===Fs)return!0;if(typeof e=="string")try{e=new Ef(e,this.options)}catch{return!1}return Lg(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof A))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new hf(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new hf(this.value,t).test(e.semver):(t=gf(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Lg(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Lg(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};uf.exports=xg;var gf=Mi(),{safeRe:lf,t:Qf}=wr(),Lg=Ng(),Tg=Rs(),Ef=ge(),hf=Oe()});var Ns=h((SY,Bf)=>{"use strict";var sx=Oe(),nx=(A,e,t)=>{try{e=new sx(e,t)}catch{return!1}return e.test(A)};Bf.exports=nx});var Cf=h((UY,If)=>{"use strict";var ix=Oe(),ox=(A,e)=>new ix(A,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));If.exports=ox});var ff=h((MY,df)=>{"use strict";var ax=ge(),cx=Oe(),gx=(A,e,t)=>{let r=null,s=null,n=null;try{n=new cx(e,t)}catch{return null}return A.forEach(i=>{n.test(i)&&(!r||s.compare(i)===-1)&&(r=i,s=new ax(r,t))}),r};df.exports=gx});var pf=h((LY,mf)=>{"use strict";var lx=ge(),Qx=Oe(),Ex=(A,e,t)=>{let r=null,s=null,n=null;try{n=new Qx(e,t)}catch{return null}return A.forEach(i=>{n.test(i)&&(!r||s.compare(i)===1)&&(r=i,s=new lx(r,t))}),r};mf.exports=Ex});var Df=h((TY,wf)=>{"use strict";var vg=ge(),hx=Oe(),yf=bs(),ux=(A,e)=>{A=new hx(A,e);let t=new vg("0.0.0");if(A.test(t)||(t=new vg("0.0.0-0"),A.test(t)))return t;t=null;for(let r=0;r{let o=new vg(i.semver.version);switch(i.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!n||yf(o,n))&&(n=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),n&&(!t||yf(t,n))&&(t=n)}return t&&A.test(t)?t:null};wf.exports=ux});var bf=h((xY,Rf)=>{"use strict";var Bx=Oe(),Ix=(A,e)=>{try{return new Bx(A,e).range||"*"}catch{return null}};Rf.exports=Ix});var Oi=h((vY,Sf)=>{"use strict";var Cx=ge(),Nf=ks(),{ANY:dx}=Nf,fx=Oe(),mx=Ns(),kf=bs(),Ff=Gi(),px=Ji(),yx=Yi(),wx=(A,e,t,r)=>{A=new Cx(A,r),e=new fx(e,r);let s,n,i,o,a;switch(t){case">":s=kf,n=px,i=Ff,o=">",a=">=";break;case"<":s=Ff,n=yx,i=kf,o="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(mx(A,e,r))return!1;for(let c=0;c{E.semver===dx&&(E=new Nf(">=0.0.0")),g=g||E,Q=Q||E,s(E.semver,g.semver,r)?g=E:i(E.semver,Q.semver,r)&&(Q=E)}),g.operator===o||g.operator===a||(!Q.operator||Q.operator===o)&&n(A,Q.semver))return!1;if(Q.operator===a&&i(A,Q.semver))return!1}return!0};Sf.exports=wx});var Mf=h((qY,Uf)=>{"use strict";var Dx=Oi(),Rx=(A,e,t)=>Dx(A,e,">",t);Uf.exports=Rx});var Tf=h((GY,Lf)=>{"use strict";var bx=Oi(),kx=(A,e,t)=>bx(A,e,"<",t);Lf.exports=kx});var qf=h((YY,vf)=>{"use strict";var xf=Oe(),Fx=(A,e,t)=>(A=new xf(A,t),e=new xf(e,t),A.intersects(e,t));vf.exports=Fx});var Yf=h((JY,Gf)=>{"use strict";var Nx=Ns(),Sx=He();Gf.exports=(A,e,t)=>{let r=[],s=null,n=null,i=A.sort((l,g)=>Sx(l,g,t));for(let l of i)Nx(l,e,t)?(n=l,s||(s=l)):(n&&r.push([s,n]),n=null,s=null);s&&r.push([s,null]);let o=[];for(let[l,g]of r)l===g?o.push(l):!g&&l===i[0]?o.push("*"):g?l===i[0]?o.push(`<=${g}`):o.push(`${l} - ${g}`):o.push(`>=${l}`);let a=o.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return a.length{"use strict";var Jf=Oe(),Yg=ks(),{ANY:qg}=Yg,Gg=Ns(),Jg=He(),Ux=(A,e,t={})=>{if(A===e)return!0;A=new Jf(A,t),e=new Jf(e,t);let r=!1;e:for(let s of A.set){for(let n of e.set){let i=Lx(s,n,t);if(r=r||i!==null,i)continue e}if(r)return!1}return!0},Mx=[new Yg(">=0.0.0-0")],Vf=[new Yg(">=0.0.0")],Lx=(A,e,t)=>{if(A===e)return!0;if(A.length===1&&A[0].semver===qg){if(e.length===1&&e[0].semver===qg)return!0;t.includePrerelease?A=Mx:A=Vf}if(e.length===1&&e[0].semver===qg){if(t.includePrerelease)return!0;e=Vf}let r=new Set,s,n;for(let E of A)E.operator===">"||E.operator===">="?s=Hf(s,E,t):E.operator==="<"||E.operator==="<="?n=Of(n,E,t):r.add(E.semver);if(r.size>1)return null;let i;if(s&&n){if(i=Jg(s.semver,n.semver,t),i>0)return null;if(i===0&&(s.operator!==">="||n.operator!=="<="))return null}for(let E of r){if(s&&!Gg(E,String(s),t)||n&&!Gg(E,String(n),t))return null;for(let B of e)if(!Gg(E,String(B),t))return!1;return!0}let o,a,c,l,g=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1,Q=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1;g&&g.prerelease.length===1&&n.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let E of e){if(l=l||E.operator===">"||E.operator===">=",c=c||E.operator==="<"||E.operator==="<=",s){if(Q&&E.semver.prerelease&&E.semver.prerelease.length&&E.semver.major===Q.major&&E.semver.minor===Q.minor&&E.semver.patch===Q.patch&&(Q=!1),E.operator===">"||E.operator===">="){if(o=Hf(s,E,t),o===E&&o!==s)return!1}else if(s.operator===">="&&!E.test(s.semver))return!1}if(n){if(g&&E.semver.prerelease&&E.semver.prerelease.length&&E.semver.major===g.major&&E.semver.minor===g.minor&&E.semver.patch===g.patch&&(g=!1),E.operator==="<"||E.operator==="<="){if(a=Of(n,E,t),a===E&&a!==n)return!1}else if(n.operator==="<="&&!E.test(n.semver))return!1}if(!E.operator&&(n||s)&&i!==0)return!1}return!(s&&c&&!n&&i!==0||n&&l&&!s&&i!==0||Q||g)},Hf=(A,e,t)=>{if(!A)return e;let r=Jg(A.semver,e.semver,t);return r>0?A:r<0||e.operator===">"&&A.operator===">="?e:A},Of=(A,e,t)=>{if(!A)return e;let r=Jg(A.semver,e.semver,t);return r<0?A:r>0||e.operator==="<"&&A.operator==="<="?e:A};Wf.exports=Ux});var Kf=h((HY,Zf)=>{"use strict";var Vg=wr(),jf=yr(),Tx=ge(),_f=Dg(),xx=$A(),vx=Id(),qx=dd(),Gx=pd(),Yx=Dd(),Jx=bd(),Vx=Fd(),Hx=Sd(),Ox=Md(),Wx=He(),Px=vd(),jx=Gd(),_x=qi(),Zx=Hd(),Kx=Wd(),Xx=bs(),zx=Gi(),$x=kg(),ev=Fg(),Av=Yi(),tv=Ji(),rv=Ng(),sv=ef(),nv=tf(),iv=ks(),ov=Oe(),av=Ns(),cv=Cf(),gv=ff(),lv=pf(),Qv=Df(),Ev=bf(),hv=Oi(),uv=Mf(),Bv=Tf(),Iv=qf(),Cv=Yf(),dv=Pf();Zf.exports={parse:xx,valid:vx,clean:qx,inc:Gx,diff:Yx,major:Jx,minor:Vx,patch:Hx,prerelease:Ox,compare:Wx,rcompare:Px,compareLoose:jx,compareBuild:_x,sort:Zx,rsort:Kx,gt:Xx,lt:zx,eq:$x,neq:ev,gte:Av,lte:tv,cmp:rv,coerce:sv,truncate:nv,Comparator:iv,Range:ov,satisfies:av,toComparators:cv,maxSatisfying:gv,minSatisfying:lv,minVersion:Qv,validRange:Ev,outside:hv,gtr:uv,ltr:Bv,intersects:Iv,simplifyRange:Cv,subset:dv,SemVer:Tx,re:Vg.re,src:Vg.src,tokens:Vg.t,SEMVER_SPEC_VERSION:jf.SEMVER_SPEC_VERSION,RELEASE_TYPES:jf.RELEASE_TYPES,compareIdentifiers:_f.compareIdentifiers,rcompareIdentifiers:_f.rcompareIdentifiers}});var wv={};Cm(wv,{run:()=>Qm});module.exports=dm(wv);var zg=tA(require("os"),1);function UA(A){return A==null?"":typeof A=="string"||A instanceof String?A:JSON.stringify(A)}function Kg(A){return Object.keys(A).length?{title:A.title,file:A.file,line:A.startLine,endLine:A.endLine,col:A.startColumn,endColumn:A.endColumn}:{}}function ji(A,e,t){let r=new Pi(A,e,t);process.stdout.write(r.toString()+zg.EOL)}var Xg="::",Pi=class{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r}toString(){let e=Xg+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let s=this.properties[r];s&&(t?t=!1:e+=",",e+=`${r}=${mm(s)}`)}}return e+=`${Xg}${fm(this.message)}`,e}};function fm(A){return UA(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function mm(A){return UA(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var $g=tA(require("crypto"),1),Ls=tA(require("fs"),1),Ms=tA(require("os"),1);function el(A,e){let t=process.env[`GITHUB_${A}`];if(!t)throw new Error(`Unable to find environment variable for file command ${A}`);if(!Ls.existsSync(t))throw new Error(`Missing file at path: ${t}`);Ls.appendFileSync(t,`${UA(e)}${Ms.EOL}`,{encoding:"utf8"})}function Al(A,e){let t=`ghadelimiter_${$g.randomUUID()}`,r=UA(e);if(A.includes(t))throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`);if(r.includes(t))throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`);return`${A}<<${t}${Ms.EOL}${r}${Ms.EOL}${t}`}var G0=tA(require("os"),1);var Si=tA(ol(),1),xM=tA(M0(),1);var EA;(function(A){A[A.OK=200]="OK",A[A.MultipleChoices=300]="MultipleChoices",A[A.MovedPermanently=301]="MovedPermanently",A[A.ResourceMoved=302]="ResourceMoved",A[A.SeeOther=303]="SeeOther",A[A.NotModified=304]="NotModified",A[A.UseProxy=305]="UseProxy",A[A.SwitchProxy=306]="SwitchProxy",A[A.TemporaryRedirect=307]="TemporaryRedirect",A[A.PermanentRedirect=308]="PermanentRedirect",A[A.BadRequest=400]="BadRequest",A[A.Unauthorized=401]="Unauthorized",A[A.PaymentRequired=402]="PaymentRequired",A[A.Forbidden=403]="Forbidden",A[A.NotFound=404]="NotFound",A[A.MethodNotAllowed=405]="MethodNotAllowed",A[A.NotAcceptable=406]="NotAcceptable",A[A.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",A[A.RequestTimeout=408]="RequestTimeout",A[A.Conflict=409]="Conflict",A[A.Gone=410]="Gone",A[A.TooManyRequests=429]="TooManyRequests",A[A.InternalServerError=500]="InternalServerError",A[A.NotImplemented=501]="NotImplemented",A[A.BadGateway=502]="BadGateway",A[A.ServiceUnavailable=503]="ServiceUnavailable",A[A.GatewayTimeout=504]="GatewayTimeout"})(EA||(EA={}));var L0;(function(A){A.Accept="accept",A.ContentType="content-type"})(L0||(L0={}));var T0;(function(A){A.ApplicationJson="application/json"})(T0||(T0={}));var Nq=[EA.MovedPermanently,EA.ResourceMoved,EA.SeeOther,EA.TemporaryRedirect,EA.PermanentRedirect],Sq=[EA.BadGateway,EA.ServiceUnavailable,EA.GatewayTimeout];var v0=require("os"),ws=require("fs"),Ig=function(A,e,t,r){function s(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function o(l){try{c(r.next(l))}catch(g){i(g)}}function a(l){try{c(r.throw(l))}catch(g){i(g)}}function c(l){l.done?n(l.value):s(l.value).then(o,a)}c((r=r.apply(A,e||[])).next())})},{access:vM,appendFile:qM,writeFile:GM}=ws.promises,x0="GITHUB_STEP_SUMMARY";var Cg=class{constructor(){this._buffer=""}filePath(){return Ig(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let e=process.env[x0];if(!e)throw new Error(`Unable to find environment variable for $${x0}. Check if your runtime environment supports job summaries.`);try{yield vM(e,ws.constants.R_OK|ws.constants.W_OK)}catch{throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}return this._filePath=e,this._filePath})}wrap(e,t,r={}){let s=Object.entries(r).map(([n,i])=>` ${n}="${i}"`).join("");return t?`<${e}${s}>${t}`:`<${e}${s}>`}write(e){return Ig(this,void 0,void 0,function*(){let t=!!e?.overwrite,r=yield this.filePath();return yield(t?GM:qM)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return Ig(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this}addEOL(){return this.addRaw(v0.EOL)}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),s=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(s).addEOL()}addList(e,t=!1){let r=t?"ol":"ul",s=e.map(i=>this.wrap("li",i)).join(""),n=this.wrap(r,s);return this.addRaw(n).addEOL()}addTable(e){let t=e.map(s=>{let n=s.map(i=>{if(typeof i=="string")return this.wrap("td",i);let{header:o,data:a,colspan:c,rowspan:l}=i,g=o?"th":"td",Q=Object.assign(Object.assign({},c&&{colspan:c}),l&&{rowspan:l});return this.wrap(g,a,Q)}).join("");return this.wrap("tr",n)}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){let{width:s,height:n}=r||{},i=Object.assign(Object.assign({},s&&{width:s}),n&&{height:n}),o=this.wrap("img",null,Object.assign({src:e,alt:t},i));return this.addRaw(o).addEOL()}addHeading(e,t){let r=`h${t}`,s=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",n=this.wrap(s,e);return this.addRaw(n).addEOL()}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),s=this.wrap("blockquote",e,r);return this.addRaw(s).addEOL()}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}},Vq=new Cg;var dg=tA(require("os"),1);var Ui=tA(require("fs"),1);var{chmod:YM,copyFile:JM,lstat:VM,mkdir:HM,open:Wq,readdir:OM,rename:WM,rm:PM,rmdir:Pq,stat:jM,symlink:_M,unlink:ZM}=Ui.promises,KM=process.platform==="win32";var jq=Ui.constants.O_RDONLY;var zq=process.platform==="win32";var tG=dg.default.platform(),rG=dg.default.arch();var fg;(function(A){A[A.Success=0]="Success",A[A.Failure=1]="Failure"})(fg||(fg={}));function yt(A,e){let t=process.env[`INPUT_${A.replace(/ /g,"_").toUpperCase()}`]||"";if(e&&e.required&&!t)throw new Error(`Input required and not supplied: ${A}`);return e&&e.trimWhitespace===!1?t:t.trim()}function Y0(A,e){if(process.env.GITHUB_OUTPUT||"")return el("OUTPUT",Al(A,e));process.stdout.write(G0.EOL),ji("set-output",{name:A},UA(e))}function J0(A){process.exitCode=fg.Failure,rL(A)}function rL(A,e={}){ji("error",Kg(e),A instanceof Error?A.toString():A)}var V0=(A,e)=>{if(e&&A!=="custom")throw new Error("`custom_versions` can only be used with kind `custom`");return!0};var mg={"currently-supported":!0,latest:!0,custom:!0,usable:!0,nightly:!0,recent:!0,all:!0};var H0=A=>{if(!(A in mg))throw new Error(`Invalid kind provided, supported kinds are: ${Object.keys(mg).join(", ")}`);return!0};var O0=(A,e=null)=>nL.reduce((t,r)=>r(A,e),!0),nL=[H0,V0];var pg={"mage-os":!0,"mage-os-minimal":!0,"magento-open-source":!0};var W0=A=>{if(!(A in pg))throw new Error(`Invalid project provided, supported projects are: ${Object.keys(pg).join(", ")}`);return!0};var Ds=A=>W0(A);var P0={"mage-os/project-community-edition:1.0.0":{magento:"mage-os/project-community-edition:1.0.0",upstream:"2.4.6-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2023-10-11T00:00:00+0000"},"mage-os/project-community-edition:1.0.1":{magento:"mage-os/project-community-edition:1.0.1",upstream:"2.4.6-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-11T00:00:00+0000",eol:"2024-07-17T00:00:00+0000"},"mage-os/project-community-edition:1.0.2":{magento:"mage-os/project-community-edition:1.0.2",upstream:"2.4.7-p1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-07-18T00:00:00+0000",eol:"2024-07-22T00:00:00+0000"},"mage-os/project-community-edition:1.0.3":{magento:"mage-os/project-community-edition:1.0.3",upstream:"2.4.7-p1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-07-23T00:00:00+0000",eol:"2024-08-19T00:00:00+0000"},"mage-os/project-community-edition:1.0.4":{magento:"mage-os/project-community-edition:1.0.4",upstream:"2.4.7-p2",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-08-20T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"mage-os/project-community-edition:1.0.5":{magento:"mage-os/project-community-edition:1.0.5",upstream:"2.4.7-p3",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-10-09T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"mage-os/project-community-edition:1.0.6":{magento:"mage-os/project-community-edition:1.0.6",upstream:"2.4.7-p4",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-02-12T00:00:00+0000",eol:"2025-04-07T00:00:00+0000"},"mage-os/project-community-edition:1.1.0":{magento:"mage-os/project-community-edition:1.1.0",upstream:"2.4.8",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-15T00:00:00+0000",eol:"2025-04-21T00:00:00+0000"},"mage-os/project-community-edition:1.1.1":{magento:"mage-os/project-community-edition:1.1.1",upstream:"2.4.8",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-22T00:00:00+0000",eol:"2025-06-16T00:00:00+0000"},"mage-os/project-community-edition:1.2.0":{magento:"mage-os/project-community-edition:1.2.0",upstream:"2.4.8-p1",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-17T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"mage-os/project-community-edition:1.3.0":{magento:"mage-os/project-community-edition:1.3.0",upstream:"2.4.8-p2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-08-13T00:00:00+0000",eol:"2025-09-08T00:00:00+0000"},"mage-os/project-community-edition:1.3.1":{magento:"mage-os/project-community-edition:1.3.1",upstream:"2.4.8-p2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-09-09T00:00:00+0000",eol:"2025-10-16T00:00:00+0000"},"mage-os/project-community-edition:2.0.0":{magento:"mage-os/project-community-edition:2.0.0",upstream:"2.4.8-p3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-10-16T00:00:00+0000",eol:"2026-01-20T00:00:00+0000"},"mage-os/project-community-edition:2.1.0":{magento:"mage-os/project-community-edition:2.1.0",upstream:"2.4.8-p3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-01-20T00:00:00+0000",eol:"2026-03-10T00:00:00+0000"},"mage-os/project-community-edition:2.2.0":{magento:"mage-os/project-community-edition:2.2.0",upstream:"2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-03-18T00:00:00+0000"},"mage-os/project-community-edition:2.2.1":{magento:"mage-os/project-community-edition:2.2.1",upstream:"2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-18T00:00:00+0000",eol:"2026-04-15T00:00:00+0000"},"mage-os/project-community-edition:2.2.2":{magento:"mage-os/project-community-edition:2.2.2",upstream:"2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",redis:"redis:7.2",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-04-15T00:00:00+0000",eol:"2026-05-13T00:00:00+0000"},"mage-os/project-community-edition:2.3.0":{magento:"mage-os/project-community-edition:2.3.0",upstream:"2.4.8-p5",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-05-13T00:00:00+0000",eol:"2026-05-19T00:00:00+0000"},"mage-os/project-community-edition:3.0.0":{magento:"mage-os/project-community-edition:3.0.0",upstream:"2.4.9",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var j0={"mage-os/project-minimal-edition:3.0.0":{magento:"mage-os/project-minimal-edition:3.0.0",upstream:"2.4.9",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var _0={"magento/project-community-edition:2.3.7-p3":{magento:"magento/project-community-edition:2.3.7-p3",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-04-12T00:00:00+0000",eol:"2022-08-09T00:00:00+0000"},"magento/project-community-edition:2.3.7-p4":{magento:"magento/project-community-edition:2.3.7-p4",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-08-09T00:00:00+0000",eol:"2022-09-30T00:00:00+0000"},"magento/project-community-edition:2.4.0":{magento:"magento/project-community-edition:2.4.0",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.6.2",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-07-28T00:00:00+0000",eol:"2020-10-15T00:00:00+0000"},"magento/project-community-edition:2.4.0-p1":{magento:"magento/project-community-edition:2.4.0-p1",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.6.2",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-10-15T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.1":{magento:"magento/project-community-edition:2.4.1",php:7.4,composer:1,mysql:"mysql:8.0.20",elasticsearch:"elasticsearch:7.7.1",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-10-15T00:00:00+0000",eol:"2021-02-09T00:00:00+0000"},"magento/project-community-edition:2.4.1-p1":{magento:"magento/project-community-edition:2.4.1-p1",php:7.4,composer:1,mysql:"mysql:8.0.20",elasticsearch:"elasticsearch:7.7.1",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-02-09T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.2":{magento:"magento/project-community-edition:2.4.2",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-02-09T00:00:00+0000",eol:"2021-05-11T00:00:00+0000"},"magento/project-community-edition:2.4.2-p1":{magento:"magento/project-community-edition:2.4.2-p1",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-05-11T00:00:00+0000",eol:"2021-08-10T00:00:00+0000"},"magento/project-community-edition:2.4.2-p2":{magento:"magento/project-community-edition:2.4.2-p2",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-08-10T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.3":{magento:"magento/project-community-edition:2.4.3",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-08-10T00:00:00+0000",eol:"2021-10-12T00:00:00+0000"},"magento/project-community-edition:2.4.3-p1":{magento:"magento/project-community-edition:2.4.3-p1",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-10-12T00:00:00+0000",eol:"2022-04-12T00:00:00+0000"},"magento/project-community-edition:2.4.3-p2":{magento:"magento/project-community-edition:2.4.3-p2",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-04-12T00:00:00+0000",eol:"2022-08-09T00:00:00+0000"},"magento/project-community-edition:2.4.3-p3":{magento:"magento/project-community-edition:2.4.3-p3",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-08-09T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.4":{magento:"magento/project-community-edition:2.4.4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-04-12T00:00:00+0000",eol:"2022-08-09T00:00:00+0000"},"magento/project-community-edition:2.4.4-p1":{magento:"magento/project-community-edition:2.4.4-p1",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-08-09T00:00:00+0000",eol:"2022-10-11T00:00:00+0000"},"magento/project-community-edition:2.4.4-p2":{magento:"magento/project-community-edition:2.4.4-p2",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-10-11T00:00:00+0000",eol:"2023-03-14T00:00:00+0000"},"magento/project-community-edition:2.4.4-p3":{magento:"magento/project-community-edition:2.4.4-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-03-14T00:00:00+0000",eol:"2023-06-13T00:00:00+0000"},"magento/project-community-edition:2.4.4-p4":{magento:"magento/project-community-edition:2.4.4-p4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-06-13T00:00:00+0000",eol:"2023-08-08T00:00:00+0000"},"magento/project-community-edition:2.4.4-p5":{magento:"magento/project-community-edition:2.4.4-p5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-08-08T00:00:00+0000",eol:"2023-10-10T00:00:00+0000"},"magento/project-community-edition:2.4.4-p6":{magento:"magento/project-community-edition:2.4.4-p6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2024-02-12T00:00:00+0000"},"magento/project-community-edition:2.4.4-p7":{magento:"magento/project-community-edition:2.4.4-p7",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-02-12T00:00:00+0000",eol:"2024-04-09T00:00:00+0000"},"magento/project-community-edition:2.4.4-p8":{magento:"magento/project-community-edition:2.4.4-p8",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.4-p9":{magento:"magento/project-community-edition:2.4.4-p9",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.4-p10":{magento:"magento/project-community-edition:2.4.4-p10",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.4-p11":{magento:"magento/project-community-edition:2.4.4-p11",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.4-p12":{magento:"magento/project-community-edition:2.4.4-p12",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.4-p13":{magento:"magento/project-community-edition:2.4.4-p13",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-04-24T00:00:00+0000"},"magento/project-community-edition:2.4.5":{magento:"magento/project-community-edition:2.4.5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-08-09T00:00:00+0000",eol:"2022-10-11T00:00:00+0000"},"magento/project-community-edition:2.4.5-p1":{magento:"magento/project-community-edition:2.4.5-p1",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-10-11T00:00:00+0000",eol:"2023-03-14T00:00:00+0000"},"magento/project-community-edition:2.4.5-p2":{magento:"magento/project-community-edition:2.4.5-p2",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-03-14T00:00:00+0000",eol:"2023-06-13T00:00:00+0000"},"magento/project-community-edition:2.4.5-p3":{magento:"magento/project-community-edition:2.4.5-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-06-13T00:00:00+0000",eol:"2023-08-08T00:00:00+0000"},"magento/project-community-edition:2.4.5-p4":{magento:"magento/project-community-edition:2.4.5-p4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-08-08T00:00:00+0000",eol:"2023-10-10T00:00:00+0000"},"magento/project-community-edition:2.4.5-p5":{magento:"magento/project-community-edition:2.4.5-p5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2024-02-12T00:00:00+0000"},"magento/project-community-edition:2.4.5-p6":{magento:"magento/project-community-edition:2.4.5-p6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-02-12T00:00:00+0000",eol:"2024-04-09T00:00:00+0000"},"magento/project-community-edition:2.4.5-p7":{magento:"magento/project-community-edition:2.4.5-p7",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.5-p8":{magento:"magento/project-community-edition:2.4.5-p8",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.5-p9":{magento:"magento/project-community-edition:2.4.5-p9",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.5-p10":{magento:"magento/project-community-edition:2.4.5-p10",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.5-p11":{magento:"magento/project-community-edition:2.4.5-p11",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.5-p12":{magento:"magento/project-community-edition:2.4.5-p12",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.28",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.5-p13":{magento:"magento/project-community-edition:2.4.5-p13",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.5-p14":{magento:"magento/project-community-edition:2.4.5-p14",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.6":{magento:"magento/project-community-edition:2.4.6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-03-14T00:00:00+0000",eol:"2023-06-13T00:00:00+0000"},"magento/project-community-edition:2.4.6-p1":{magento:"magento/project-community-edition:2.4.6-p1",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-06-13T00:00:00+0000",eol:"2023-08-08T00:00:00+0000"},"magento/project-community-edition:2.4.6-p2":{magento:"magento/project-community-edition:2.4.6-p2",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-08-08T00:00:00+0000",eol:"2023-10-10T00:00:00+0000"},"magento/project-community-edition:2.4.6-p3":{magento:"magento/project-community-edition:2.4.6-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2024-02-12T00:00:00+0000"},"magento/project-community-edition:2.4.6-p4":{magento:"magento/project-community-edition:2.4.6-p4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-02-12T00:00:00+0000",eol:"2024-04-09T00:00:00+0000"},"magento/project-community-edition:2.4.6-p5":{magento:"magento/project-community-edition:2.4.6-p5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.6-p6":{magento:"magento/project-community-edition:2.4.6-p6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.6-p7":{magento:"magento/project-community-edition:2.4.6-p7",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.6-p8":{magento:"magento/project-community-edition:2.4.6-p8",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.6-p9":{magento:"magento/project-community-edition:2.4.6-p9",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.6-p10":{magento:"magento/project-community-edition:2.4.6-p10",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.6-p11":{magento:"magento/project-community-edition:2.4.6-p11",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.6-p12":{magento:"magento/project-community-edition:2.4.6-p12",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.3",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-10-14T00:00:00+0000"},"magento/project-community-edition:2.4.6-p13":{magento:"magento/project-community-edition:2.4.6-p13",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.3",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-10-14T00:00:00+0000",eol:"2026-03-09T00:00:00+0000"},"magento/project-community-edition:2.4.6-p14":{magento:"magento/project-community-edition:2.4.6-p14",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.19.2",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.1-management",redis:"redis:7.2",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-07T00:00:00+0000"},"magento/project-community-edition:2.4.6-p15":{magento:"magento/project-community-edition:2.4.6-p15",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2026-08-11T00:00:00+0000"},"magento/project-community-edition:2.4.7":{magento:"magento/project-community-edition:2.4.7",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.7-p1":{magento:"magento/project-community-edition:2.4.7-p1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.7-p2":{magento:"magento/project-community-edition:2.4.7-p2",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.7-p3":{magento:"magento/project-community-edition:2.4.7-p3",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.7-p4":{magento:"magento/project-community-edition:2.4.7-p4",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.7-p5":{magento:"magento/project-community-edition:2.4.7-p5",php:8.3,composer:"2.9.8",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.7-p6":{magento:"magento/project-community-edition:2.4.7-p6",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.7-p7":{magento:"magento/project-community-edition:2.4.7-p7",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-10-14T00:00:00+0000"},"magento/project-community-edition:2.4.7-p8":{magento:"magento/project-community-edition:2.4.7-p8",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-10-14T00:00:00+0000",eol:"2026-03-09T00:00:00+0000"},"magento/project-community-edition:2.4.7-p9":{magento:"magento/project-community-edition:2.4.7-p9",php:8.3,composer:"2.9.8",mysql:"mariadb:10.11",elasticsearch:"elasticsearch:8.17.4",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.1-management",redis:"redis:7.2",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-07T00:00:00+0000"},"magento/project-community-edition:2.4.7-p10":{magento:"magento/project-community-edition:2.4.7-p10",php:8.3,composer:"2.9.8",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.19.15",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2027-05-31T00:00:00+0000"},"magento/project-community-edition:2.4.8":{magento:"magento/project-community-edition:2.4.8",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",elasticsearch:"elasticsearch:8.17.4",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",valkey:"valkey/valkey:8.0",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.8-p1":{magento:"magento/project-community-edition:2.4.8-p1",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.8-p2":{magento:"magento/project-community-edition:2.4.8-p2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-10-14T00:00:00+0000"},"magento/project-community-edition:2.4.8-p3":{magento:"magento/project-community-edition:2.4.8-p3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-10-14T00:00:00+0000",eol:"2026-03-09T00:00:00+0000"},"magento/project-community-edition:2.4.8-p4":{magento:"magento/project-community-edition:2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-07T00:00:00+0000"},"magento/project-community-edition:2.4.8-p5":{magento:"magento/project-community-edition:2.4.8-p5",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2028-05-31T00:00:00+0000"},"magento/project-community-edition:2.4.9":{magento:"magento/project-community-edition:2.4.9",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"}};var Z0={"mage-os/project-community-edition":{magento:"mage-os/project-community-edition",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-community-edition:next":{magento:"mage-os/project-community-edition:next",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-community-edition:>=1.0 <1.1":{magento:"mage-os/project-community-edition:>=1.0 <1.1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2025-04-07T00:00:00+0000"},"mage-os/project-community-edition:>=1.1 <1.2":{magento:"mage-os/project-community-edition:>=1.1 <1.2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-15T00:00:00+0000",eol:"2025-06-16T00:00:00+0000"},"mage-os/project-community-edition:>=1.2 <1.3":{magento:"mage-os/project-community-edition:>=1.2 <1.3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-17T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"mage-os/project-community-edition:>=1.3 <1.4":{magento:"mage-os/project-community-edition:>=1.2 <1.3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-08-13T00:00:00+0000",eol:"2025-10-16T00:00:00+0000"},"mage-os/project-community-edition:>=2.0 <2.1":{magento:"mage-os/project-community-edition:>=2.0 <2.1",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-10-16T00:00:00+0000",eol:"2026-01-20T00:00:00+0000"},"mage-os/project-community-edition:>=2.1 <2.2":{magento:"mage-os/project-community-edition:>=2.1 <2.2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-01-20T00:00:00+0000",eol:"2026-03-10T00:00:00+0000"},"mage-os/project-community-edition:>=2.2 <2.3":{magento:"mage-os/project-community-edition:>=2.2 <2.3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",redis:"redis:7.2",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-13T00:00:00+0000"},"mage-os/project-community-edition:>=2.3 <2.4":{magento:"mage-os/project-community-edition:>=2.3 <2.4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-05-13T00:00:00+0000",eol:"2026-05-19T00:00:00+0000"},"mage-os/project-community-edition:>=3.0 <3.1":{magento:"mage-os/project-community-edition:>=3.0 <3.1",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var K0={"mage-os/project-minimal-edition":{magento:"mage-os/project-minimal-edition",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-minimal-edition:next":{magento:"mage-os/project-minimal-edition:next",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-minimal-edition:>=3.0 <3.1":{magento:"mage-os/project-minimal-edition:>=3.0 <3.1",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var X0={"magento/project-community-edition:>=2.3 <2.4":{magento:"magento/project-community-edition:>=2.3 <2.4",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2018-11-28T00:00:00+0000",eol:"2022-09-30T00:00:00+0000"},"magento/project-community-edition:>=2.4.0 <2.4.1":{magento:"magento/project-community-edition:>=2.4.0 <2.4.1",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.6.2",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-07-28T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.1 <2.4.2":{magento:"magento/project-community-edition:>=2.4.1 <2.4.2",php:7.4,composer:1,mysql:"mysql:8.0.20",elasticsearch:"elasticsearch:7.7.1",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-10-15T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.2 <2.4.3":{magento:"magento/project-community-edition:>=2.4.2 <2.4.3",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-02-09T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.3 <2.4.4":{magento:"magento/project-community-edition:>=2.4.3 <2.4.4",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-08-10T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.4 <2.4.5":{magento:"magento/project-community-edition:>=2.4.4 <2.4.5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-04-24T00:00:00+0000"},"magento/project-community-edition:>=2.4.5 <2.4.6":{magento:"magento/project-community-edition:>=2.4.5 <2.4.6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.28",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-08-09T00:00:00+0000"},"magento/project-community-edition:>=2.4.6 <2.4.7":{magento:"magento/project-community-edition:>=2.4.6 <2.4.7",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2026-08-11T00:00:00+0000"},"magento/project-community-edition:>=2.4.7 <2.4.8":{magento:"magento/project-community-edition:>=2.4.7 <2.4.8",php:8.3,composer:"2.9.8",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.19.15",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2027-05-31T00:00:00+0000"},"magento/project-community-edition:>=2.4.8 <2.4.9":{magento:"magento/project-community-edition:>=2.4.8 <2.4.9",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2028-05-31T00:00:00+0000"},"magento/project-community-edition:>=2.4.9 <2.4.10":{magento:"magento/project-community-edition:>=2.4.9 <2.4.10",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"},"magento/project-community-edition":{magento:"magento/project-community-edition",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"},"magento/project-community-edition:next":{magento:"magento/project-community-edition:@alpha",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",valkey:"valkey/valkey:9",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"}};var z0={"mage-os":P0,"mage-os-minimal":j0,"magento-open-source":_0},$0={"mage-os":Z0,"mage-os-minimal":K0,"magento-open-source":X0},hA=A=>{if(Ds(A),z0[A]===void 0)throw new Error(`Project "${A}" has no individual version specifications`);return z0[A]},ed=A=>{if(Ds(A),$0[A]===void 0)throw new Error(`Project "${A}" has no composite version specifications`);return $0[A]};var zA=(A,e)=>{let t={...hA(A),...ed(A)};return e.reduce((r,s)=>{if(t[s]===void 0)throw new Error(`Unknown "${s}" version while computing matrix`);return{magento:[...r.magento,s],include:[...r.include,{...t[s],version:s.split(":")[1]??""}]}},{magento:[],include:[]})};var Ad={"mage-os":["mage-os/project-community-edition"],"mage-os-minimal":["mage-os/project-minimal-edition"],"magento-open-source":["magento/project-community-edition"]};var td={"mage-os":["mage-os/project-community-edition:next"],"mage-os-minimal":["mage-os/project-minimal-edition:next"],"magento-open-source":["magento/project-community-edition:next"]};var rd=(A=new Date)=>{let e=new Date(A);return e.setDate(e.getDate()-1),e};var sd=(A,e)=>{let t=hA(A);return Object.entries(t).filter(([,r])=>{let s=new Date(r.release);return s.setSeconds(s.getSeconds()+1),e>=s&&new Date(r.eol)>=e}).map(([r])=>r)};var Hg=tA(Kf()),fv={"magento/project-community-edition:2.4.2":"requires insecure composer <=2.1","magento/project-community-edition:2.4.2-p1":"requires insecure composer <=2.1","magento/project-community-edition:2.4.2-p2":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3-p1":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3-p2":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3-p3":"requires insecure composer <=2.1","mage-os/project-community-edition:2.2.1":"uninstallable due to webonyx/graphql-php security advisory"},Xf=A=>{let e=hA(A);return Object.entries(e).filter(([t,r])=>{let s=Hg.default.coerce(r.composer.toString());return!(s&&Hg.default.lt(s,"2.0.0")||t in fv)}).map(([t])=>t)};var zf=(A,e)=>{switch(A){case"https://nightly.mage-os.org":case"https://upstream-nightly.mage-os.org":return"@alpha";default:return"next"}};var Og=(A,e,t)=>A.replace(/(?!:)next$/,zf(e,t));var mv="next",$f=(A,e,t=new Date)=>{let r=new RegExp(mv+"$");return A.magento=A.magento.map(s=>s.match(r)?Og(s,e,t):s),A.include=A.include.map(s=>{if(!s.magento.match(r))return s;let n=Og(s.magento,e,t);return{...s,magento:n,version:n.split(":")[1]}}),A};var em=(A,e,t)=>{let r=/(?:(\d+)\s*y)?\s*(?:(\d+)\s*m)?\s*(?:(\d+)\s*d)?/i,s=t.match(r);if(!s)throw new Error(`Invalid duration string: ${t}`);let n=parseInt(s[1]||"0",10),i=parseInt(s[2]||"0",10),o=parseInt(s[3]||"0",10),a=hA(A);return Object.entries(a).filter(([,c])=>{let l=new Date(c.release);l.setSeconds(l.getSeconds()+1);let g=new Date(c.release);return g.setFullYear(g.getFullYear()+n),g.setMonth(g.getMonth()+i),g.setDate(g.getDate()+o),e>=l&&e<=g}).map(([c])=>c)};var Am=(A,e,t="",r="2y")=>{switch(A){case"latest":return zA(e,Ad[e]);case"currently-supported":return zA(e,sd(e,new Date));case"usable":return zA(e,Xf(e));case"nightly":return $f(zA(e,td[e]),"https://upstream-nightly.mage-os.org",rd());case"all":return zA(e,Object.keys(hA(e)));case"custom":return zA(e,t.split(","));case"recent":return zA(e,em(e,new Date,r));default:throw new Error(`Unreachable kind: ${A} discovered, please report to the maintainers.`)}};var tm={getConfig(A){return{image:A,env:{MYSQL_DATABASE:"magento_integration_tests",MYSQL_USER:"user",MYSQL_PASSWORD:"password",MYSQL_ROOT_PASSWORD:"rootpassword"},ports:["3306:3306"],options:'--health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3'}}},rm={getConfig(A){return{image:A,env:{"discovery.type":"single-node","xpack.security.enabled":"false","xpack.security.http.ssl.enabled":"false","xpack.security.transport.ssl.enabled":"false"},ports:["9200:9200"],options:'--health-cmd "curl http://localhost:9200/_cluster/health" --health-interval 10s --health-timeout 5s --health-retries 10'}}},sm={getConfig(A){return{image:A,env:{"discovery.type":"single-node",DISABLE_INSTALL_DEMO_CONFIG:"true",DISABLE_SECURITY_PLUGIN:"true"},ports:["9200:9200"],options:'--health-cmd "curl http://localhost:9200/_cluster/health" --health-interval 10s --health-timeout 5s --health-retries 10'}}},nm={getConfig(A){return{image:A,env:{RABBITMQ_DEFAULT_USER:"guest",RABBITMQ_DEFAULT_PASS:"guest"},ports:["5672:5672"]}}},im={getConfig(A){return{image:A,ports:["6379:6379"]}}},om={getConfig(A){return{image:A,ports:["6379:6379"]}}},am=(A,e)=>({image:A,ports:["80:80"],volumes:[`${e}:/var/www/html`],options:'--health-cmd "nginx -t" --health-interval=10s --health-retries=3 --health-timeout=5s --health-start-period=5s'}),cm=(A,e)=>({image:`mappia/magento-php:fpm-alpine${A}`,volumes:[`${e}:/var/www/html`]});var pv=(A,e)=>e==="opensearch"?A.opensearch&&A.opensearch.trim()!==""?{type:"opensearch",image:A.opensearch}:null:e==="elasticsearch"?A.elasticsearch&&A.elasticsearch.trim()!==""?{type:"elasticsearch",image:A.elasticsearch}:null:A.opensearch&&A.opensearch.trim()!==""?{type:"opensearch",image:A.opensearch}:A.elasticsearch&&A.elasticsearch.trim()!==""?{type:"elasticsearch",image:A.elasticsearch}:null,yv=(A,e)=>e==="valkey"?A.valkey&&A.valkey.trim()!==""?{type:"valkey",image:A.valkey}:null:e==="redis"?A.redis&&A.redis.trim()!==""?{type:"redis",image:A.redis}:null:A.valkey&&A.valkey.trim()!==""?{type:"valkey",image:A.valkey}:A.redis&&A.redis.trim()!==""?{type:"redis",image:A.redis}:null,gm=(A,e={},t="")=>{let r={};A.mysql&&A.mysql.trim()!==""&&(r.mysql=tm.getConfig(A.mysql));let s=pv(A,e.search);s&&(s.type==="opensearch"?r.opensearch=sm.getConfig(s.image):r.elasticsearch=rm.getConfig(s.image)),A.rabbitmq&&A.rabbitmq.trim()!==""&&(r.rabbitmq=nm.getConfig(A.rabbitmq));let n=yv(A,e.cache);n&&(n.type==="valkey"?r.valkey=om.getConfig(n.image):r.redis=im.getConfig(n.image));let i=(A.nginx||"").trim(),o=String(A.php??"").trim();return i!==""&&o!==""&&(r.nginx=am(i,t),r["php-fpm"]=cm(o,t)),r};var Wg={mysql:"db",elasticsearch:"search",opensearch:"search",rabbitmq:"queue",redis:"cache",valkey:"cache"},lm={db:["mysql"],search:["opensearch","elasticsearch"],queue:["rabbitmq"],cache:["valkey","redis"]},Pg=Object.keys(Wg);var jg=A=>{let e=(A||"").trim();if(e==="")return{};let t=e.split(",").map(s=>s.trim()).filter(s=>s!==""),r={};for(let s of t){let n=Wg[s];if(!n)throw new Error(`service_preferences: unknown service "${s}". Known services: ${Pg.join(", ")}`);let i=r[n];if(i)throw new Error(`service_preferences: collision in tier "${n}" \u2014 both "${i}" and "${s}" specified`);r[n]=s}return r};var _g=(A,e)=>{let t=[];for(let r of Object.keys(A)){let s=A[r],n=lm[r],i=[];for(let o of e){let a=o[s];if(!(typeof a=="string"&&a.trim()!=="")){let l=n.filter(g=>{let Q=o[g];return typeof Q=="string"&&Q.trim()!==""});i.push({version:o.version,supported:l})}}if(i.length>0){let o=i.map(a=>` - magento ${a.version} (supported: ${a.supported.length>0?a.supported.join(", "):""})`).join(` +${n}`;break;case"retry":C0(n)&&(t[s]=n);break;case"id":d0(n)&&(t[s]=n);break;case"event":n.length>0&&(t[s]=n);break}}processEvent(e){e.retry&&C0(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id&&d0(e.id)&&(this.state.lastEventId=e.id),e.data!==void 0&&this.push({type:e.event||"message",options:{data:e.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};f0.exports={EventSourceStream:Bg}});var F0=h((bq,k0)=>{"use strict";var{pipeline:ZU}=require("node:stream"),{fetching:KU}=as(),{makeRequest:XU}=gr(),{webidl:NA}=ce(),{EventSourceStream:zU}=m0(),{parseMIMEType:$U}=pe(),{createFastMessageEvent:eM}=Br(),{isNetworkError:p0}=is(),{delay:AM}=hg(),{kEnumerableProperty:pt}=x(),{environmentSettingsObject:y0}=ke(),w0=!1,D0=3e3,ms=0,R0=1,ps=2,tM="anonymous",rM="use-credentials",mr=class A extends EventTarget{#e={open:null,error:null,message:null};#A=null;#t=!1;#n=ms;#s=null;#r=null;#i;#o;constructor(e,t={}){super(),NA.util.markAsUncloneable(this);let r="EventSource constructor";NA.argumentLengthCheck(arguments,1,r),w0||(w0=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),e=NA.converters.USVString(e,r,"url"),t=NA.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#i=t.dispatcher,this.#o={lastEventId:"",reconnectionTime:D0};let s=y0,n;try{n=new URL(e,s.settingsObject.baseUrl),this.#o.origin=n.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#A=n.href;let i=tM;t.withCredentials&&(i=rM,this.#t=!0);let o={redirect:"follow",keepalive:!0,mode:"cors",credentials:i==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};o.client=y0.settingsObject,o.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],o.cache="no-store",o.initiator="other",o.urlList=[new URL(this.#A)],this.#s=XU(o),this.#a()}get readyState(){return this.#n}get url(){return this.#A}get withCredentials(){return this.#t}#a(){if(this.#n===ps)return;this.#n=ms;let e={request:this.#s,dispatcher:this.#i},t=r=>{p0(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#c()};e.processResponseEndOfBody=t,e.processResponse=r=>{if(p0(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#c();return}let s=r.headersList.get("content-type",!0),n=s!==null?$U(s):"failure",i=n!=="failure"&&n.essence==="text/event-stream";if(r.status!==200||i===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#n=R0,this.dispatchEvent(new Event("open")),this.#o.origin=r.urlList[r.urlList.length-1].origin;let o=new zU({eventSourceSettings:this.#o,push:a=>{this.dispatchEvent(eM(a.type,a.options))}});ZU(r.body.stream,o,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=KU(e)}async#c(){this.#n!==ps&&(this.#n=ms,this.dispatchEvent(new Event("error")),await AM(this.#o.reconnectionTime),this.#n===ms&&(this.#o.lastEventId.length&&this.#s.headersList.set("last-event-id",this.#o.lastEventId,!0),this.#a()))}close(){NA.brandCheck(this,A),this.#n!==ps&&(this.#n=ps,this.#r.abort(),this.#s=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof e=="function"?(this.#e.open=e,this.addEventListener("open",e)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof e=="function"?(this.#e.message=e,this.addEventListener("message",e)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof e=="function"?(this.#e.error=e,this.addEventListener("error",e)):this.#e.error=null}},b0={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:ms,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:R0,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:ps,writable:!1}};Object.defineProperties(mr,b0);Object.defineProperties(mr.prototype,b0);Object.defineProperties(mr.prototype,{close:pt,onerror:pt,onmessage:pt,onopen:pt,readyState:pt,url:pt,withCredentials:pt});NA.converters.EventSourceInitDict=NA.dictionaryConverter([{key:"withCredentials",converter:NA.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:NA.converters.any}]);k0.exports={EventSource:mr,defaultReconnectionTime:D0}});var M0=h((kq,S)=>{"use strict";var sM=Zt(),N0=Rr(),nM=Kt(),iM=bh(),oM=Xt(),aM=Ya(),cM=Xh(),gM=ru(),S0=Y(),Ni=x(),{InvalidArgumentError:Fi}=S0,pr=Hu(),lM=kr(),QM=mc(),EM=DB(),hM=wc(),uM=ac(),BM=Un(),{getGlobalDispatcher:U0,setGlobalDispatcher:IM}=Vn(),CM=Hn(),dM=mn(),fM=pn();Object.assign(N0.prototype,pr);S.exports.Dispatcher=N0;S.exports.Client=sM;S.exports.Pool=nM;S.exports.BalancedPool=iM;S.exports.Agent=oM;S.exports.ProxyAgent=aM;S.exports.EnvHttpProxyAgent=cM;S.exports.RetryAgent=gM;S.exports.RetryHandler=BM;S.exports.DecoratorHandler=CM;S.exports.RedirectHandler=dM;S.exports.createRedirectInterceptor=fM;S.exports.interceptors={redirect:UB(),retry:LB(),dump:xB(),dns:GB()};S.exports.buildConnector=lM;S.exports.errors=S0;S.exports.util={parseHeaders:Ni.parseHeaders,headerNameToString:Ni.headerNameToString};function ys(A){return(e,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new Fi("invalid url");if(t!=null&&typeof t!="object")throw new Fi("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Fi("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),e=new URL(Ni.parseOrigin(e).origin+i)}else t||(t=typeof e=="object"?e:{}),e=Ni.parseURL(e);let{agent:s,dispatcher:n=U0()}=t;if(s)throw new Fi("unsupported opts.agent. Did you mean opts.client?");return A.call(n,{...t,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}S.exports.setGlobalDispatcher=IM;S.exports.getGlobalDispatcher=U0;var mM=as().fetch;S.exports.fetch=async function(e,t=void 0){try{return await mM(e,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};S.exports.Headers=ut().Headers;S.exports.Response=is().Response;S.exports.Request=gr().Request;S.exports.FormData=Tr().FormData;S.exports.File=globalThis.File??require("node:buffer").File;S.exports.FileReader=AC().FileReader;var{setGlobalOrigin:pM,getGlobalOrigin:yM}=Vo();S.exports.setGlobalOrigin=pM;S.exports.getGlobalOrigin=yM;var{CacheStorage:wM}=gC(),{kConstruct:DM}=gi();S.exports.caches=new wM(DM);var{deleteCookie:RM,getCookies:bM,getSetCookies:kM,setCookie:FM}=pC();S.exports.deleteCookie=RM;S.exports.getCookies=bM;S.exports.getSetCookies=kM;S.exports.setCookie=FM;var{parseMIMEType:NM,serializeAMimeType:SM}=pe();S.exports.parseMIMEType=NM;S.exports.serializeAMimeType=SM;var{CloseEvent:UM,ErrorEvent:MM,MessageEvent:LM}=Br();S.exports.WebSocket=B0().WebSocket;S.exports.CloseEvent=UM;S.exports.ErrorEvent=MM;S.exports.MessageEvent=LM;S.exports.request=ys(pr.request);S.exports.stream=ys(pr.stream);S.exports.pipeline=ys(pr.pipeline);S.exports.connect=ys(pr.connect);S.exports.upgrade=ys(pr.upgrade);S.exports.MockClient=QM;S.exports.MockPool=hM;S.exports.MockAgent=EM;S.exports.mockErrors=uM;var{EventSource:TM}=F0();S.exports.EventSource=TM});var yr=h(($G,nd)=>{"use strict";var hL="2.0.0",uL=Number.MAX_SAFE_INTEGER||9007199254740991,BL=16,IL=250,CL=["major","premajor","minor","preminor","patch","prepatch","prerelease"];nd.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:BL,MAX_SAFE_BUILD_LENGTH:IL,MAX_SAFE_INTEGER:uL,RELEASE_TYPES:CL,SEMVER_SPEC_VERSION:hL,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Rs=h((eY,id)=>{"use strict";var dL=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...A)=>console.error("SEMVER",...A):()=>{};id.exports=dL});var wr=h((uA,od)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:yg,MAX_SAFE_BUILD_LENGTH:fL,MAX_LENGTH:mL}=yr(),pL=Rs();uA=od.exports={};var yL=uA.re=[],wL=uA.safeRe=[],p=uA.src=[],DL=uA.safeSrc=[],y=uA.t={},RL=0,wg="[a-zA-Z0-9-]",bL=[["\\s",1],["\\d",mL],[wg,fL]],kL=A=>{for(let[e,t]of bL)A=A.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return A},L=(A,e,t)=>{let r=kL(e),s=RL++;pL(A,s,e),y[A]=s,p[s]=e,DL[s]=r,yL[s]=new RegExp(e,t?"g":void 0),wL[s]=new RegExp(r,t?"g":void 0)};L("NUMERICIDENTIFIER","0|[1-9]\\d*");L("NUMERICIDENTIFIERLOOSE","\\d+");L("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${wg}*`);L("MAINVERSION",`(${p[y.NUMERICIDENTIFIER]})\\.(${p[y.NUMERICIDENTIFIER]})\\.(${p[y.NUMERICIDENTIFIER]})`);L("MAINVERSIONLOOSE",`(${p[y.NUMERICIDENTIFIERLOOSE]})\\.(${p[y.NUMERICIDENTIFIERLOOSE]})\\.(${p[y.NUMERICIDENTIFIERLOOSE]})`);L("PRERELEASEIDENTIFIER",`(?:${p[y.NONNUMERICIDENTIFIER]}|${p[y.NUMERICIDENTIFIER]})`);L("PRERELEASEIDENTIFIERLOOSE",`(?:${p[y.NONNUMERICIDENTIFIER]}|${p[y.NUMERICIDENTIFIERLOOSE]})`);L("PRERELEASE",`(?:-(${p[y.PRERELEASEIDENTIFIER]}(?:\\.${p[y.PRERELEASEIDENTIFIER]})*))`);L("PRERELEASELOOSE",`(?:-?(${p[y.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${p[y.PRERELEASEIDENTIFIERLOOSE]})*))`);L("BUILDIDENTIFIER",`${wg}+`);L("BUILD",`(?:\\+(${p[y.BUILDIDENTIFIER]}(?:\\.${p[y.BUILDIDENTIFIER]})*))`);L("FULLPLAIN",`v?${p[y.MAINVERSION]}${p[y.PRERELEASE]}?${p[y.BUILD]}?`);L("FULL",`^${p[y.FULLPLAIN]}$`);L("LOOSEPLAIN",`[v=\\s]*${p[y.MAINVERSIONLOOSE]}${p[y.PRERELEASELOOSE]}?${p[y.BUILD]}?`);L("LOOSE",`^${p[y.LOOSEPLAIN]}$`);L("GTLT","((?:<|>)?=?)");L("XRANGEIDENTIFIERLOOSE",`${p[y.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);L("XRANGEIDENTIFIER",`${p[y.NUMERICIDENTIFIER]}|x|X|\\*`);L("XRANGEPLAIN",`[v=\\s]*(${p[y.XRANGEIDENTIFIER]})(?:\\.(${p[y.XRANGEIDENTIFIER]})(?:\\.(${p[y.XRANGEIDENTIFIER]})(?:${p[y.PRERELEASE]})?${p[y.BUILD]}?)?)?`);L("XRANGEPLAINLOOSE",`[v=\\s]*(${p[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${p[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${p[y.XRANGEIDENTIFIERLOOSE]})(?:${p[y.PRERELEASELOOSE]})?${p[y.BUILD]}?)?)?`);L("XRANGE",`^${p[y.GTLT]}\\s*${p[y.XRANGEPLAIN]}$`);L("XRANGELOOSE",`^${p[y.GTLT]}\\s*${p[y.XRANGEPLAINLOOSE]}$`);L("COERCEPLAIN",`(^|[^\\d])(\\d{1,${yg}})(?:\\.(\\d{1,${yg}}))?(?:\\.(\\d{1,${yg}}))?`);L("COERCE",`${p[y.COERCEPLAIN]}(?:$|[^\\d])`);L("COERCEFULL",p[y.COERCEPLAIN]+`(?:${p[y.PRERELEASE]})?(?:${p[y.BUILD]})?(?:$|[^\\d])`);L("COERCERTL",p[y.COERCE],!0);L("COERCERTLFULL",p[y.COERCEFULL],!0);L("LONETILDE","(?:~>?)");L("TILDETRIM",`(\\s*)${p[y.LONETILDE]}\\s+`,!0);uA.tildeTrimReplace="$1~";L("TILDE",`^${p[y.LONETILDE]}${p[y.XRANGEPLAIN]}$`);L("TILDELOOSE",`^${p[y.LONETILDE]}${p[y.XRANGEPLAINLOOSE]}$`);L("LONECARET","(?:\\^)");L("CARETTRIM",`(\\s*)${p[y.LONECARET]}\\s+`,!0);uA.caretTrimReplace="$1^";L("CARET",`^${p[y.LONECARET]}${p[y.XRANGEPLAIN]}$`);L("CARETLOOSE",`^${p[y.LONECARET]}${p[y.XRANGEPLAINLOOSE]}$`);L("COMPARATORLOOSE",`^${p[y.GTLT]}\\s*(${p[y.LOOSEPLAIN]})$|^$`);L("COMPARATOR",`^${p[y.GTLT]}\\s*(${p[y.FULLPLAIN]})$|^$`);L("COMPARATORTRIM",`(\\s*)${p[y.GTLT]}\\s*(${p[y.LOOSEPLAIN]}|${p[y.XRANGEPLAIN]})`,!0);uA.comparatorTrimReplace="$1$2$3";L("HYPHENRANGE",`^\\s*(${p[y.XRANGEPLAIN]})\\s+-\\s+(${p[y.XRANGEPLAIN]})\\s*$`);L("HYPHENRANGELOOSE",`^\\s*(${p[y.XRANGEPLAINLOOSE]})\\s+-\\s+(${p[y.XRANGEPLAINLOOSE]})\\s*$`);L("STAR","(<|>)?=?\\s*\\*");L("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");L("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Mi=h((AY,ad)=>{"use strict";var FL=Object.freeze({loose:!0}),NL=Object.freeze({}),SL=A=>A?typeof A!="object"?FL:A:NL;ad.exports=SL});var Dg=h((tY,ld)=>{"use strict";var cd=/^[0-9]+$/,gd=(A,e)=>{if(typeof A=="number"&&typeof e=="number")return A===e?0:Agd(e,A);ld.exports={compareIdentifiers:gd,rcompareIdentifiers:UL}});var ge=h((rY,Ed)=>{"use strict";var Li=Rs(),{MAX_LENGTH:Qd,MAX_SAFE_INTEGER:Ti}=yr(),{safeRe:xi,t:vi}=wr(),ML=Mi(),{compareIdentifiers:Rg}=Dg(),LL=(A,e)=>{let t=e.split(".");if(t.length>A.length)return!1;for(let r=0;rQd)throw new TypeError(`version is longer than ${Qd} characters`);Li("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let r=e.trim().match(t.loose?xi[vi.LOOSE]:xi[vi.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Ti||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Ti||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Ti||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){let n=+s;if(n>=0&&ne.major?1:this.minore.minor?1:this.patche.patch?1:0}comparePre(e){if(e instanceof A||(e=new A(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let r=this.prerelease[t],s=e.prerelease[t];if(Li("prerelease compare",t,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return Rg(r,s)}while(++t)}compareBuild(e){e instanceof A||(e=new A(e,this.options));let t=0;do{let r=this.build[t],s=e.build[t];if(Li("build compare",t,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return Rg(r,s)}while(++t)}inc(e,t,r){if(e.startsWith("pre")){if(!t&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let s=`-${t}`.match(this.options.loose?xi[vi.PRERELEASELOOSE]:xi[vi.PRERELEASE]);if(!s||s[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,r),this.inc("pre",t,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,r),this.inc("pre",t,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let s=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[s];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(t===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(t){let n=[t,s];if(r===!1&&(n=[t]),LL(this.prerelease,t)){let i=this.prerelease[t.split(".").length];isNaN(i)&&(this.prerelease=n)}else this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ed.exports=bg});var $A=h((sY,ud)=>{"use strict";var hd=ge(),TL=(A,e,t=!1)=>{if(A instanceof hd)return A;try{return new hd(A,e)}catch(r){if(!t)return null;throw r}};ud.exports=TL});var Id=h((nY,Bd)=>{"use strict";var xL=$A(),vL=(A,e)=>{let t=xL(A,e);return t?t.version:null};Bd.exports=vL});var dd=h((iY,Cd)=>{"use strict";var qL=$A(),GL=(A,e)=>{let t=qL(A.trim().replace(/^[=v]+/,""),e);return t?t.version:null};Cd.exports=GL});var pd=h((oY,md)=>{"use strict";var fd=ge(),YL=(A,e,t,r,s)=>{typeof t=="string"&&(s=r,r=t,t=void 0);try{return new fd(A instanceof fd?A.version:A,t).inc(e,r,s).version}catch{return null}};md.exports=YL});var Dd=h((aY,wd)=>{"use strict";var yd=$A(),JL=(A,e)=>{let t=yd(A,null,!0),r=yd(e,null,!0),s=t.compare(r);if(s===0)return null;let n=s>0,i=n?t:r,o=n?r:t,a=!!i.prerelease.length;if(!!o.prerelease.length&&!a){if(!o.patch&&!o.minor)return"major";if(o.compareMain(i)===0)return o.minor&&!o.patch?"minor":"patch"}let l=a?"pre":"";return t.major!==r.major?l+"major":t.minor!==r.minor?l+"minor":t.patch!==r.patch?l+"patch":"prerelease"};wd.exports=JL});var bd=h((cY,Rd)=>{"use strict";var VL=ge(),HL=(A,e)=>new VL(A,e).major;Rd.exports=HL});var Fd=h((gY,kd)=>{"use strict";var OL=ge(),WL=(A,e)=>new OL(A,e).minor;kd.exports=WL});var Sd=h((lY,Nd)=>{"use strict";var PL=ge(),jL=(A,e)=>new PL(A,e).patch;Nd.exports=jL});var Md=h((QY,Ud)=>{"use strict";var _L=$A(),ZL=(A,e)=>{let t=_L(A,e);return t&&t.prerelease.length?t.prerelease:null};Ud.exports=ZL});var He=h((EY,Td)=>{"use strict";var Ld=ge(),KL=(A,e,t)=>new Ld(A,t).compare(new Ld(e,t));Td.exports=KL});var vd=h((hY,xd)=>{"use strict";var XL=He(),zL=(A,e,t)=>XL(e,A,t);xd.exports=zL});var Gd=h((uY,qd)=>{"use strict";var $L=He(),eT=(A,e)=>$L(A,e,!0);qd.exports=eT});var qi=h((BY,Jd)=>{"use strict";var Yd=ge(),AT=(A,e,t)=>{let r=new Yd(A,t),s=new Yd(e,t);return r.compare(s)||r.compareBuild(s)};Jd.exports=AT});var Hd=h((IY,Vd)=>{"use strict";var tT=qi(),rT=(A,e)=>A.sort((t,r)=>tT(t,r,e));Vd.exports=rT});var Wd=h((CY,Od)=>{"use strict";var sT=qi(),nT=(A,e)=>A.sort((t,r)=>sT(r,t,e));Od.exports=nT});var bs=h((dY,Pd)=>{"use strict";var iT=He(),oT=(A,e,t)=>iT(A,e,t)>0;Pd.exports=oT});var Gi=h((fY,jd)=>{"use strict";var aT=He(),cT=(A,e,t)=>aT(A,e,t)<0;jd.exports=cT});var kg=h((mY,_d)=>{"use strict";var gT=He(),lT=(A,e,t)=>gT(A,e,t)===0;_d.exports=lT});var Fg=h((pY,Zd)=>{"use strict";var QT=He(),ET=(A,e,t)=>QT(A,e,t)!==0;Zd.exports=ET});var Yi=h((yY,Kd)=>{"use strict";var hT=He(),uT=(A,e,t)=>hT(A,e,t)>=0;Kd.exports=uT});var Ji=h((wY,Xd)=>{"use strict";var BT=He(),IT=(A,e,t)=>BT(A,e,t)<=0;Xd.exports=IT});var Ng=h((DY,zd)=>{"use strict";var CT=kg(),dT=Fg(),fT=bs(),mT=Yi(),pT=Gi(),yT=Ji(),wT=(A,e,t,r)=>{switch(e){case"===":return typeof A=="object"&&(A=A.version),typeof t=="object"&&(t=t.version),A===t;case"!==":return typeof A=="object"&&(A=A.version),typeof t=="object"&&(t=t.version),A!==t;case"":case"=":case"==":return CT(A,t,r);case"!=":return dT(A,t,r);case">":return fT(A,t,r);case">=":return mT(A,t,r);case"<":return pT(A,t,r);case"<=":return yT(A,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};zd.exports=wT});var ef=h((RY,$d)=>{"use strict";var DT=ge(),RT=$A(),{safeRe:Vi,t:Hi}=wr(),bT=(A,e)=>{if(A instanceof DT)return A;if(typeof A=="number"&&(A=String(A)),typeof A!="string")return null;e=e||{};let t=null;if(!e.rtl)t=A.match(e.includePrerelease?Vi[Hi.COERCEFULL]:Vi[Hi.COERCE]);else{let a=e.includePrerelease?Vi[Hi.COERCERTLFULL]:Vi[Hi.COERCERTL],c;for(;(c=a.exec(A))&&(!t||t.index+t[0].length!==A.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),a.lastIndex=c.index+c[1].length+c[2].length;a.lastIndex=-1}if(t===null)return null;let r=t[2],s=t[3]||"0",n=t[4]||"0",i=e.includePrerelease&&t[5]?`-${t[5]}`:"",o=e.includePrerelease&&t[6]?`+${t[6]}`:"";return RT(`${r}.${s}.${n}${i}${o}`,e)};$d.exports=bT});var tf=h((bY,Af)=>{"use strict";var kT=$A(),FT=yr(),NT=ge(),ST=(A,e,t)=>{if(!FT.RELEASE_TYPES.includes(e))return null;let r=UT(A,t);return r&&MT(r,e)},UT=(A,e)=>{let t=A instanceof NT?A.version:A;return kT(t,e)},MT=(A,e)=>{if(LT(e))return A.version;switch(A.prerelease=[],e){case"major":A.minor=0,A.patch=0;break;case"minor":A.patch=0;break}return A.format()},LT=A=>A.startsWith("pre");Af.exports=ST});var sf=h((kY,rf)=>{"use strict";var Sg=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let s=this.map.keys().next().value;this.delete(s)}this.map.set(e,t)}return this}};rf.exports=Sg});var Oe=h((FY,cf)=>{"use strict";var TT=/\s+/g,Ug=class A{constructor(e,t){if(t=vT(t),e instanceof A)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new A(e.raw,t);if(e instanceof Mg)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(TT," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(s=>!of(s[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let s of this.set)if(s.length===1&&PT(s[0])){this.set=[s];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e0&&(this.formatted+="||");let t=this.set[e];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=t[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(WT,"");let r=((this.options.includePrerelease&&HT)|(this.options.loose&&OT))+":"+e,s=nf.get(r);if(s)return s;let n=this.options.loose,i=n?de[le.HYPHENRANGELOOSE]:de[le.HYPHENRANGE];e=e.replace(i,tx(this.options.includePrerelease)),Z("hyphen replace",e),e=e.replace(de[le.COMPARATORTRIM],YT),Z("comparator trim",e),e=e.replace(de[le.TILDETRIM],JT),Z("tilde trim",e),e=e.replace(de[le.CARETTRIM],VT),Z("caret trim",e);let o=e.split(" ").map(g=>jT(g,this.options)).join(" ").split(/\s+/).map(g=>Ax(g,this.options));n&&(o=o.filter(g=>(Z("loose invalid filter",g,this.options),!!g.match(de[le.COMPARATORLOOSE])))),Z("range list",o);let a=new Map,c=o.map(g=>new Mg(g,this.options));for(let g of c){if(of(g))return[g];a.set(g.value,g)}a.size>1&&a.has("")&&a.delete("");let l=[...a.values()];return nf.set(r,l),l}intersects(e,t){if(!(e instanceof A))throw new TypeError("a Range is required");return this.set.some(r=>af(r,t)&&e.set.some(s=>af(s,t)&&r.every(n=>s.every(i=>n.intersects(i,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new qT(e,this.options)}catch{return!1}for(let t=0;tA.value==="<0.0.0-0",PT=A=>A.value==="",af=(A,e)=>{let t=!0,r=A.slice(),s=r.pop();for(;t&&r.length;)t=r.every(n=>s.intersects(n,e)),s=r.pop();return t},jT=(A,e)=>(A=A.replace(de[le.BUILD],""),Z("comp",A,e),A=KT(A,e),Z("caret",A),A=_T(A,e),Z("tildes",A),A=zT(A,e),Z("xrange",A),A=ex(A,e),Z("stars",A),A),fe=A=>!A||A.toLowerCase()==="x"||A==="*",_T=(A,e)=>A.trim().split(/\s+/).map(t=>ZT(t,e)).join(" "),ZT=(A,e)=>{let t=e.loose?de[le.TILDELOOSE]:de[le.TILDE];return A.replace(t,(r,s,n,i,o)=>{Z("tilde",A,r,s,n,i,o);let a;return fe(s)?a="":fe(n)?a=`>=${s}.0.0 <${+s+1}.0.0-0`:fe(i)?a=`>=${s}.${n}.0 <${s}.${+n+1}.0-0`:o?(Z("replaceTilde pr",o),a=`>=${s}.${n}.${i}-${o} <${s}.${+n+1}.0-0`):a=`>=${s}.${n}.${i} <${s}.${+n+1}.0-0`,Z("tilde return",a),a})},KT=(A,e)=>A.trim().split(/\s+/).map(t=>XT(t,e)).join(" "),XT=(A,e)=>{Z("caret",A,e);let t=e.loose?de[le.CARETLOOSE]:de[le.CARET],r=e.includePrerelease?"-0":"";return A.replace(t,(s,n,i,o,a)=>{Z("caret",A,s,n,i,o,a);let c;return fe(n)?c="":fe(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:fe(o)?n==="0"?c=`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:c=`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:a?(Z("replaceCaret pr",a),n==="0"?i==="0"?c=`>=${n}.${i}.${o}-${a} <${n}.${i}.${+o+1}-0`:c=`>=${n}.${i}.${o}-${a} <${n}.${+i+1}.0-0`:c=`>=${n}.${i}.${o}-${a} <${+n+1}.0.0-0`):(Z("no pr"),n==="0"?i==="0"?c=`>=${n}.${i}.${o} <${n}.${i}.${+o+1}-0`:c=`>=${n}.${i}.${o} <${n}.${+i+1}.0-0`:c=`>=${n}.${i}.${o} <${+n+1}.0.0-0`),Z("caret return",c),c})},zT=(A,e)=>(Z("replaceXRanges",A,e),A.split(/\s+/).map(t=>$T(t,e)).join(" ")),$T=(A,e)=>{A=A.trim();let t=e.loose?de[le.XRANGELOOSE]:de[le.XRANGE];return A.replace(t,(r,s,n,i,o,a)=>{Z("xRange",A,r,s,n,i,o,a);let c=fe(n),l=c||fe(i),g=l||fe(o),Q=g;return s==="="&&Q&&(s=""),a=e.includePrerelease?"-0":"",c?s===">"||s==="<"?r="<0.0.0-0":r="*":s&&Q?(l&&(i=0),o=0,s===">"?(s=">=",l?(n=+n+1,i=0,o=0):(i=+i+1,o=0)):s==="<="&&(s="<",l?n=+n+1:i=+i+1),s==="<"&&(a="-0"),r=`${s+n}.${i}.${o}${a}`):l?r=`>=${n}.0.0${a} <${+n+1}.0.0-0`:g&&(r=`>=${n}.${i}.0${a} <${n}.${+i+1}.0-0`),Z("xRange return",r),r})},ex=(A,e)=>(Z("replaceStars",A,e),A.trim().replace(de[le.STAR],"")),Ax=(A,e)=>(Z("replaceGTE0",A,e),A.trim().replace(de[e.includePrerelease?le.GTE0PRE:le.GTE0],"")),tx=A=>(e,t,r,s,n,i,o,a,c,l,g,Q)=>(fe(r)?t="":fe(s)?t=`>=${r}.0.0${A?"-0":""}`:fe(n)?t=`>=${r}.${s}.0${A?"-0":""}`:i?t=`>=${t}`:t=`>=${t}${A?"-0":""}`,fe(c)?a="":fe(l)?a=`<${+c+1}.0.0-0`:fe(g)?a=`<${c}.${+l+1}.0-0`:Q?a=`<=${c}.${l}.${g}-${Q}`:A?a=`<${c}.${l}.${+g+1}-0`:a=`<=${a}`,`${t} ${a}`.trim()),rx=(A,e,t)=>{for(let r=0;r0){let s=A[r].semver;if(s.major===e.major&&s.minor===e.minor&&s.patch===e.patch)return!0}return!1}return!0}});var ks=h((NY,uf)=>{"use strict";var Fs=Symbol("SemVer ANY"),xg=class A{static get ANY(){return Fs}constructor(e,t){if(t=gf(t),e instanceof A){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Tg("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Fs?this.value="":this.value=this.operator+this.semver.version,Tg("comp",this)}parse(e){let t=this.options.loose?lf[Qf.COMPARATORLOOSE]:lf[Qf.COMPARATOR],r=e.match(t);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new Ef(r[2],this.options.loose):this.semver=Fs}toString(){return this.value}test(e){if(Tg("Comparator.test",e,this.options.loose),this.semver===Fs||e===Fs)return!0;if(typeof e=="string")try{e=new Ef(e,this.options)}catch{return!1}return Lg(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof A))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new hf(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new hf(this.value,t).test(e.semver):(t=gf(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Lg(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Lg(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};uf.exports=xg;var gf=Mi(),{safeRe:lf,t:Qf}=wr(),Lg=Ng(),Tg=Rs(),Ef=ge(),hf=Oe()});var Ns=h((SY,Bf)=>{"use strict";var sx=Oe(),nx=(A,e,t)=>{try{e=new sx(e,t)}catch{return!1}return e.test(A)};Bf.exports=nx});var Cf=h((UY,If)=>{"use strict";var ix=Oe(),ox=(A,e)=>new ix(A,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));If.exports=ox});var ff=h((MY,df)=>{"use strict";var ax=ge(),cx=Oe(),gx=(A,e,t)=>{let r=null,s=null,n=null;try{n=new cx(e,t)}catch{return null}return A.forEach(i=>{n.test(i)&&(!r||s.compare(i)===-1)&&(r=i,s=new ax(r,t))}),r};df.exports=gx});var pf=h((LY,mf)=>{"use strict";var lx=ge(),Qx=Oe(),Ex=(A,e,t)=>{let r=null,s=null,n=null;try{n=new Qx(e,t)}catch{return null}return A.forEach(i=>{n.test(i)&&(!r||s.compare(i)===1)&&(r=i,s=new lx(r,t))}),r};mf.exports=Ex});var Df=h((TY,wf)=>{"use strict";var vg=ge(),hx=Oe(),yf=bs(),ux=(A,e)=>{A=new hx(A,e);let t=new vg("0.0.0");if(A.test(t)||(t=new vg("0.0.0-0"),A.test(t)))return t;t=null;for(let r=0;r{let o=new vg(i.semver.version);switch(i.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!n||yf(o,n))&&(n=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),n&&(!t||yf(t,n))&&(t=n)}return t&&A.test(t)?t:null};wf.exports=ux});var bf=h((xY,Rf)=>{"use strict";var Bx=Oe(),Ix=(A,e)=>{try{return new Bx(A,e).range||"*"}catch{return null}};Rf.exports=Ix});var Oi=h((vY,Sf)=>{"use strict";var Cx=ge(),Nf=ks(),{ANY:dx}=Nf,fx=Oe(),mx=Ns(),kf=bs(),Ff=Gi(),px=Ji(),yx=Yi(),wx=(A,e,t,r)=>{A=new Cx(A,r),e=new fx(e,r);let s,n,i,o,a;switch(t){case">":s=kf,n=px,i=Ff,o=">",a=">=";break;case"<":s=Ff,n=yx,i=kf,o="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(mx(A,e,r))return!1;for(let c=0;c{E.semver===dx&&(E=new Nf(">=0.0.0")),g=g||E,Q=Q||E,s(E.semver,g.semver,r)?g=E:i(E.semver,Q.semver,r)&&(Q=E)}),g.operator===o||g.operator===a||(!Q.operator||Q.operator===o)&&n(A,Q.semver))return!1;if(Q.operator===a&&i(A,Q.semver))return!1}return!0};Sf.exports=wx});var Mf=h((qY,Uf)=>{"use strict";var Dx=Oi(),Rx=(A,e,t)=>Dx(A,e,">",t);Uf.exports=Rx});var Tf=h((GY,Lf)=>{"use strict";var bx=Oi(),kx=(A,e,t)=>bx(A,e,"<",t);Lf.exports=kx});var qf=h((YY,vf)=>{"use strict";var xf=Oe(),Fx=(A,e,t)=>(A=new xf(A,t),e=new xf(e,t),A.intersects(e,t));vf.exports=Fx});var Yf=h((JY,Gf)=>{"use strict";var Nx=Ns(),Sx=He();Gf.exports=(A,e,t)=>{let r=[],s=null,n=null,i=A.sort((l,g)=>Sx(l,g,t));for(let l of i)Nx(l,e,t)?(n=l,s||(s=l)):(n&&r.push([s,n]),n=null,s=null);s&&r.push([s,null]);let o=[];for(let[l,g]of r)l===g?o.push(l):!g&&l===i[0]?o.push("*"):g?l===i[0]?o.push(`<=${g}`):o.push(`${l} - ${g}`):o.push(`>=${l}`);let a=o.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return a.length{"use strict";var Jf=Oe(),Yg=ks(),{ANY:qg}=Yg,Gg=Ns(),Jg=He(),Ux=(A,e,t={})=>{if(A===e)return!0;A=new Jf(A,t),e=new Jf(e,t);let r=!1;e:for(let s of A.set){for(let n of e.set){let i=Lx(s,n,t);if(r=r||i!==null,i)continue e}if(r)return!1}return!0},Mx=[new Yg(">=0.0.0-0")],Vf=[new Yg(">=0.0.0")],Lx=(A,e,t)=>{if(A===e)return!0;if(A.length===1&&A[0].semver===qg){if(e.length===1&&e[0].semver===qg)return!0;t.includePrerelease?A=Mx:A=Vf}if(e.length===1&&e[0].semver===qg){if(t.includePrerelease)return!0;e=Vf}let r=new Set,s,n;for(let E of A)E.operator===">"||E.operator===">="?s=Hf(s,E,t):E.operator==="<"||E.operator==="<="?n=Of(n,E,t):r.add(E.semver);if(r.size>1)return null;let i;if(s&&n){if(i=Jg(s.semver,n.semver,t),i>0)return null;if(i===0&&(s.operator!==">="||n.operator!=="<="))return null}for(let E of r){if(s&&!Gg(E,String(s),t)||n&&!Gg(E,String(n),t))return null;for(let B of e)if(!Gg(E,String(B),t))return!1;return!0}let o,a,c,l,g=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1,Q=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1;g&&g.prerelease.length===1&&n.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let E of e){if(l=l||E.operator===">"||E.operator===">=",c=c||E.operator==="<"||E.operator==="<=",s){if(Q&&E.semver.prerelease&&E.semver.prerelease.length&&E.semver.major===Q.major&&E.semver.minor===Q.minor&&E.semver.patch===Q.patch&&(Q=!1),E.operator===">"||E.operator===">="){if(o=Hf(s,E,t),o===E&&o!==s)return!1}else if(s.operator===">="&&!E.test(s.semver))return!1}if(n){if(g&&E.semver.prerelease&&E.semver.prerelease.length&&E.semver.major===g.major&&E.semver.minor===g.minor&&E.semver.patch===g.patch&&(g=!1),E.operator==="<"||E.operator==="<="){if(a=Of(n,E,t),a===E&&a!==n)return!1}else if(n.operator==="<="&&!E.test(n.semver))return!1}if(!E.operator&&(n||s)&&i!==0)return!1}return!(s&&c&&!n&&i!==0||n&&l&&!s&&i!==0||Q||g)},Hf=(A,e,t)=>{if(!A)return e;let r=Jg(A.semver,e.semver,t);return r>0?A:r<0||e.operator===">"&&A.operator===">="?e:A},Of=(A,e,t)=>{if(!A)return e;let r=Jg(A.semver,e.semver,t);return r<0?A:r>0||e.operator==="<"&&A.operator==="<="?e:A};Wf.exports=Ux});var Kf=h((HY,Zf)=>{"use strict";var Vg=wr(),jf=yr(),Tx=ge(),_f=Dg(),xx=$A(),vx=Id(),qx=dd(),Gx=pd(),Yx=Dd(),Jx=bd(),Vx=Fd(),Hx=Sd(),Ox=Md(),Wx=He(),Px=vd(),jx=Gd(),_x=qi(),Zx=Hd(),Kx=Wd(),Xx=bs(),zx=Gi(),$x=kg(),ev=Fg(),Av=Yi(),tv=Ji(),rv=Ng(),sv=ef(),nv=tf(),iv=ks(),ov=Oe(),av=Ns(),cv=Cf(),gv=ff(),lv=pf(),Qv=Df(),Ev=bf(),hv=Oi(),uv=Mf(),Bv=Tf(),Iv=qf(),Cv=Yf(),dv=Pf();Zf.exports={parse:xx,valid:vx,clean:qx,inc:Gx,diff:Yx,major:Jx,minor:Vx,patch:Hx,prerelease:Ox,compare:Wx,rcompare:Px,compareLoose:jx,compareBuild:_x,sort:Zx,rsort:Kx,gt:Xx,lt:zx,eq:$x,neq:ev,gte:Av,lte:tv,cmp:rv,coerce:sv,truncate:nv,Comparator:iv,Range:ov,satisfies:av,toComparators:cv,maxSatisfying:gv,minSatisfying:lv,minVersion:Qv,validRange:Ev,outside:hv,gtr:uv,ltr:Bv,intersects:Iv,simplifyRange:Cv,subset:dv,SemVer:Tx,re:Vg.re,src:Vg.src,tokens:Vg.t,SEMVER_SPEC_VERSION:jf.SEMVER_SPEC_VERSION,RELEASE_TYPES:jf.RELEASE_TYPES,compareIdentifiers:_f.compareIdentifiers,rcompareIdentifiers:_f.rcompareIdentifiers}});var wv={};Cm(wv,{run:()=>Qm});module.exports=dm(wv);var zg=tA(require("os"),1);function UA(A){return A==null?"":typeof A=="string"||A instanceof String?A:JSON.stringify(A)}function Kg(A){return Object.keys(A).length?{title:A.title,file:A.file,line:A.startLine,endLine:A.endLine,col:A.startColumn,endColumn:A.endColumn}:{}}function ji(A,e,t){let r=new Pi(A,e,t);process.stdout.write(r.toString()+zg.EOL)}var Xg="::",Pi=class{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r}toString(){let e=Xg+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let s=this.properties[r];s&&(t?t=!1:e+=",",e+=`${r}=${mm(s)}`)}}return e+=`${Xg}${fm(this.message)}`,e}};function fm(A){return UA(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function mm(A){return UA(A).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var $g=tA(require("crypto"),1),Ls=tA(require("fs"),1),Ms=tA(require("os"),1);function el(A,e){let t=process.env[`GITHUB_${A}`];if(!t)throw new Error(`Unable to find environment variable for file command ${A}`);if(!Ls.existsSync(t))throw new Error(`Missing file at path: ${t}`);Ls.appendFileSync(t,`${UA(e)}${Ms.EOL}`,{encoding:"utf8"})}function Al(A,e){let t=`ghadelimiter_${$g.randomUUID()}`,r=UA(e);if(A.includes(t))throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`);if(r.includes(t))throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`);return`${A}<<${t}${Ms.EOL}${r}${Ms.EOL}${t}`}var G0=tA(require("os"),1);var Si=tA(ol(),1),xM=tA(M0(),1);var EA;(function(A){A[A.OK=200]="OK",A[A.MultipleChoices=300]="MultipleChoices",A[A.MovedPermanently=301]="MovedPermanently",A[A.ResourceMoved=302]="ResourceMoved",A[A.SeeOther=303]="SeeOther",A[A.NotModified=304]="NotModified",A[A.UseProxy=305]="UseProxy",A[A.SwitchProxy=306]="SwitchProxy",A[A.TemporaryRedirect=307]="TemporaryRedirect",A[A.PermanentRedirect=308]="PermanentRedirect",A[A.BadRequest=400]="BadRequest",A[A.Unauthorized=401]="Unauthorized",A[A.PaymentRequired=402]="PaymentRequired",A[A.Forbidden=403]="Forbidden",A[A.NotFound=404]="NotFound",A[A.MethodNotAllowed=405]="MethodNotAllowed",A[A.NotAcceptable=406]="NotAcceptable",A[A.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",A[A.RequestTimeout=408]="RequestTimeout",A[A.Conflict=409]="Conflict",A[A.Gone=410]="Gone",A[A.TooManyRequests=429]="TooManyRequests",A[A.InternalServerError=500]="InternalServerError",A[A.NotImplemented=501]="NotImplemented",A[A.BadGateway=502]="BadGateway",A[A.ServiceUnavailable=503]="ServiceUnavailable",A[A.GatewayTimeout=504]="GatewayTimeout"})(EA||(EA={}));var L0;(function(A){A.Accept="accept",A.ContentType="content-type"})(L0||(L0={}));var T0;(function(A){A.ApplicationJson="application/json"})(T0||(T0={}));var Nq=[EA.MovedPermanently,EA.ResourceMoved,EA.SeeOther,EA.TemporaryRedirect,EA.PermanentRedirect],Sq=[EA.BadGateway,EA.ServiceUnavailable,EA.GatewayTimeout];var v0=require("os"),ws=require("fs"),Ig=function(A,e,t,r){function s(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function o(l){try{c(r.next(l))}catch(g){i(g)}}function a(l){try{c(r.throw(l))}catch(g){i(g)}}function c(l){l.done?n(l.value):s(l.value).then(o,a)}c((r=r.apply(A,e||[])).next())})},{access:vM,appendFile:qM,writeFile:GM}=ws.promises,x0="GITHUB_STEP_SUMMARY";var Cg=class{constructor(){this._buffer=""}filePath(){return Ig(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let e=process.env[x0];if(!e)throw new Error(`Unable to find environment variable for $${x0}. Check if your runtime environment supports job summaries.`);try{yield vM(e,ws.constants.R_OK|ws.constants.W_OK)}catch{throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}return this._filePath=e,this._filePath})}wrap(e,t,r={}){let s=Object.entries(r).map(([n,i])=>` ${n}="${i}"`).join("");return t?`<${e}${s}>${t}`:`<${e}${s}>`}write(e){return Ig(this,void 0,void 0,function*(){let t=!!e?.overwrite,r=yield this.filePath();return yield(t?GM:qM)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return Ig(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this}addEOL(){return this.addRaw(v0.EOL)}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),s=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(s).addEOL()}addList(e,t=!1){let r=t?"ol":"ul",s=e.map(i=>this.wrap("li",i)).join(""),n=this.wrap(r,s);return this.addRaw(n).addEOL()}addTable(e){let t=e.map(s=>{let n=s.map(i=>{if(typeof i=="string")return this.wrap("td",i);let{header:o,data:a,colspan:c,rowspan:l}=i,g=o?"th":"td",Q=Object.assign(Object.assign({},c&&{colspan:c}),l&&{rowspan:l});return this.wrap(g,a,Q)}).join("");return this.wrap("tr",n)}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){let{width:s,height:n}=r||{},i=Object.assign(Object.assign({},s&&{width:s}),n&&{height:n}),o=this.wrap("img",null,Object.assign({src:e,alt:t},i));return this.addRaw(o).addEOL()}addHeading(e,t){let r=`h${t}`,s=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",n=this.wrap(s,e);return this.addRaw(n).addEOL()}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),s=this.wrap("blockquote",e,r);return this.addRaw(s).addEOL()}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}},Vq=new Cg;var dg=tA(require("os"),1);var Ui=tA(require("fs"),1);var{chmod:YM,copyFile:JM,lstat:VM,mkdir:HM,open:Wq,readdir:OM,rename:WM,rm:PM,rmdir:Pq,stat:jM,symlink:_M,unlink:ZM}=Ui.promises,KM=process.platform==="win32";var jq=Ui.constants.O_RDONLY;var zq=process.platform==="win32";var tG=dg.default.platform(),rG=dg.default.arch();var fg;(function(A){A[A.Success=0]="Success",A[A.Failure=1]="Failure"})(fg||(fg={}));function yt(A,e){let t=process.env[`INPUT_${A.replace(/ /g,"_").toUpperCase()}`]||"";if(e&&e.required&&!t)throw new Error(`Input required and not supplied: ${A}`);return e&&e.trimWhitespace===!1?t:t.trim()}function Y0(A,e){if(process.env.GITHUB_OUTPUT||"")return el("OUTPUT",Al(A,e));process.stdout.write(G0.EOL),ji("set-output",{name:A},UA(e))}function J0(A){process.exitCode=fg.Failure,rL(A)}function rL(A,e={}){ji("error",Kg(e),A instanceof Error?A.toString():A)}var V0=(A,e)=>{if(e&&A!=="custom")throw new Error("`custom_versions` can only be used with kind `custom`");return!0};var mg={"currently-supported":!0,latest:!0,custom:!0,usable:!0,nightly:!0,recent:!0,all:!0};var H0=A=>{if(!(A in mg))throw new Error(`Invalid kind provided, supported kinds are: ${Object.keys(mg).join(", ")}`);return!0};var O0=(A,e)=>nL.reduce((t,r)=>r(A,e),!0),nL=[H0,V0];var pg={"mage-os":!0,"mage-os-minimal":!0,"magento-open-source":!0};var W0=A=>{if(!(A in pg))throw new Error(`Invalid project provided, supported projects are: ${Object.keys(pg).join(", ")}`);return!0};var Ds=A=>W0(A);var P0={"mage-os/project-community-edition:1.0.0":{magento:"mage-os/project-community-edition:1.0.0",upstream:"2.4.6-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2023-10-11T00:00:00+0000"},"mage-os/project-community-edition:1.0.1":{magento:"mage-os/project-community-edition:1.0.1",upstream:"2.4.6-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-11T00:00:00+0000",eol:"2024-07-17T00:00:00+0000"},"mage-os/project-community-edition:1.0.2":{magento:"mage-os/project-community-edition:1.0.2",upstream:"2.4.7-p1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-07-18T00:00:00+0000",eol:"2024-07-22T00:00:00+0000"},"mage-os/project-community-edition:1.0.3":{magento:"mage-os/project-community-edition:1.0.3",upstream:"2.4.7-p1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-07-23T00:00:00+0000",eol:"2024-08-19T00:00:00+0000"},"mage-os/project-community-edition:1.0.4":{magento:"mage-os/project-community-edition:1.0.4",upstream:"2.4.7-p2",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-08-20T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"mage-os/project-community-edition:1.0.5":{magento:"mage-os/project-community-edition:1.0.5",upstream:"2.4.7-p3",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-10-09T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"mage-os/project-community-edition:1.0.6":{magento:"mage-os/project-community-edition:1.0.6",upstream:"2.4.7-p4",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-02-12T00:00:00+0000",eol:"2025-04-07T00:00:00+0000"},"mage-os/project-community-edition:1.1.0":{magento:"mage-os/project-community-edition:1.1.0",upstream:"2.4.8",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-15T00:00:00+0000",eol:"2025-04-21T00:00:00+0000"},"mage-os/project-community-edition:1.1.1":{magento:"mage-os/project-community-edition:1.1.1",upstream:"2.4.8",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-22T00:00:00+0000",eol:"2025-06-16T00:00:00+0000"},"mage-os/project-community-edition:1.2.0":{magento:"mage-os/project-community-edition:1.2.0",upstream:"2.4.8-p1",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-17T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"mage-os/project-community-edition:1.3.0":{magento:"mage-os/project-community-edition:1.3.0",upstream:"2.4.8-p2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-08-13T00:00:00+0000",eol:"2025-09-08T00:00:00+0000"},"mage-os/project-community-edition:1.3.1":{magento:"mage-os/project-community-edition:1.3.1",upstream:"2.4.8-p2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-09-09T00:00:00+0000",eol:"2025-10-16T00:00:00+0000"},"mage-os/project-community-edition:2.0.0":{magento:"mage-os/project-community-edition:2.0.0",upstream:"2.4.8-p3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-10-16T00:00:00+0000",eol:"2026-01-20T00:00:00+0000"},"mage-os/project-community-edition:2.1.0":{magento:"mage-os/project-community-edition:2.1.0",upstream:"2.4.8-p3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-01-20T00:00:00+0000",eol:"2026-03-10T00:00:00+0000"},"mage-os/project-community-edition:2.2.0":{magento:"mage-os/project-community-edition:2.2.0",upstream:"2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-03-18T00:00:00+0000"},"mage-os/project-community-edition:2.2.1":{magento:"mage-os/project-community-edition:2.2.1",upstream:"2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-18T00:00:00+0000",eol:"2026-04-15T00:00:00+0000"},"mage-os/project-community-edition:2.2.2":{magento:"mage-os/project-community-edition:2.2.2",upstream:"2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",redis:"redis:7.2",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-04-15T00:00:00+0000",eol:"2026-05-13T00:00:00+0000"},"mage-os/project-community-edition:2.3.0":{magento:"mage-os/project-community-edition:2.3.0",upstream:"2.4.8-p5",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-05-13T00:00:00+0000",eol:"2026-05-19T00:00:00+0000"},"mage-os/project-community-edition:3.0.0":{magento:"mage-os/project-community-edition:3.0.0",upstream:"2.4.9",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var j0={"mage-os/project-minimal-edition:3.0.0":{magento:"mage-os/project-minimal-edition:3.0.0",upstream:"2.4.9",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var _0={"magento/project-community-edition:2.3.7-p3":{magento:"magento/project-community-edition:2.3.7-p3",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-04-12T00:00:00+0000",eol:"2022-08-09T00:00:00+0000"},"magento/project-community-edition:2.3.7-p4":{magento:"magento/project-community-edition:2.3.7-p4",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-08-09T00:00:00+0000",eol:"2022-09-30T00:00:00+0000"},"magento/project-community-edition:2.4.0":{magento:"magento/project-community-edition:2.4.0",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.6.2",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-07-28T00:00:00+0000",eol:"2020-10-15T00:00:00+0000"},"magento/project-community-edition:2.4.0-p1":{magento:"magento/project-community-edition:2.4.0-p1",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.6.2",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-10-15T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.1":{magento:"magento/project-community-edition:2.4.1",php:7.4,composer:1,mysql:"mysql:8.0.20",elasticsearch:"elasticsearch:7.7.1",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-10-15T00:00:00+0000",eol:"2021-02-09T00:00:00+0000"},"magento/project-community-edition:2.4.1-p1":{magento:"magento/project-community-edition:2.4.1-p1",php:7.4,composer:1,mysql:"mysql:8.0.20",elasticsearch:"elasticsearch:7.7.1",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-02-09T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.2":{magento:"magento/project-community-edition:2.4.2",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-02-09T00:00:00+0000",eol:"2021-05-11T00:00:00+0000"},"magento/project-community-edition:2.4.2-p1":{magento:"magento/project-community-edition:2.4.2-p1",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-05-11T00:00:00+0000",eol:"2021-08-10T00:00:00+0000"},"magento/project-community-edition:2.4.2-p2":{magento:"magento/project-community-edition:2.4.2-p2",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-08-10T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.3":{magento:"magento/project-community-edition:2.4.3",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-08-10T00:00:00+0000",eol:"2021-10-12T00:00:00+0000"},"magento/project-community-edition:2.4.3-p1":{magento:"magento/project-community-edition:2.4.3-p1",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-10-12T00:00:00+0000",eol:"2022-04-12T00:00:00+0000"},"magento/project-community-edition:2.4.3-p2":{magento:"magento/project-community-edition:2.4.3-p2",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-04-12T00:00:00+0000",eol:"2022-08-09T00:00:00+0000"},"magento/project-community-edition:2.4.3-p3":{magento:"magento/project-community-edition:2.4.3-p3",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2022-08-09T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:2.4.4":{magento:"magento/project-community-edition:2.4.4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-04-12T00:00:00+0000",eol:"2022-08-09T00:00:00+0000"},"magento/project-community-edition:2.4.4-p1":{magento:"magento/project-community-edition:2.4.4-p1",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-08-09T00:00:00+0000",eol:"2022-10-11T00:00:00+0000"},"magento/project-community-edition:2.4.4-p2":{magento:"magento/project-community-edition:2.4.4-p2",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-10-11T00:00:00+0000",eol:"2023-03-14T00:00:00+0000"},"magento/project-community-edition:2.4.4-p3":{magento:"magento/project-community-edition:2.4.4-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-03-14T00:00:00+0000",eol:"2023-06-13T00:00:00+0000"},"magento/project-community-edition:2.4.4-p4":{magento:"magento/project-community-edition:2.4.4-p4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-06-13T00:00:00+0000",eol:"2023-08-08T00:00:00+0000"},"magento/project-community-edition:2.4.4-p5":{magento:"magento/project-community-edition:2.4.4-p5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-08-08T00:00:00+0000",eol:"2023-10-10T00:00:00+0000"},"magento/project-community-edition:2.4.4-p6":{magento:"magento/project-community-edition:2.4.4-p6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2024-02-12T00:00:00+0000"},"magento/project-community-edition:2.4.4-p7":{magento:"magento/project-community-edition:2.4.4-p7",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-02-12T00:00:00+0000",eol:"2024-04-09T00:00:00+0000"},"magento/project-community-edition:2.4.4-p8":{magento:"magento/project-community-edition:2.4.4-p8",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.4-p9":{magento:"magento/project-community-edition:2.4.4-p9",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.4-p10":{magento:"magento/project-community-edition:2.4.4-p10",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.4-p11":{magento:"magento/project-community-edition:2.4.4-p11",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.4-p12":{magento:"magento/project-community-edition:2.4.4-p12",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.4-p13":{magento:"magento/project-community-edition:2.4.4-p13",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-04-24T00:00:00+0000"},"magento/project-community-edition:2.4.5":{magento:"magento/project-community-edition:2.4.5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-08-09T00:00:00+0000",eol:"2022-10-11T00:00:00+0000"},"magento/project-community-edition:2.4.5-p1":{magento:"magento/project-community-edition:2.4.5-p1",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.0",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2022-10-11T00:00:00+0000",eol:"2023-03-14T00:00:00+0000"},"magento/project-community-edition:2.4.5-p2":{magento:"magento/project-community-edition:2.4.5-p2",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-03-14T00:00:00+0000",eol:"2023-06-13T00:00:00+0000"},"magento/project-community-edition:2.4.5-p3":{magento:"magento/project-community-edition:2.4.5-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-06-13T00:00:00+0000",eol:"2023-08-08T00:00:00+0000"},"magento/project-community-edition:2.4.5-p4":{magento:"magento/project-community-edition:2.4.5-p4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-08-08T00:00:00+0000",eol:"2023-10-10T00:00:00+0000"},"magento/project-community-edition:2.4.5-p5":{magento:"magento/project-community-edition:2.4.5-p5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2024-02-12T00:00:00+0000"},"magento/project-community-edition:2.4.5-p6":{magento:"magento/project-community-edition:2.4.5-p6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-02-12T00:00:00+0000",eol:"2024-04-09T00:00:00+0000"},"magento/project-community-edition:2.4.5-p7":{magento:"magento/project-community-edition:2.4.5-p7",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.5-p8":{magento:"magento/project-community-edition:2.4.5-p8",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.5-p9":{magento:"magento/project-community-edition:2.4.5-p9",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.5-p10":{magento:"magento/project-community-edition:2.4.5-p10",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.5-p11":{magento:"magento/project-community-edition:2.4.5-p11",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.5-p12":{magento:"magento/project-community-edition:2.4.5-p12",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.28",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.5-p13":{magento:"magento/project-community-edition:2.4.5-p13",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.5-p14":{magento:"magento/project-community-edition:2.4.5-p14",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.11-management",redis:"redis:6.2",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.6":{magento:"magento/project-community-edition:2.4.6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.1",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-03-14T00:00:00+0000",eol:"2023-06-13T00:00:00+0000"},"magento/project-community-edition:2.4.6-p1":{magento:"magento/project-community-edition:2.4.6-p1",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-06-13T00:00:00+0000",eol:"2023-08-08T00:00:00+0000"},"magento/project-community-edition:2.4.6-p2":{magento:"magento/project-community-edition:2.4.6-p2",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.22",os:"ubuntu-latest",release:"2023-08-08T00:00:00+0000",eol:"2023-10-10T00:00:00+0000"},"magento/project-community-edition:2.4.6-p3":{magento:"magento/project-community-edition:2.4.6-p3",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2024-02-12T00:00:00+0000"},"magento/project-community-edition:2.4.6-p4":{magento:"magento/project-community-edition:2.4.6-p4",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-02-12T00:00:00+0000",eol:"2024-04-09T00:00:00+0000"},"magento/project-community-edition:2.4.6-p5":{magento:"magento/project-community-edition:2.4.6-p5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.6-p6":{magento:"magento/project-community-edition:2.4.6-p6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.6-p7":{magento:"magento/project-community-edition:2.4.6-p7",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.6-p8":{magento:"magento/project-community-edition:2.4.6-p8",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.6-p9":{magento:"magento/project-community-edition:2.4.6-p9",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.0",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.6-p10":{magento:"magento/project-community-edition:2.4.6-p10",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.6-p11":{magento:"magento/project-community-edition:2.4.6-p11",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.3",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.6-p12":{magento:"magento/project-community-edition:2.4.6-p12",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.3",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-10-14T00:00:00+0000"},"magento/project-community-edition:2.4.6-p13":{magento:"magento/project-community-edition:2.4.6-p13",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.5.3",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.3",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-10-14T00:00:00+0000",eol:"2026-03-09T00:00:00+0000"},"magento/project-community-edition:2.4.6-p14":{magento:"magento/project-community-edition:2.4.6-p14",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.19.2",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.1-management",redis:"redis:7.2",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-07T00:00:00+0000"},"magento/project-community-edition:2.4.6-p15":{magento:"magento/project-community-edition:2.4.6-p15",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2026-08-11T00:00:00+0000"},"magento/project-community-edition:2.4.7":{magento:"magento/project-community-edition:2.4.7",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-04-09T00:00:00+0000",eol:"2024-06-11T00:00:00+0000"},"magento/project-community-edition:2.4.7-p1":{magento:"magento/project-community-edition:2.4.7-p1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-06-11T00:00:00+0000",eol:"2024-08-13T00:00:00+0000"},"magento/project-community-edition:2.4.7-p2":{magento:"magento/project-community-edition:2.4.7-p2",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-08-13T00:00:00+0000",eol:"2024-10-08T00:00:00+0000"},"magento/project-community-edition:2.4.7-p3":{magento:"magento/project-community-edition:2.4.7-p3",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2024-10-08T00:00:00+0000",eol:"2025-02-11T00:00:00+0000"},"magento/project-community-edition:2.4.7-p4":{magento:"magento/project-community-edition:2.4.7-p4",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-02-11T00:00:00+0000",eol:"2025-04-08T00:00:00+0000"},"magento/project-community-edition:2.4.7-p5":{magento:"magento/project-community-edition:2.4.7-p5",php:8.3,composer:"2.9.8",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.7-p6":{magento:"magento/project-community-edition:2.4.7-p6",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.7-p7":{magento:"magento/project-community-edition:2.4.7-p7",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-10-14T00:00:00+0000"},"magento/project-community-edition:2.4.7-p8":{magento:"magento/project-community-edition:2.4.7-p8",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.17.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-10-14T00:00:00+0000",eol:"2026-03-09T00:00:00+0000"},"magento/project-community-edition:2.4.7-p9":{magento:"magento/project-community-edition:2.4.7-p9",php:8.3,composer:"2.9.8",mysql:"mariadb:10.11",elasticsearch:"elasticsearch:8.17.4",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.1-management",redis:"redis:7.2",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-07T00:00:00+0000"},"magento/project-community-edition:2.4.7-p10":{magento:"magento/project-community-edition:2.4.7-p10",php:8.3,composer:"2.9.8",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.19.15",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2027-05-31T00:00:00+0000"},"magento/project-community-edition:2.4.8":{magento:"magento/project-community-edition:2.4.8",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",elasticsearch:"elasticsearch:8.17.4",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",valkey:"valkey/valkey:8.0",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-06-10T00:00:00+0000"},"magento/project-community-edition:2.4.8-p1":{magento:"magento/project-community-edition:2.4.8-p1",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.5",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-10T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"magento/project-community-edition:2.4.8-p2":{magento:"magento/project-community-edition:2.4.8-p2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-08-12T00:00:00+0000",eol:"2025-10-14T00:00:00+0000"},"magento/project-community-edition:2.4.8-p3":{magento:"magento/project-community-edition:2.4.8-p3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-10-14T00:00:00+0000",eol:"2026-03-09T00:00:00+0000"},"magento/project-community-edition:2.4.8-p4":{magento:"magento/project-community-edition:2.4.8-p4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-07T00:00:00+0000"},"magento/project-community-edition:2.4.8-p5":{magento:"magento/project-community-edition:2.4.8-p5",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2028-05-31T00:00:00+0000"},"magento/project-community-edition:2.4.9":{magento:"magento/project-community-edition:2.4.9",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"}};var Z0={"mage-os/project-community-edition":{magento:"mage-os/project-community-edition",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-community-edition:next":{magento:"mage-os/project-community-edition:next",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-community-edition:>=1.0 <1.1":{magento:"mage-os/project-community-edition:>=1.0 <1.1",php:8.3,composer:"2.9.8",mysql:"mariadb:10.6",elasticsearch:"elasticsearch:8.11.4",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.5",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2023-10-10T00:00:00+0000",eol:"2025-04-07T00:00:00+0000"},"mage-os/project-community-edition:>=1.1 <1.2":{magento:"mage-os/project-community-edition:>=1.1 <1.2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-15T00:00:00+0000",eol:"2025-06-16T00:00:00+0000"},"mage-os/project-community-edition:>=1.2 <1.3":{magento:"mage-os/project-community-edition:>=1.2 <1.3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-06-17T00:00:00+0000",eol:"2025-08-12T00:00:00+0000"},"mage-os/project-community-edition:>=1.3 <1.4":{magento:"mage-os/project-community-edition:>=1.2 <1.3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-08-13T00:00:00+0000",eol:"2025-10-16T00:00:00+0000"},"mage-os/project-community-edition:>=2.0 <2.1":{magento:"mage-os/project-community-edition:>=2.0 <2.1",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-10-16T00:00:00+0000",eol:"2026-01-20T00:00:00+0000"},"mage-os/project-community-edition:>=2.1 <2.2":{magento:"mage-os/project-community-edition:>=2.1 <2.2",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-01-20T00:00:00+0000",eol:"2026-03-10T00:00:00+0000"},"mage-os/project-community-edition:>=2.2 <2.3":{magento:"mage-os/project-community-edition:>=2.2 <2.3",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.1-management",valkey:"valkey/valkey:8.0",redis:"redis:7.2",varnish:"varnish:7.7",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-03-10T00:00:00+0000",eol:"2026-05-13T00:00:00+0000"},"mage-os/project-community-edition:>=2.3 <2.4":{magento:"mage-os/project-community-edition:>=2.3 <2.4",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:2.19.1",rabbitmq:"rabbitmq:4.0-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2026-05-13T00:00:00+0000",eol:"2026-05-19T00:00:00+0000"},"mage-os/project-community-edition:>=3.0 <3.1":{magento:"mage-os/project-community-edition:>=3.0 <3.1",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var K0={"mage-os/project-minimal-edition":{magento:"mage-os/project-minimal-edition",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-minimal-edition:next":{magento:"mage-os/project-minimal-edition:next",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"},"mage-os/project-minimal-edition:>=3.0 <3.1":{magento:"mage-os/project-minimal-edition:>=3.0 <3.1",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-19T00:00:00+0000",eol:"2029-05-19T00:00:00+0000"}};var X0={"magento/project-community-edition:>=2.3 <2.4":{magento:"magento/project-community-edition:>=2.3 <2.4",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2018-11-28T00:00:00+0000",eol:"2022-09-30T00:00:00+0000"},"magento/project-community-edition:>=2.4.0 <2.4.1":{magento:"magento/project-community-edition:>=2.4.0 <2.4.1",php:7.4,composer:1,mysql:"mysql:5.7.30",elasticsearch:"elasticsearch:7.6.2",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-07-28T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.1 <2.4.2":{magento:"magento/project-community-edition:>=2.4.1 <2.4.2",php:7.4,composer:1,mysql:"mysql:8.0.20",elasticsearch:"elasticsearch:7.7.1",rabbitmq:"rabbitmq:3.8-management",redis:"redis:5.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2020-10-15T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.2 <2.4.3":{magento:"magento/project-community-edition:>=2.4.2 <2.4.3",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.9.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-02-09T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.3 <2.4.4":{magento:"magento/project-community-edition:>=2.4.3 <2.4.4",php:7.4,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.16.3",rabbitmq:"rabbitmq:3.8-management",redis:"redis:6.0",varnish:"varnish:6.0",nginx:"nginx:1.18",os:"ubuntu-20.04",release:"2021-08-10T00:00:00+0000",eol:"2022-11-28T00:00:00+0000"},"magento/project-community-edition:>=2.4.4 <2.4.5":{magento:"magento/project-community-edition:>=2.4.4 <2.4.5",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.5",rabbitmq:"rabbitmq:3.9-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-04-24T00:00:00+0000"},"magento/project-community-edition:>=2.4.5 <2.4.6":{magento:"magento/project-community-edition:>=2.4.5 <2.4.6",php:8.1,composer:"2.2.28",mysql:"mysql:8.0",elasticsearch:"elasticsearch:7.17.28",rabbitmq:"rabbitmq:3.13-management",redis:"redis:7.2",varnish:"varnish:7.6",nginx:"nginx:1.26",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2025-08-09T00:00:00+0000"},"magento/project-community-edition:>=2.4.6 <2.4.7":{magento:"magento/project-community-edition:>=2.4.6 <2.4.7",php:8.2,composer:"2.2.28",mysql:"mysql:8.0",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2026-08-11T00:00:00+0000"},"magento/project-community-edition:>=2.4.7 <2.4.8":{magento:"magento/project-community-edition:>=2.4.7 <2.4.8",php:8.3,composer:"2.9.8",mysql:"mysql:8.0",elasticsearch:"elasticsearch:8.19.15",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2027-05-31T00:00:00+0000"},"magento/project-community-edition:>=2.4.8 <2.4.9":{magento:"magento/project-community-edition:>=2.4.8 <2.4.9",php:8.4,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:8.1",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2025-04-08T00:00:00+0000",eol:"2028-05-31T00:00:00+0000"},"magento/project-community-edition:>=2.4.9 <2.4.10":{magento:"magento/project-community-edition:>=2.4.9 <2.4.10",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"},"magento/project-community-edition":{magento:"magento/project-community-edition",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",valkey:"valkey/valkey:9",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"},"magento/project-community-edition:next":{magento:"magento/project-community-edition:@alpha",php:8.5,composer:"2.9.8",mysql:"mysql:8.4",valkey:"valkey/valkey:9",opensearch:"opensearchproject/opensearch:3",rabbitmq:"rabbitmq:4.2-management",varnish:"varnish:8",nginx:"nginx:1.28",os:"ubuntu-latest",release:"2026-05-07T00:00:00+0000",eol:"2029-05-31T00:00:00+0000"}};var z0={"mage-os":P0,"mage-os-minimal":j0,"magento-open-source":_0},$0={"mage-os":Z0,"mage-os-minimal":K0,"magento-open-source":X0},hA=A=>{if(Ds(A),z0[A]===void 0)throw new Error(`Project "${A}" has no individual version specifications`);return z0[A]},ed=A=>{if(Ds(A),$0[A]===void 0)throw new Error(`Project "${A}" has no composite version specifications`);return $0[A]};var zA=(A,e)=>{let t={...hA(A),...ed(A)};return e.reduce((r,s)=>{if(t[s]===void 0)throw new Error(`Unknown "${s}" version while computing matrix`);return{magento:[...r.magento,s],include:[...r.include,{...t[s],version:s.split(":")[1]??""}]}},{magento:[],include:[]})};var Ad={"mage-os":["mage-os/project-community-edition"],"mage-os-minimal":["mage-os/project-minimal-edition"],"magento-open-source":["magento/project-community-edition"]};var td={"mage-os":["mage-os/project-community-edition:next"],"mage-os-minimal":["mage-os/project-minimal-edition:next"],"magento-open-source":["magento/project-community-edition:next"]};var rd=(A=new Date)=>{let e=new Date(A);return e.setDate(e.getDate()-1),e};var sd=(A,e)=>{let t=hA(A);return Object.entries(t).filter(([,r])=>{let s=new Date(r.release);return s.setSeconds(s.getSeconds()+1),e>=s&&new Date(r.eol)>=e}).map(([r])=>r)};var Hg=tA(Kf()),fv={"magento/project-community-edition:2.4.2":"requires insecure composer <=2.1","magento/project-community-edition:2.4.2-p1":"requires insecure composer <=2.1","magento/project-community-edition:2.4.2-p2":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3-p1":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3-p2":"requires insecure composer <=2.1","magento/project-community-edition:2.4.3-p3":"requires insecure composer <=2.1","mage-os/project-community-edition:2.2.1":"uninstallable due to webonyx/graphql-php security advisory"},Xf=A=>{let e=hA(A);return Object.entries(e).filter(([t,r])=>{let s=Hg.default.coerce(r.composer.toString());return!(s&&Hg.default.lt(s,"2.0.0")||t in fv)}).map(([t])=>t)};var zf=(A,e)=>{switch(A){case"https://nightly.mage-os.org":case"https://upstream-nightly.mage-os.org":return"@alpha";default:return"next"}};var Og=(A,e,t)=>A.replace(/(?!:)next$/,zf(e,t));var mv="next",$f=(A,e,t=new Date)=>{let r=new RegExp(mv+"$");return A.magento=A.magento.map(s=>s.match(r)?Og(s,e,t):s),A.include=A.include.map(s=>{if(!s.magento.match(r))return s;let n=Og(s.magento,e,t);return{...s,magento:n,version:n.split(":")[1]}}),A};var em=(A,e,t)=>{let r=/(?:(\d+)\s*y)?\s*(?:(\d+)\s*m)?\s*(?:(\d+)\s*d)?/i,s=t.match(r);if(!s)throw new Error(`Invalid duration string: ${t}`);let n=parseInt(s[1]||"0",10),i=parseInt(s[2]||"0",10),o=parseInt(s[3]||"0",10),a=hA(A);return Object.entries(a).filter(([,c])=>{let l=new Date(c.release);l.setSeconds(l.getSeconds()+1);let g=new Date(c.release);return g.setFullYear(g.getFullYear()+n),g.setMonth(g.getMonth()+i),g.setDate(g.getDate()+o),e>=l&&e<=g}).map(([c])=>c)};var Am=(A,e,t="",r="2y")=>{switch(A){case"latest":return zA(e,Ad[e]);case"currently-supported":return zA(e,sd(e,new Date));case"usable":return zA(e,Xf(e));case"nightly":return $f(zA(e,td[e]),"https://upstream-nightly.mage-os.org",rd());case"all":return zA(e,Object.keys(hA(e)));case"custom":return zA(e,t.split(","));case"recent":return zA(e,em(e,new Date,r));default:throw new Error(`Unreachable kind: ${A} discovered, please report to the maintainers.`)}};var tm={getConfig(A){return{image:A,env:{MYSQL_DATABASE:"magento_integration_tests",MYSQL_USER:"user",MYSQL_PASSWORD:"password",MYSQL_ROOT_PASSWORD:"rootpassword"},ports:["3306:3306"],options:'--health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3'}}},rm={getConfig(A){return{image:A,env:{"discovery.type":"single-node","xpack.security.enabled":"false","xpack.security.http.ssl.enabled":"false","xpack.security.transport.ssl.enabled":"false"},ports:["9200:9200"],options:'--health-cmd "curl http://localhost:9200/_cluster/health" --health-interval 10s --health-timeout 5s --health-retries 10'}}},sm={getConfig(A){return{image:A,env:{"discovery.type":"single-node",DISABLE_INSTALL_DEMO_CONFIG:"true",DISABLE_SECURITY_PLUGIN:"true"},ports:["9200:9200"],options:'--health-cmd "curl http://localhost:9200/_cluster/health" --health-interval 10s --health-timeout 5s --health-retries 10'}}},nm={getConfig(A){return{image:A,env:{RABBITMQ_DEFAULT_USER:"guest",RABBITMQ_DEFAULT_PASS:"guest"},ports:["5672:5672"]}}},im={getConfig(A){return{image:A,ports:["6379:6379"]}}},om={getConfig(A){return{image:A,ports:["6379:6379"]}}},am=(A,e)=>({image:A,ports:["80:80"],volumes:[`${e}:/var/www/html`],options:'--health-cmd "nginx -t" --health-interval=10s --health-retries=3 --health-timeout=5s --health-start-period=5s'}),cm=(A,e)=>({image:`mappia/magento-php:fpm-alpine${A}`,volumes:[`${e}:/var/www/html`]});var pv=(A,e)=>e==="opensearch"?A.opensearch&&A.opensearch.trim()!==""?{type:"opensearch",image:A.opensearch}:null:e==="elasticsearch"?A.elasticsearch&&A.elasticsearch.trim()!==""?{type:"elasticsearch",image:A.elasticsearch}:null:A.opensearch&&A.opensearch.trim()!==""?{type:"opensearch",image:A.opensearch}:A.elasticsearch&&A.elasticsearch.trim()!==""?{type:"elasticsearch",image:A.elasticsearch}:null,yv=(A,e)=>e==="valkey"?A.valkey&&A.valkey.trim()!==""?{type:"valkey",image:A.valkey}:null:e==="redis"?A.redis&&A.redis.trim()!==""?{type:"redis",image:A.redis}:null:A.valkey&&A.valkey.trim()!==""?{type:"valkey",image:A.valkey}:A.redis&&A.redis.trim()!==""?{type:"redis",image:A.redis}:null,gm=(A,e={},t="")=>{let r={};A.mysql&&A.mysql.trim()!==""&&(r.mysql=tm.getConfig(A.mysql));let s=pv(A,e.search);s&&(s.type==="opensearch"?r.opensearch=sm.getConfig(s.image):r.elasticsearch=rm.getConfig(s.image)),A.rabbitmq&&A.rabbitmq.trim()!==""&&(r.rabbitmq=nm.getConfig(A.rabbitmq));let n=yv(A,e.cache);n&&(n.type==="valkey"?r.valkey=om.getConfig(n.image):r.redis=im.getConfig(n.image));let i=(A.nginx||"").trim(),o=String(A.php??"").trim();return i!==""&&o!==""&&(r.nginx=am(i,t),r["php-fpm"]=cm(o,t)),r};var Wg={mysql:"db",elasticsearch:"search",opensearch:"search",rabbitmq:"queue",redis:"cache",valkey:"cache"},lm={db:["mysql"],search:["opensearch","elasticsearch"],queue:["rabbitmq"],cache:["valkey","redis"]},Pg=Object.keys(Wg);var jg=A=>{let e=(A||"").trim();if(e==="")return{};let t=e.split(",").map(s=>s.trim()).filter(s=>s!==""),r={};for(let s of t){let n=Wg[s];if(!n)throw new Error(`service_preferences: unknown service "${s}". Known services: ${Pg.join(", ")}`);let i=r[n];if(i)throw new Error(`service_preferences: collision in tier "${n}" \u2014 both "${i}" and "${s}" specified`);r[n]=s}return r};var _g=(A,e)=>{let t=[];for(let r of Object.keys(A)){let s=A[r],n=lm[r],i=[];for(let o of e){let a=o[s];if(!(typeof a=="string"&&a.trim()!=="")){let l=n.filter(g=>{let Q=o[g];return typeof Q=="string"&&Q.trim()!==""});i.push({version:o.version,supported:l})}}if(i.length>0){let o=i.map(a=>` - magento ${a.version} (supported: ${a.supported.length>0?a.supported.join(", "):""})`).join(` `);t.push(`service_preferences "${s}" is not satisfied for: ${o}`)}}if(t.length>0)throw new Error(t.join(` diff --git a/supported-version/src/kind/validate-kinds.ts b/supported-version/src/kind/validate-kinds.ts index a584a35..c149d3d 100644 --- a/supported-version/src/kind/validate-kinds.ts +++ b/supported-version/src/kind/validate-kinds.ts @@ -2,7 +2,7 @@ import { customVersionsValidator } from "./validations/custom-versions-validator import { isKnownKind } from "./validations/is-known-kind"; import { KindValidator } from "./validator"; -export const validateKind: KindValidator = (kind, custom_versions = null): boolean => { +export const validateKind: KindValidator = (kind, custom_versions): boolean => { return validators.reduce((acc, el) => el(kind, custom_versions), true); } diff --git a/supported-version/src/matrix/get-matrix-for-kind.ts b/supported-version/src/matrix/get-matrix-for-kind.ts index d52ce78..1b0f4b8 100644 --- a/supported-version/src/matrix/get-matrix-for-kind.ts +++ b/supported-version/src/matrix/get-matrix-for-kind.ts @@ -12,13 +12,13 @@ export const getMatrixForKind = (kind: string, project: string, versions = "", r switch(kind){ case 'latest': - return getMatrixForVersions(project, latestJson[project]); + return getMatrixForVersions(project, latestJson[project as keyof typeof latestJson]); case 'currently-supported': return getMatrixForVersions(project, getCurrentlySupportedVersions(project, new Date())); case 'usable': return getMatrixForVersions(project, getUsableVersions(project)); case 'nightly': - return amendMatrixForNext(getMatrixForVersions(project, nightlyJson[project]), 'https://upstream-nightly.mage-os.org', getDayBefore()); + return amendMatrixForNext(getMatrixForVersions(project, nightlyJson[project as keyof typeof nightlyJson]), 'https://upstream-nightly.mage-os.org', getDayBefore()); case 'all': return getMatrixForVersions(project, Object.keys(getIndividualVersionsForProject(project))); case 'custom': diff --git a/supported-version/tsconfig.json b/supported-version/tsconfig.json index 0388e90..63167a9 100644 --- a/supported-version/tsconfig.json +++ b/supported-version/tsconfig.json @@ -2,5 +2,8 @@ "compilerOptions": { "resolveJsonModule": true, "esModuleInterop": true, + "typeRoots": ["../node_modules/@types"], + "types": ["jest"], + "target": "ES2022" } } \ No newline at end of file