From f945ea817f0a9e7055cb9a6415cf4f4f63c43495 Mon Sep 17 00:00:00 2001 From: Josh Willox Date: Mon, 11 Dec 2023 00:20:27 +1100 Subject: [PATCH] feat: add initial action --- .gitignore | 1 - action.yml | 40 ++ dist/index.js | 21 + package.json | 43 ++ pnpm-lock.yaml | 1519 ++++++++++++++++++++++++++++++++++++++++++ src/index.ts | 95 +++ src/install.ts | 93 +++ src/presets/index.ts | 17 + src/types.ts | 12 + tsconfig.json | 19 + 10 files changed, 1859 insertions(+), 1 deletion(-) create mode 100644 action.yml create mode 100644 dist/index.js create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 src/index.ts create mode 100644 src/install.ts create mode 100644 src/presets/index.ts create mode 100644 src/types.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore index 856dd43..34477e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ # compiled output -dist/ node_modules/ build/ /out/ diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..ec46092 --- /dev/null +++ b/action.yml @@ -0,0 +1,40 @@ +name: "Install Tool" +description: "Provide a description here" +branding: + icon: "download-cloud" + color: "yellow" + +inputs: + preset: + description: "Preset to use for the tool" + version: + description: "Version of the tool to install" + default: "latest" + repo: + description: "Repository to use for defaults" + version_url: + description: "URL to fetch the version from" + version_regex: + description: "Regex to extract the version from the version_url" + default: "(?[\\d.]+)" + download_url: + description: "URL to download the tool from" + download_name: + description: "Rename the downloaded file, runs before extraction checks" + bin_path: + description: "Sub-path of downloaded archive to add to PATH" + cache: + description: "Disable use of the tool cache" + default: "true" + token: + description: "Token to use for GitHub API requests" + +outputs: + path: + description: "Path to the tool" + version: + description: "Version of the tool" + +runs: + using: node20 + main: dist/index.js diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..8010855 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,21 @@ +'use strict'; + +var li = require('crypto'); +var kn = require('path'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var li__default = /*#__PURE__*/_interopDefault(li); +var kn__default = /*#__PURE__*/_interopDefault(kn); + +var zn=Object.create;var Me=Object.defineProperty;var Jn=Object.getOwnPropertyDescriptor;var Kn=Object.getOwnPropertyNames;var Yn=Object.getPrototypeOf,Zn=Object.prototype.hasOwnProperty;var _=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var $=(e,t)=>()=>(e&&(t=e(e=0)),t);var b=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Qn=(e,t)=>{for(var r in t)Me(e,r,{get:t[r],enumerable:!0});},tr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Kn(t))!Zn.call(e,i)&&i!==r&&Me(e,i,{get:()=>t[i],enumerable:!(n=Jn(t,i))||n.enumerable});return e};var qe=(e,t,r)=>(r=e!=null?zn(Yn(e)):{},tr(t||!e||!e.__esModule?Me(r,"default",{value:e,enumerable:!0}):r,e)),ei=e=>tr(Me({},"__esModule",{value:!0}),e);var Fe=b(we=>{Object.defineProperty(we,"__esModule",{value:!0});we.toCommandProperties=we.toCommandValue=void 0;function ti(e){return e==null?"":typeof e=="string"||e instanceof String?e:JSON.stringify(e)}we.toCommandValue=ti;function ri(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{}}we.toCommandProperties=ri;});var sr=b(W=>{var ni=W&&W.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),ii=W&&W.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),si=W&&W.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&ni(t,e,r);return ii(t,e),t};Object.defineProperty(W,"__esModule",{value:!0});W.issue=W.issueCommand=void 0;var oi=si(_("os")),nr=Fe();function ir(e,t,r){let n=new ct(e,t,r);process.stdout.write(n.toString()+oi.EOL);}W.issueCommand=ir;function ai(e,t=""){ir(e,{},t);}W.issue=ai;var rr="::",ct=class{constructor(t,r,n){t||(t="missing.command"),this.command=t,this.properties=r,this.message=n;}toString(){let t=rr+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let r=!0;for(let n in this.properties)if(this.properties.hasOwnProperty(n)){let i=this.properties[n];i&&(r?r=!1:t+=",",t+=`${n}=${ui(i)}`);}}return t+=`${rr}${ci(this.message)}`,t}};function ci(e){return nr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function ui(e){return nr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}});function xe(){return Be>Ge.length-16&&(li__default.default.randomFillSync(Ge),Be=0),Ge.slice(Be,Be+=16)}var Ge,Be,ut=$(()=>{Ge=new Uint8Array(256),Be=Ge.length;});var or,ar=$(()=>{or=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;});function fi(e){return typeof e=="string"&&or.test(e)}var ae,Pe=$(()=>{ar();ae=fi;});function di(e,t=0){let r=(L[e[t+0]]+L[e[t+1]]+L[e[t+2]]+L[e[t+3]]+"-"+L[e[t+4]]+L[e[t+5]]+"-"+L[e[t+6]]+L[e[t+7]]+"-"+L[e[t+8]]+L[e[t+9]]+"-"+L[e[t+10]]+L[e[t+11]]+L[e[t+12]]+L[e[t+13]]+L[e[t+14]]+L[e[t+15]]).toLowerCase();if(!ae(r))throw TypeError("Stringified UUID is invalid");return r}var L,ce,Ne=$(()=>{Pe();L=[];for(let e=0;e<256;++e)L.push((e+256).toString(16).substr(1));ce=di;});function hi(e,t,r){let n=t&&r||0,i=t||new Array(16);e=e||{};let s=e.node||cr,o=e.clockseq!==void 0?e.clockseq:lt;if(s==null||o==null){let E=e.random||(e.rng||xe)();s==null&&(s=cr=[E[0]|1,E[1],E[2],E[3],E[4],E[5]]),o==null&&(o=lt=(E[6]<<8|E[7])&16383);}let c=e.msecs!==void 0?e.msecs:Date.now(),u=e.nsecs!==void 0?e.nsecs:dt+1,l=c-ft+(u-dt)/1e4;if(l<0&&e.clockseq===void 0&&(o=o+1&16383),(l<0||c>ft)&&e.nsecs===void 0&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");ft=c,dt=u,lt=o,c+=122192928e5;let a=((c&268435455)*1e4+u)%4294967296;i[n++]=a>>>24&255,i[n++]=a>>>16&255,i[n++]=a>>>8&255,i[n++]=a&255;let h=c/4294967296*1e4&268435455;i[n++]=h>>>8&255,i[n++]=h&255,i[n++]=h>>>24&15|16,i[n++]=h>>>16&255,i[n++]=o>>>8|128,i[n++]=o&255;for(let E=0;E<6;++E)i[n+E]=s[E];return t||ce(i)}var cr,lt,ft,dt,ur,lr=$(()=>{ut();Ne();ft=0,dt=0;ur=hi;});function pi(e){if(!ae(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var Ve,ht=$(()=>{Pe();Ve=pi;});function mi(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r{Ne();ht();Ei="6ba7b810-9dad-11d1-80b4-00c04fd430c8",vi="6ba7b811-9dad-11d1-80b4-00c04fd430c8";});function wi(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),li__default.default.createHash("md5").update(e).digest()}var fr,dr=$(()=>{fr=wi;});var yi,hr,pr=$(()=>{pt();dr();yi=ke("v3",48,fr),hr=yi;});function _i(e,t,r){e=e||{};let n=e.random||(e.rng||xe)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return ce(n)}var mr,Er=$(()=>{ut();Ne();mr=_i;});function Ri(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),li__default.default.createHash("sha1").update(e).digest()}var vr,gr=$(()=>{vr=Ri;});var Si,wr,yr=$(()=>{pt();gr();Si=ke("v5",80,vr),wr=Si;});var _r,Or=$(()=>{_r="00000000-0000-0000-0000-000000000000";});function Ti(e){if(!ae(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}var Rr,Sr=$(()=>{Pe();Rr=Ti;});var Tr={};Qn(Tr,{NIL:()=>_r,parse:()=>Ve,stringify:()=>ce,v1:()=>ur,v3:()=>hr,v4:()=>mr,v5:()=>wr,validate:()=>ae,version:()=>Rr});var Ir=$(()=>{lr();pr();Er();yr();Or();Sr();Pe();Ne();ht();});var Pr=b(H=>{var Ii=H&&H.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),Ai=H&&H.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),br=H&&H.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&Ii(t,e,r);return Ai(t,e),t};Object.defineProperty(H,"__esModule",{value:!0});H.prepareKeyValueMessage=H.issueFileCommand=void 0;var Ar=br(_("fs")),mt=br(_("os")),bi=(Ir(),ei(Tr)),xr=Fe();function xi(e,t){let r=process.env[`GITHUB_${e}`];if(!r)throw new Error(`Unable to find environment variable for file command ${e}`);if(!Ar.existsSync(r))throw new Error(`Missing file at path: ${r}`);Ar.appendFileSync(r,`${xr.toCommandValue(t)}${mt.EOL}`,{encoding:"utf8"});}H.issueFileCommand=xi;function Pi(e,t){let r=`ghadelimiter_${bi.v4()}`,n=xr.toCommandValue(t);if(e.includes(r))throw new Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(n.includes(r))throw new Error(`Unexpected input: value should not contain the delimiter "${r}"`);return `${e}<<${r}${mt.EOL}${n}${mt.EOL}${r}`}H.prepareKeyValueMessage=Pi;});var Cr=b(ye=>{Object.defineProperty(ye,"__esModule",{value:!0});ye.checkBypass=ye.getProxyUrl=void 0;function Ni(e){let t=e.protocol==="https:";if(Nr(e))return;let r=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(r)return new URL(r)}ye.getProxyUrl=Ni;function Nr(e){if(!e.hostname)return !1;let t=process.env.no_proxy||process.env.NO_PROXY||"";if(!t)return !1;let r;e.port?r=Number(e.port):e.protocol==="http:"?r=80:e.protocol==="https:"&&(r=443);let n=[e.hostname.toUpperCase()];typeof r=="number"&&n.push(`${n[0]}:${r}`);for(let i of t.split(",").map(s=>s.trim().toUpperCase()).filter(s=>s))if(n.some(s=>s===i))return !0;return !1}ye.checkBypass=Nr;});var Ur=b(_e=>{_("net");var Ci=_("tls"),Et=_("http"),Lr=_("https"),Li=_("events");_("assert");var Di=_("util");_e.httpOverHttp=$i;_e.httpsOverHttp=Ui;_e.httpOverHttps=ji;_e.httpsOverHttps=Mi;function $i(e){var t=new ie(e);return t.request=Et.request,t}function Ui(e){var t=new ie(e);return t.request=Et.request,t.createSocket=Dr,t.defaultPort=443,t}function ji(e){var t=new ie(e);return t.request=Lr.request,t}function Mi(e){var t=new ie(e);return t.request=Lr.request,t.createSocket=Dr,t.defaultPort=443,t}function ie(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||Et.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(n,i,s,o){for(var c=$r(i,s,o),u=0,l=t.requests.length;u=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(c){c.on("free",u),c.on("close",l),c.on("agentRemove",l),t.onSocket(c);function u(){s.emit("free",c,o);}function l(a){s.removeSocket(c),c.removeListener("free",u),c.removeListener("close",l),c.removeListener("agentRemove",l);}});};ie.prototype.createSocket=function(t,r){var n=this,i={};n.sockets.push(i);var s=vt({},n.proxyOptions,{method:"CONNECT",path:t.host+":"+t.port,agent:!1,headers:{host:t.host+":"+t.port}});t.localAddress&&(s.localAddress=t.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),ue("making CONNECT request");var o=n.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",c),o.once("upgrade",u),o.once("connect",l),o.once("error",a),o.end();function c(h){h.upgrade=!0;}function u(h,E,C){process.nextTick(function(){l(h,E,C);});}function l(h,E,C){if(o.removeAllListeners(),E.removeAllListeners(),h.statusCode!==200){ue("tunneling socket could not be established, statusCode=%d",h.statusCode),E.destroy();var pe=new Error("tunneling socket could not be established, statusCode="+h.statusCode);pe.code="ECONNRESET",t.request.emit("error",pe),n.removeSocket(i);return}if(C.length>0){ue("got illegal response body from proxy"),E.destroy();var pe=new Error("got illegal response body from proxy");pe.code="ECONNRESET",t.request.emit("error",pe),n.removeSocket(i);return}return ue("tunneling connection has established"),n.sockets[n.sockets.indexOf(i)]=E,r(E)}function a(h){o.removeAllListeners(),ue(`tunneling socket could not be established, cause=%s +`,h.message,h.stack);var E=new Error("tunneling socket could not be established, cause="+h.message);E.code="ECONNRESET",t.request.emit("error",E),n.removeSocket(i);}};ie.prototype.removeSocket=function(t){var r=this.sockets.indexOf(t);if(r!==-1){this.sockets.splice(r,1);var n=this.requests.shift();n&&this.createSocket(n,function(i){n.request.onSocket(i);});}};function Dr(e,t){var r=this;ie.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),s=vt({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),o=Ci.connect(0,s);r.sockets[r.sockets.indexOf(n)]=o,t(o);});}function $r(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function vt(e){for(var t=1,r=arguments.length;t{jr.exports=Ur();});var yt=b(I=>{var qi=I&&I.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),Fi=I&&I.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),Ke=I&&I.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&qi(t,e,r);return Fi(t,e),t},N=I&&I.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(I,"__esModule",{value:!0});I.HttpClient=I.isHttps=I.HttpClientResponse=I.HttpClientError=I.getProxyUrl=I.MediaTypes=I.Headers=I.HttpCodes=void 0;var Xe=Ke(_("http")),gt=Ke(_("https")),qr=Ke(Cr()),We=Ke(Mr()),Z;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout";})(Z=I.HttpCodes||(I.HttpCodes={}));var U;(function(e){e.Accept="accept",e.ContentType="content-type";})(U=I.Headers||(I.Headers={}));var le;(function(e){e.ApplicationJson="application/json";})(le=I.MediaTypes||(I.MediaTypes={}));function Bi(e){let t=qr.getProxyUrl(new URL(e));return t?t.href:""}I.getProxyUrl=Bi;var Gi=[Z.MovedPermanently,Z.ResourceMoved,Z.SeeOther,Z.TemporaryRedirect,Z.PermanentRedirect],Vi=[Z.BadGateway,Z.ServiceUnavailable,Z.GatewayTimeout],ki=["OPTIONS","GET","DELETE","HEAD"],Xi=10,Wi=5,ze=class e extends Error{constructor(t,r){super(t),this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,e.prototype);}};I.HttpClientError=ze;var Je=class{constructor(t){this.message=t;}readBody(){return N(this,void 0,void 0,function*(){return new Promise(t=>N(this,void 0,void 0,function*(){let r=Buffer.alloc(0);this.message.on("data",n=>{r=Buffer.concat([r,n]);}),this.message.on("end",()=>{t(r.toString());});}))})}};I.HttpClientResponse=Je;function Hi(e){return new URL(e).protocol==="https:"}I.isHttps=Hi;var wt=class{constructor(t,r,n){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=t,this.handlers=r||[],this.requestOptions=n,n&&(n.ignoreSslError!=null&&(this._ignoreSslError=n.ignoreSslError),this._socketTimeout=n.socketTimeout,n.allowRedirects!=null&&(this._allowRedirects=n.allowRedirects),n.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=n.allowRedirectDowngrade),n.maxRedirects!=null&&(this._maxRedirects=Math.max(n.maxRedirects,0)),n.keepAlive!=null&&(this._keepAlive=n.keepAlive),n.allowRetries!=null&&(this._allowRetries=n.allowRetries),n.maxRetries!=null&&(this._maxRetries=n.maxRetries));}options(t,r){return N(this,void 0,void 0,function*(){return this.request("OPTIONS",t,null,r||{})})}get(t,r){return N(this,void 0,void 0,function*(){return this.request("GET",t,null,r||{})})}del(t,r){return N(this,void 0,void 0,function*(){return this.request("DELETE",t,null,r||{})})}post(t,r,n){return N(this,void 0,void 0,function*(){return this.request("POST",t,r,n||{})})}patch(t,r,n){return N(this,void 0,void 0,function*(){return this.request("PATCH",t,r,n||{})})}put(t,r,n){return N(this,void 0,void 0,function*(){return this.request("PUT",t,r,n||{})})}head(t,r){return N(this,void 0,void 0,function*(){return this.request("HEAD",t,null,r||{})})}sendStream(t,r,n,i){return N(this,void 0,void 0,function*(){return this.request(t,r,n,i)})}getJson(t,r={}){return N(this,void 0,void 0,function*(){r[U.Accept]=this._getExistingOrDefaultHeader(r,U.Accept,le.ApplicationJson);let n=yield this.get(t,r);return this._processResponse(n,this.requestOptions)})}postJson(t,r,n={}){return N(this,void 0,void 0,function*(){let i=JSON.stringify(r,null,2);n[U.Accept]=this._getExistingOrDefaultHeader(n,U.Accept,le.ApplicationJson),n[U.ContentType]=this._getExistingOrDefaultHeader(n,U.ContentType,le.ApplicationJson);let s=yield this.post(t,i,n);return this._processResponse(s,this.requestOptions)})}putJson(t,r,n={}){return N(this,void 0,void 0,function*(){let i=JSON.stringify(r,null,2);n[U.Accept]=this._getExistingOrDefaultHeader(n,U.Accept,le.ApplicationJson),n[U.ContentType]=this._getExistingOrDefaultHeader(n,U.ContentType,le.ApplicationJson);let s=yield this.put(t,i,n);return this._processResponse(s,this.requestOptions)})}patchJson(t,r,n={}){return N(this,void 0,void 0,function*(){let i=JSON.stringify(r,null,2);n[U.Accept]=this._getExistingOrDefaultHeader(n,U.Accept,le.ApplicationJson),n[U.ContentType]=this._getExistingOrDefaultHeader(n,U.ContentType,le.ApplicationJson);let s=yield this.patch(t,i,n);return this._processResponse(s,this.requestOptions)})}request(t,r,n,i){return N(this,void 0,void 0,function*(){if(this._disposed)throw new Error("Client has already been disposed.");let s=new URL(r),o=this._prepareRequest(t,s,i),c=this._allowRetries&&ki.includes(t)?this._maxRetries+1:1,u=0,l;do{if(l=yield this.requestRaw(o,n),l&&l.message&&l.message.statusCode===Z.Unauthorized){let h;for(let E of this.handlers)if(E.canHandleAuthentication(l)){h=E;break}return h?h.handleAuthentication(this,o,n):l}let a=this._maxRedirects;for(;l.message.statusCode&&Gi.includes(l.message.statusCode)&&this._allowRedirects&&a>0;){let h=l.message.headers.location;if(!h)break;let E=new URL(h);if(s.protocol==="https:"&&s.protocol!==E.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield l.readBody(),E.hostname!==s.hostname)for(let C in i)C.toLowerCase()==="authorization"&&delete i[C];o=this._prepareRequest(t,E,i),l=yield this.requestRaw(o,n),a--;}if(!l.message.statusCode||!Vi.includes(l.message.statusCode))return l;u+=1,u{function s(o,c){o?i(o):c?n(c):i(new Error("Unknown error"));}this.requestRawWithCallback(t,r,s);})})}requestRawWithCallback(t,r,n){typeof r=="string"&&(t.options.headers||(t.options.headers={}),t.options.headers["Content-Length"]=Buffer.byteLength(r,"utf8"));let i=!1;function s(u,l){i||(i=!0,n(u,l));}let o=t.httpModule.request(t.options,u=>{let l=new Je(u);s(void 0,l);}),c;o.on("socket",u=>{c=u;}),o.setTimeout(this._socketTimeout||3*6e4,()=>{c&&c.end(),s(new Error(`Request timeout: ${t.options.path}`));}),o.on("error",function(u){s(u);}),r&&typeof r=="string"&&o.write(r,"utf8"),r&&typeof r!="string"?(r.on("close",function(){o.end();}),r.pipe(o)):o.end();}getAgent(t){let r=new URL(t);return this._getAgent(r)}_prepareRequest(t,r,n){let i={};i.parsedUrl=r;let s=i.parsedUrl.protocol==="https:";i.httpModule=s?gt:Xe;let o=s?443:80;if(i.options={},i.options.host=i.parsedUrl.hostname,i.options.port=i.parsedUrl.port?parseInt(i.parsedUrl.port):o,i.options.path=(i.parsedUrl.pathname||"")+(i.parsedUrl.search||""),i.options.method=t,i.options.headers=this._mergeHeaders(n),this.userAgent!=null&&(i.options.headers["user-agent"]=this.userAgent),i.options.agent=this._getAgent(i.parsedUrl),this.handlers)for(let c of this.handlers)c.prepareRequest(i.options);return i}_mergeHeaders(t){return this.requestOptions&&this.requestOptions.headers?Object.assign({},He(this.requestOptions.headers),He(t||{})):He(t||{})}_getExistingOrDefaultHeader(t,r,n){let i;return this.requestOptions&&this.requestOptions.headers&&(i=He(this.requestOptions.headers)[r]),t[r]||i||n}_getAgent(t){let r,n=qr.getProxyUrl(t),i=n&&n.hostname;if(this._keepAlive&&i&&(r=this._proxyAgent),this._keepAlive&&!i&&(r=this._agent),r)return r;let s=t.protocol==="https:",o=100;if(this.requestOptions&&(o=this.requestOptions.maxSockets||Xe.globalAgent.maxSockets),n&&n.hostname){let c={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(n.username||n.password)&&{proxyAuth:`${n.username}:${n.password}`}),{host:n.hostname,port:n.port})},u,l=n.protocol==="https:";s?u=l?We.httpsOverHttps:We.httpsOverHttp:u=l?We.httpOverHttps:We.httpOverHttp,r=u(c),this._proxyAgent=r;}if(this._keepAlive&&!r){let c={keepAlive:this._keepAlive,maxSockets:o};r=s?new gt.Agent(c):new Xe.Agent(c),this._agent=r;}return r||(r=s?gt.globalAgent:Xe.globalAgent),s&&this._ignoreSslError&&(r.options=Object.assign(r.options||{},{rejectUnauthorized:!1})),r}_performExponentialBackoff(t){return N(this,void 0,void 0,function*(){t=Math.min(Xi,t);let r=Wi*Math.pow(2,t);return new Promise(n=>setTimeout(()=>n(),r))})}_processResponse(t,r){return N(this,void 0,void 0,function*(){return new Promise((n,i)=>N(this,void 0,void 0,function*(){let s=t.message.statusCode||0,o={statusCode:s,result:null,headers:{}};s===Z.NotFound&&n(o);function c(a,h){if(typeof h=="string"){let E=new Date(h);if(!isNaN(E.valueOf()))return E}return h}let u,l;try{l=yield t.readBody(),l&&l.length>0&&(r&&r.deserializeDates?u=JSON.parse(l,c):u=JSON.parse(l),o.result=u),o.headers=t.message.headers;}catch{}if(s>299){let a;u&&u.message?a=u.message:l&&l.length>0?a=l:a=`Failed request: (${s})`;let h=new ze(a,s);h.result=o.result,i(h);}else n(o);}))})}};I.HttpClient=wt;var He=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});});var Fr=b(ee=>{var St=ee&&ee.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(ee,"__esModule",{value:!0});ee.PersonalAccessTokenCredentialHandler=ee.BearerCredentialHandler=ee.BasicCredentialHandler=void 0;var _t=class{constructor(t,r){this.username=t,this.password=r;}prepareRequest(t){if(!t.headers)throw Error("The request has no headers");t.headers.Authorization=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`;}canHandleAuthentication(){return !1}handleAuthentication(){return St(this,void 0,void 0,function*(){throw new Error("not implemented")})}};ee.BasicCredentialHandler=_t;var Ot=class{constructor(t){this.token=t;}prepareRequest(t){if(!t.headers)throw Error("The request has no headers");t.headers.Authorization=`Bearer ${this.token}`;}canHandleAuthentication(){return !1}handleAuthentication(){return St(this,void 0,void 0,function*(){throw new Error("not implemented")})}};ee.BearerCredentialHandler=Ot;var Rt=class{constructor(t){this.token=t;}prepareRequest(t){if(!t.headers)throw Error("The request has no headers");t.headers.Authorization=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`;}canHandleAuthentication(){return !1}handleAuthentication(){return St(this,void 0,void 0,function*(){throw new Error("not implemented")})}};ee.PersonalAccessTokenCredentialHandler=Rt;});var Vr=b(Oe=>{var Br=Oe&&Oe.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.OidcClient=void 0;var zi=yt(),Ji=Fr(),Gr=me(),Tt=class e{static createHttpClient(t=!0,r=10){let n={allowRetries:t,maxRetries:r};return new zi.HttpClient("actions/oidc-client",[new Ji.BearerCredentialHandler(e.getRequestToken())],n)}static getRequestToken(){let t=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!t)throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return t}static getIDTokenUrl(){let t=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!t)throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return t}static getCall(t){var r;return Br(this,void 0,void 0,function*(){let s=(r=(yield e.createHttpClient().getJson(t).catch(o=>{throw new Error(`Failed to get ID Token. + + Error Code : ${o.statusCode} + + Error Message: ${o.message}`)})).result)===null||r===void 0?void 0:r.value;if(!s)throw new Error("Response json body do not have ID Token field");return s})}static getIDToken(t){return Br(this,void 0,void 0,function*(){try{let r=e.getIDTokenUrl();if(t){let i=encodeURIComponent(t);r=`${r}&audience=${i}`;}Gr.debug(`ID token url is ${r}`);let n=yield e.getCall(r);return Gr.setSecret(n),n}catch(r){throw new Error(`Error message: ${r.message}`)}})}};Oe.OidcClient=Tt;});var xt=b(q=>{var It=q&&q.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(q,"__esModule",{value:!0});q.summary=q.markdownSummary=q.SUMMARY_DOCS_URL=q.SUMMARY_ENV_VAR=void 0;var Ki=_("os"),At=_("fs"),{access:Yi,appendFile:Zi,writeFile:Qi}=At.promises;q.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";q.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";var bt=class{constructor(){this._buffer="";}filePath(){return It(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[q.SUMMARY_ENV_VAR];if(!t)throw new Error(`Unable to find environment variable for $${q.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield Yi(t,At.constants.R_OK|At.constants.W_OK);}catch{throw new Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`)}return this._filePath=t,this._filePath})}wrap(t,r,n={}){let i=Object.entries(n).map(([s,o])=>` ${s}="${o}"`).join("");return r?`<${t}${i}>${r}`:`<${t}${i}>`}write(t){return It(this,void 0,void 0,function*(){let r=!!t?.overwrite,n=yield this.filePath();return yield (r?Qi:Zi)(n,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return It(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(t,r=!1){return this._buffer+=t,r?this.addEOL():this}addEOL(){return this.addRaw(Ki.EOL)}addCodeBlock(t,r){let n=Object.assign({},r&&{lang:r}),i=this.wrap("pre",this.wrap("code",t),n);return this.addRaw(i).addEOL()}addList(t,r=!1){let n=r?"ol":"ul",i=t.map(o=>this.wrap("li",o)).join(""),s=this.wrap(n,i);return this.addRaw(s).addEOL()}addTable(t){let r=t.map(i=>{let s=i.map(o=>{if(typeof o=="string")return this.wrap("td",o);let{header:c,data:u,colspan:l,rowspan:a}=o,h=c?"th":"td",E=Object.assign(Object.assign({},l&&{colspan:l}),a&&{rowspan:a});return this.wrap(h,u,E)}).join("");return this.wrap("tr",s)}).join(""),n=this.wrap("table",r);return this.addRaw(n).addEOL()}addDetails(t,r){let n=this.wrap("details",this.wrap("summary",t)+r);return this.addRaw(n).addEOL()}addImage(t,r,n){let{width:i,height:s}=n||{},o=Object.assign(Object.assign({},i&&{width:i}),s&&{height:s}),c=this.wrap("img",null,Object.assign({src:t,alt:r},o));return this.addRaw(c).addEOL()}addHeading(t,r){let n=`h${r}`,i=["h1","h2","h3","h4","h5","h6"].includes(n)?n:"h1",s=this.wrap(i,t);return this.addRaw(s).addEOL()}addSeparator(){let t=this.wrap("hr",null);return this.addRaw(t).addEOL()}addBreak(){let t=this.wrap("br",null);return this.addRaw(t).addEOL()}addQuote(t,r){let n=Object.assign({},r&&{cite:r}),i=this.wrap("blockquote",t,n);return this.addRaw(i).addEOL()}addLink(t,r){let n=this.wrap("a",t,{href:r});return this.addRaw(n).addEOL()}},kr=new bt;q.markdownSummary=kr;q.summary=kr;});var Xr=b(F=>{var es=F&&F.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),ts=F&&F.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),rs=F&&F.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&es(t,e,r);return ts(t,e),t};Object.defineProperty(F,"__esModule",{value:!0});F.toPlatformPath=F.toWin32Path=F.toPosixPath=void 0;var ns=rs(_("path"));function is(e){return e.replace(/[\\]/g,"/")}F.toPosixPath=is;function ss(e){return e.replace(/[/]/g,"\\")}F.toWin32Path=ss;function os(e){return e.replace(/[/\\]/g,ns.sep)}F.toPlatformPath=os;});var me=b(m=>{var as=m&&m.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),cs=m&&m.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),Wr=m&&m.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&as(t,e,r);return cs(t,e),t},Hr=m&&m.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(m,"__esModule",{value:!0});m.getIDToken=m.getState=m.saveState=m.group=m.endGroup=m.startGroup=m.info=m.notice=m.warning=m.error=m.debug=m.isDebug=m.setFailed=m.setCommandEcho=m.setOutput=m.getBooleanInput=m.getMultilineInput=m.getInput=m.addPath=m.setSecret=m.exportVariable=m.ExitCode=void 0;var z=sr(),Ee=Pr(),Re=Fe(),zr=Wr(_("os")),us=Wr(_("path")),ls=Vr(),Jr;(function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure";})(Jr=m.ExitCode||(m.ExitCode={}));function fs(e,t){let r=Re.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV||"")return Ee.issueFileCommand("ENV",Ee.prepareKeyValueMessage(e,t));z.issueCommand("set-env",{name:e},r);}m.exportVariable=fs;function ds(e){z.issueCommand("add-mask",{},e);}m.setSecret=ds;function hs(e){process.env.GITHUB_PATH||""?Ee.issueFileCommand("PATH",e):z.issueCommand("add-path",{},e),process.env.PATH=`${e}${us.delimiter}${process.env.PATH}`;}m.addPath=hs;function Pt(e,t){let r=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!r)throw new Error(`Input required and not supplied: ${e}`);return t&&t.trimWhitespace===!1?r:r.trim()}m.getInput=Pt;function ps(e,t){let r=Pt(e,t).split(` +`).filter(n=>n!=="");return t&&t.trimWhitespace===!1?r:r.map(n=>n.trim())}m.getMultilineInput=ps;function ms(e,t){let r=["true","True","TRUE"],n=["false","False","FALSE"],i=Pt(e,t);if(r.includes(i))return !0;if(n.includes(i))return !1;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} +Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}m.getBooleanInput=ms;function Es(e,t){if(process.env.GITHUB_OUTPUT||"")return Ee.issueFileCommand("OUTPUT",Ee.prepareKeyValueMessage(e,t));process.stdout.write(zr.EOL),z.issueCommand("set-output",{name:e},Re.toCommandValue(t));}m.setOutput=Es;function vs(e){z.issue("echo",e?"on":"off");}m.setCommandEcho=vs;function gs(e){process.exitCode=Jr.Failure,Kr(e);}m.setFailed=gs;function ws(){return process.env.RUNNER_DEBUG==="1"}m.isDebug=ws;function ys(e){z.issueCommand("debug",{},e);}m.debug=ys;function Kr(e,t={}){z.issueCommand("error",Re.toCommandProperties(t),e instanceof Error?e.toString():e);}m.error=Kr;function _s(e,t={}){z.issueCommand("warning",Re.toCommandProperties(t),e instanceof Error?e.toString():e);}m.warning=_s;function Os(e,t={}){z.issueCommand("notice",Re.toCommandProperties(t),e instanceof Error?e.toString():e);}m.notice=Os;function Rs(e){process.stdout.write(e+zr.EOL);}m.info=Rs;function Yr(e){z.issue("group",e);}m.startGroup=Yr;function Zr(){z.issue("endgroup");}m.endGroup=Zr;function Ss(e,t){return Hr(this,void 0,void 0,function*(){Yr(e);let r;try{r=yield t();}finally{Zr();}return r})}m.group=Ss;function Ts(e,t){if(process.env.GITHUB_STATE||"")return Ee.issueFileCommand("STATE",Ee.prepareKeyValueMessage(e,t));z.issueCommand("save-state",{name:e},Re.toCommandValue(t));}m.saveState=Ts;function Is(e){return process.env[`STATE_${e}`]||""}m.getState=Is;function As(e){return Hr(this,void 0,void 0,function*(){return yield ls.OidcClient.getIDToken(e)})}m.getIDToken=As;var bs=xt();Object.defineProperty(m,"summary",{enumerable:!0,get:function(){return bs.summary}});var xs=xt();Object.defineProperty(m,"markdownSummary",{enumerable:!0,get:function(){return xs.markdownSummary}});var Nt=Xr();Object.defineProperty(m,"toPosixPath",{enumerable:!0,get:function(){return Nt.toPosixPath}});Object.defineProperty(m,"toWin32Path",{enumerable:!0,get:function(){return Nt.toWin32Path}});Object.defineProperty(m,"toPlatformPath",{enumerable:!0,get:function(){return Nt.toPlatformPath}});});var Ut=b(p=>{var Ps=p&&p.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),Ns=p&&p.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),en=p&&p.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&Ps(t,e,r);return Ns(t,e),t},$t=p&&p.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})},B;Object.defineProperty(p,"__esModule",{value:!0});p.getCmdPath=p.tryGetExecutablePath=p.isRooted=p.isDirectory=p.exists=p.READONLY=p.UV_FS_O_EXLOCK=p.IS_WINDOWS=p.unlink=p.symlink=p.stat=p.rmdir=p.rm=p.rename=p.readlink=p.readdir=p.open=p.mkdir=p.lstat=p.copyFile=p.chmod=void 0;var tn=en(_("fs")),Ye=en(_("path"));B=tn.promises,p.chmod=B.chmod,p.copyFile=B.copyFile,p.lstat=B.lstat,p.mkdir=B.mkdir,p.open=B.open,p.readdir=B.readdir,p.readlink=B.readlink,p.rename=B.rename,p.rm=B.rm,p.rmdir=B.rmdir,p.stat=B.stat,p.symlink=B.symlink,p.unlink=B.unlink;p.IS_WINDOWS=process.platform==="win32";p.UV_FS_O_EXLOCK=268435456;p.READONLY=tn.constants.O_RDONLY;function Cs(e){return $t(this,void 0,void 0,function*(){try{yield p.stat(e);}catch(t){if(t.code==="ENOENT")return !1;throw t}return !0})}p.exists=Cs;function Ls(e,t=!1){return $t(this,void 0,void 0,function*(){return (t?yield p.stat(e):yield p.lstat(e)).isDirectory()})}p.isDirectory=Ls;function Ds(e){if(e=Us(e),!e)throw new Error('isRooted() parameter "p" cannot be empty');return p.IS_WINDOWS?e.startsWith("\\")||/^[A-Z]:/i.test(e):e.startsWith("/")}p.isRooted=Ds;function $s(e,t){return $t(this,void 0,void 0,function*(){let r;try{r=yield p.stat(e);}catch(i){i.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${i}`);}if(r&&r.isFile()){if(p.IS_WINDOWS){let i=Ye.extname(e).toUpperCase();if(t.some(s=>s.toUpperCase()===i))return e}else if(Qr(r))return e}let n=e;for(let i of t){e=n+i,r=void 0;try{r=yield p.stat(e);}catch(s){s.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${s}`);}if(r&&r.isFile()){if(p.IS_WINDOWS){try{let s=Ye.dirname(e),o=Ye.basename(e).toUpperCase();for(let c of yield p.readdir(s))if(o===c.toUpperCase()){e=Ye.join(s,c);break}}catch(s){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${s}`);}return e}else if(Qr(r))return e}}return ""})}p.tryGetExecutablePath=$s;function Us(e){return e=e||"",p.IS_WINDOWS?(e=e.replace(/\//g,"\\"),e.replace(/\\\\+/g,"\\")):e.replace(/\/\/+/g,"/")}function Qr(e){return (e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function js(){var e;return (e=process.env.COMSPEC)!==null&&e!==void 0?e:"cmd.exe"}p.getCmdPath=js;});var Ze=b(P=>{var Ms=P&&P.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),qs=P&&P.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),rn=P&&P.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&Ms(t,e,r);return qs(t,e),t},fe=P&&P.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(P,"__esModule",{value:!0});P.findInPath=P.which=P.mkdirP=P.rmRF=P.mv=P.cp=void 0;var Fs=_("assert"),te=rn(_("path")),R=rn(Ut());function Bs(e,t,r={}){return fe(this,void 0,void 0,function*(){let{force:n,recursive:i,copySourceDirectory:s}=Vs(r),o=(yield R.exists(t))?yield R.stat(t):null;if(o&&o.isFile()&&!n)return;let c=o&&o.isDirectory()&&s?te.join(t,te.basename(e)):t;if(!(yield R.exists(e)))throw new Error(`no such file or directory: ${e}`);if((yield R.stat(e)).isDirectory())if(i)yield an(e,c,0,n);else throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);else {if(te.relative(e,c)==="")throw new Error(`'${c}' and '${e}' are the same file`);yield cn(e,c,n);}})}P.cp=Bs;function Gs(e,t,r={}){return fe(this,void 0,void 0,function*(){if(yield R.exists(t)){let n=!0;if((yield R.isDirectory(t))&&(t=te.join(t,te.basename(e)),n=yield R.exists(t)),n)if(r.force==null||r.force)yield nn(t);else throw new Error("Destination already exists")}yield jt(te.dirname(t)),yield R.rename(e,t);})}P.mv=Gs;function nn(e){return fe(this,void 0,void 0,function*(){if(R.IS_WINDOWS&&/[*"<>|]/.test(e))throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield R.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300});}catch(t){throw new Error(`File was unable to be removed ${t}`)}})}P.rmRF=nn;function jt(e){return fe(this,void 0,void 0,function*(){Fs.ok(e,"a path argument must be provided"),yield R.mkdir(e,{recursive:!0});})}P.mkdirP=jt;function sn(e,t){return fe(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");if(t){let n=yield sn(e,!1);if(!n)throw R.IS_WINDOWS?new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`):new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);return n}let r=yield on(e);return r&&r.length>0?r[0]:""})}P.which=sn;function on(e){return fe(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");let t=[];if(R.IS_WINDOWS&&process.env.PATHEXT)for(let i of process.env.PATHEXT.split(te.delimiter))i&&t.push(i);if(R.isRooted(e)){let i=yield R.tryGetExecutablePath(e,t);return i?[i]:[]}if(e.includes(te.sep))return [];let r=[];if(process.env.PATH)for(let i of process.env.PATH.split(te.delimiter))i&&r.push(i);let n=[];for(let i of r){let s=yield R.tryGetExecutablePath(te.join(i,e),t);s&&n.push(s);}return n})}P.findInPath=on;function Vs(e){let t=e.force==null?!0:e.force,r=!!e.recursive,n=e.copySourceDirectory==null?!0:!!e.copySourceDirectory;return {force:t,recursive:r,copySourceDirectory:n}}function an(e,t,r,n){return fe(this,void 0,void 0,function*(){if(r>=255)return;r++,yield jt(t);let i=yield R.readdir(e);for(let s of i){let o=`${e}/${s}`,c=`${t}/${s}`;(yield R.lstat(o)).isDirectory()?yield an(o,c,r,n):yield cn(o,c,n);}yield R.chmod(t,(yield R.stat(e)).mode);})}function cn(e,t,r){return fe(this,void 0,void 0,function*(){if((yield R.lstat(e)).isSymbolicLink()){try{yield R.lstat(t),yield R.unlink(t);}catch(i){i.code==="EPERM"&&(yield R.chmod(t,"0666"),yield R.unlink(t));}let n=yield R.readlink(e);yield R.symlink(n,t,R.IS_WINDOWS?"junction":null);}else (!(yield R.exists(t))||r)&&(yield R.copyFile(e,t));})}});var Xt=b((v,hn)=>{v=hn.exports=g;var T;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?T=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:T=function(){};v.SEMVER_SPEC_VERSION="2.0.0";var Ce=256,Qe=Number.MAX_SAFE_INTEGER||9007199254740991,Mt=16,ks=Ce-6,Se=v.re=[],S=v.safeRe=[],d=v.src=[],f=v.tokens={},fn=0;function y(e){f[e]=fn++;}var Ft="[a-zA-Z0-9-]",qt=[["\\s",1],["\\d",Ce],[Ft,ks]];function De(e){for(var t=0;t)?=?)";y("XRANGEIDENTIFIERLOOSE");d[f.XRANGEIDENTIFIERLOOSE]=d[f.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";y("XRANGEIDENTIFIER");d[f.XRANGEIDENTIFIER]=d[f.NUMERICIDENTIFIER]+"|x|X|\\*";y("XRANGEPLAIN");d[f.XRANGEPLAIN]="[v=\\s]*("+d[f.XRANGEIDENTIFIER]+")(?:\\.("+d[f.XRANGEIDENTIFIER]+")(?:\\.("+d[f.XRANGEIDENTIFIER]+")(?:"+d[f.PRERELEASE]+")?"+d[f.BUILD]+"?)?)?";y("XRANGEPLAINLOOSE");d[f.XRANGEPLAINLOOSE]="[v=\\s]*("+d[f.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[f.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[f.XRANGEIDENTIFIERLOOSE]+")(?:"+d[f.PRERELEASELOOSE]+")?"+d[f.BUILD]+"?)?)?";y("XRANGE");d[f.XRANGE]="^"+d[f.GTLT]+"\\s*"+d[f.XRANGEPLAIN]+"$";y("XRANGELOOSE");d[f.XRANGELOOSE]="^"+d[f.GTLT]+"\\s*"+d[f.XRANGEPLAINLOOSE]+"$";y("COERCE");d[f.COERCE]="(^|[^\\d])(\\d{1,"+Mt+"})(?:\\.(\\d{1,"+Mt+"}))?(?:\\.(\\d{1,"+Mt+"}))?(?:$|[^\\d])";y("COERCERTL");Se[f.COERCERTL]=new RegExp(d[f.COERCE],"g");S[f.COERCERTL]=new RegExp(De(d[f.COERCE]),"g");y("LONETILDE");d[f.LONETILDE]="(?:~>?)";y("TILDETRIM");d[f.TILDETRIM]="(\\s*)"+d[f.LONETILDE]+"\\s+";Se[f.TILDETRIM]=new RegExp(d[f.TILDETRIM],"g");S[f.TILDETRIM]=new RegExp(De(d[f.TILDETRIM]),"g");var Xs="$1~";y("TILDE");d[f.TILDE]="^"+d[f.LONETILDE]+d[f.XRANGEPLAIN]+"$";y("TILDELOOSE");d[f.TILDELOOSE]="^"+d[f.LONETILDE]+d[f.XRANGEPLAINLOOSE]+"$";y("LONECARET");d[f.LONECARET]="(?:\\^)";y("CARETTRIM");d[f.CARETTRIM]="(\\s*)"+d[f.LONECARET]+"\\s+";Se[f.CARETTRIM]=new RegExp(d[f.CARETTRIM],"g");S[f.CARETTRIM]=new RegExp(De(d[f.CARETTRIM]),"g");var Ws="$1^";y("CARET");d[f.CARET]="^"+d[f.LONECARET]+d[f.XRANGEPLAIN]+"$";y("CARETLOOSE");d[f.CARETLOOSE]="^"+d[f.LONECARET]+d[f.XRANGEPLAINLOOSE]+"$";y("COMPARATORLOOSE");d[f.COMPARATORLOOSE]="^"+d[f.GTLT]+"\\s*("+d[f.LOOSEPLAIN]+")$|^$";y("COMPARATOR");d[f.COMPARATOR]="^"+d[f.GTLT]+"\\s*("+d[f.FULLPLAIN]+")$|^$";y("COMPARATORTRIM");d[f.COMPARATORTRIM]="(\\s*)"+d[f.GTLT]+"\\s*("+d[f.LOOSEPLAIN]+"|"+d[f.XRANGEPLAIN]+")";Se[f.COMPARATORTRIM]=new RegExp(d[f.COMPARATORTRIM],"g");S[f.COMPARATORTRIM]=new RegExp(De(d[f.COMPARATORTRIM]),"g");var Hs="$1$2$3";y("HYPHENRANGE");d[f.HYPHENRANGE]="^\\s*("+d[f.XRANGEPLAIN]+")\\s+-\\s+("+d[f.XRANGEPLAIN]+")\\s*$";y("HYPHENRANGELOOSE");d[f.HYPHENRANGELOOSE]="^\\s*("+d[f.XRANGEPLAINLOOSE]+")\\s+-\\s+("+d[f.XRANGEPLAINLOOSE]+")\\s*$";y("STAR");d[f.STAR]="(<|>)?=?\\s*\\*";for(re=0;reCe)return null;var r=t.loose?S[f.LOOSE]:S[f.FULL];if(!r.test(e))return null;try{return new g(e,t)}catch{return null}}v.valid=zs;function zs(e,t){var r=ge(e,t);return r?r.version:null}v.clean=Js;function Js(e,t){var r=ge(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}v.SemVer=g;function g(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof g){if(e.loose===t.loose)return e;e=e.version;}else if(typeof e!="string")throw new TypeError("Invalid Version: "+e);if(e.length>Ce)throw new TypeError("version is longer than "+Ce+" characters");if(!(this instanceof g))return new g(e,t);T("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?S[f.LOOSE]:S[f.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>Qe||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Qe||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Qe||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(n){if(/^[0-9]+$/.test(n)){var i=+n;if(i>=0&&i=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);r===-1&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this};v.inc=Ks;function Ks(e,t,r,n){typeof r=="string"&&(n=r,r=void 0);try{return new g(e,r).inc(t,n).version}catch{return null}}v.diff=Ys;function Ys(e,t){if(Bt(e,t))return null;var r=ge(e),n=ge(t),i="";if(r.prerelease.length||n.prerelease.length){i="pre";var s="prerelease";}for(var o in r)if((o==="major"||o==="minor"||o==="patch")&&r[o]!==n[o])return i+o;return s}v.compareIdentifiers=ve;var un=/^[0-9]+$/;function ve(e,t){var r=un.test(e),n=un.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e0}v.lt=et;function et(e,t,r){return se(e,t,r)<0}v.eq=Bt;function Bt(e,t,r){return se(e,t,r)===0}v.neq=dn;function dn(e,t,r){return se(e,t,r)!==0}v.gte=Gt;function Gt(e,t,r){return se(e,t,r)>=0}v.lte=Vt;function Vt(e,t,r){return se(e,t,r)<=0}v.cmp=tt;function tt(e,t,r,n){switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Bt(e,r,n);case"!=":return dn(e,r,n);case">":return Le(e,r,n);case">=":return Gt(e,r,n);case"<":return et(e,r,n);case"<=":return Vt(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}v.Comparator=J;function J(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof J){if(e.loose===!!t.loose)return e;e=e.value;}if(!(this instanceof J))return new J(e,t);e=e.trim().split(/\s+/).join(" "),T("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Te?this.value="":this.value=this.operator+this.semver.version,T("comp",this);}var Te={};J.prototype.parse=function(e){var t=this.options.loose?S[f.COMPARATORLOOSE]:S[f.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 g(r[2],this.options.loose):this.semver=Te;};J.prototype.toString=function(){return this.value};J.prototype.test=function(e){if(T("Comparator.test",e,this.options.loose),this.semver===Te||e===Te)return !0;if(typeof e=="string")try{e=new g(e,this.options);}catch{return !1}return tt(e,this.operator,this.semver,this.options)};J.prototype.intersects=function(e,t){if(!(e instanceof J))throw new TypeError("a Comparator is required");(!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1});var r;if(this.operator==="")return this.value===""?!0:(r=new x(e.value,t),rt(this.value,r,t));if(e.operator==="")return e.value===""?!0:(r=new x(this.value,t),rt(e.semver,r,t));var n=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),i=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),c=tt(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),u=tt(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||i||s&&o||c||u};v.Range=x;function x(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof x)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new x(e.raw,t);if(e instanceof J)return new x(e.value,t);if(!(this instanceof x))return new x(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(r){return this.parseRange(r.trim())},this).filter(function(r){return r.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format();}x.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range};x.prototype.toString=function(){return this.range};x.prototype.parseRange=function(e){var t=this.options.loose,r=t?S[f.HYPHENRANGELOOSE]:S[f.HYPHENRANGE];e=e.replace(r,vo),T("hyphen replace",e),e=e.replace(S[f.COMPARATORTRIM],Hs),T("comparator trim",e,S[f.COMPARATORTRIM]),e=e.replace(S[f.TILDETRIM],Xs),e=e.replace(S[f.CARETTRIM],Ws),e=e.split(/\s+/).join(" ");var n=t?S[f.COMPARATORLOOSE]:S[f.COMPARATOR],i=e.split(" ").map(function(s){return co(s,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(s){return !!s.match(n)})),i=i.map(function(s){return new J(s,this.options)},this),i};x.prototype.intersects=function(e,t){if(!(e instanceof x))throw new TypeError("a Range is required");return this.set.some(function(r){return ln(r,t)&&e.set.some(function(n){return ln(n,t)&&r.every(function(i){return n.every(function(s){return i.intersects(s,t)})})})})};function ln(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(s){return i.intersects(s,t)}),i=n.pop();return r}v.toComparators=ao;function ao(e,t){return new x(e,t).set.map(function(r){return r.map(function(n){return n.value}).join(" ").trim().split(" ")})}function co(e,t){return T("comp",e,t),e=fo(e,t),T("caret",e),e=uo(e,t),T("tildes",e),e=po(e,t),T("xrange",e),e=Eo(e,t),T("stars",e),e}function j(e){return !e||e.toLowerCase()==="x"||e==="*"}function uo(e,t){return e.trim().split(/\s+/).map(function(r){return lo(r,t)}).join(" ")}function lo(e,t){var r=t.loose?S[f.TILDELOOSE]:S[f.TILDE];return e.replace(r,function(n,i,s,o,c){T("tilde",e,n,i,s,o,c);var u;return j(i)?u="":j(s)?u=">="+i+".0.0 <"+(+i+1)+".0.0":j(o)?u=">="+i+"."+s+".0 <"+i+"."+(+s+1)+".0":c?(T("replaceTilde pr",c),u=">="+i+"."+s+"."+o+"-"+c+" <"+i+"."+(+s+1)+".0"):u=">="+i+"."+s+"."+o+" <"+i+"."+(+s+1)+".0",T("tilde return",u),u})}function fo(e,t){return e.trim().split(/\s+/).map(function(r){return ho(r,t)}).join(" ")}function ho(e,t){T("caret",e,t);var r=t.loose?S[f.CARETLOOSE]:S[f.CARET];return e.replace(r,function(n,i,s,o,c){T("caret",e,n,i,s,o,c);var u;return j(i)?u="":j(s)?u=">="+i+".0.0 <"+(+i+1)+".0.0":j(o)?i==="0"?u=">="+i+"."+s+".0 <"+i+"."+(+s+1)+".0":u=">="+i+"."+s+".0 <"+(+i+1)+".0.0":c?(T("replaceCaret pr",c),i==="0"?s==="0"?u=">="+i+"."+s+"."+o+"-"+c+" <"+i+"."+s+"."+(+o+1):u=">="+i+"."+s+"."+o+"-"+c+" <"+i+"."+(+s+1)+".0":u=">="+i+"."+s+"."+o+"-"+c+" <"+(+i+1)+".0.0"):(T("no pr"),i==="0"?s==="0"?u=">="+i+"."+s+"."+o+" <"+i+"."+s+"."+(+o+1):u=">="+i+"."+s+"."+o+" <"+i+"."+(+s+1)+".0":u=">="+i+"."+s+"."+o+" <"+(+i+1)+".0.0"),T("caret return",u),u})}function po(e,t){return T("replaceXRanges",e,t),e.split(/\s+/).map(function(r){return mo(r,t)}).join(" ")}function mo(e,t){e=e.trim();var r=t.loose?S[f.XRANGELOOSE]:S[f.XRANGE];return e.replace(r,function(n,i,s,o,c,u){T("xRange",e,n,i,s,o,c,u);var l=j(s),a=l||j(o),h=a||j(c),E=h;return i==="="&&E&&(i=""),u=t.includePrerelease?"-0":"",l?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&E?(a&&(o=0),c=0,i===">"?(i=">=",a?(s=+s+1,o=0,c=0):(o=+o+1,c=0)):i==="<="&&(i="<",a?s=+s+1:o=+o+1),n=i+s+"."+o+"."+c+u):a?n=">="+s+".0.0"+u+" <"+(+s+1)+".0.0"+u:h&&(n=">="+s+"."+o+".0"+u+" <"+s+"."+(+o+1)+".0"+u),T("xRange return",n),n})}function Eo(e,t){return T("replaceStars",e,t),e.trim().replace(S[f.STAR],"")}function vo(e,t,r,n,i,s,o,c,u,l,a,h,E){return j(r)?t="":j(n)?t=">="+r+".0.0":j(i)?t=">="+r+"."+n+".0":t=">="+t,j(u)?c="":j(l)?c="<"+(+u+1)+".0.0":j(a)?c="<"+u+"."+(+l+1)+".0":h?c="<="+u+"."+l+"."+a+"-"+h:c="<="+c,(t+" "+c).trim()}x.prototype.test=function(e){if(!e)return !1;if(typeof e=="string")try{e=new g(e,this.options);}catch{return !1}for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return !0}return !1}return !0}v.satisfies=rt;function rt(e,t,r){try{t=new x(t,r);}catch{return !1}return t.test(e)}v.maxSatisfying=wo;function wo(e,t,r){var n=null,i=null;try{var s=new x(t,r);}catch{return null}return e.forEach(function(o){s.test(o)&&(!n||i.compare(o)===-1)&&(n=o,i=new g(n,r));}),n}v.minSatisfying=yo;function yo(e,t,r){var n=null,i=null;try{var s=new x(t,r);}catch{return null}return e.forEach(function(o){s.test(o)&&(!n||i.compare(o)===1)&&(n=o,i=new g(n,r));}),n}v.minVersion=_o;function _o(e,t){e=new x(e,t);var r=new g("0.0.0");if(e.test(r)||(r=new g("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!r||Le(r,o))&&(r=o);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+s.operator)}});}return r&&e.test(r)?r:null}v.validRange=Oo;function Oo(e,t){try{return new x(e,t).range||"*"}catch{return null}}v.ltr=Ro;function Ro(e,t,r){return kt(e,t,"<",r)}v.gtr=So;function So(e,t,r){return kt(e,t,">",r)}v.outside=kt;function kt(e,t,r,n){e=new g(e,n),t=new x(t,n);var i,s,o,c,u;switch(r){case">":i=Le,s=Vt,o=et,c=">",u=">=";break;case"<":i=et,s=Gt,o=Le,c="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(rt(e,t,n))return !1;for(var l=0;l=0.0.0")),h=h||C,E=E||C,i(C.semver,h.semver,n)?h=C:o(C.semver,E.semver,n)&&(E=C);}),h.operator===c||h.operator===u||(!E.operator||E.operator===c)&&s(e,E.semver))return !1;if(E.operator===u&&o(e,E.semver))return !1}return !0}v.prerelease=To;function To(e,t){var r=ge(e,t);return r&&r.prerelease.length?r.prerelease:null}v.intersects=Io;function Io(e,t,r){return e=new x(e,r),t=new x(t,r),e.intersects(t)}v.coerce=Ao;function Ao(e,t){if(e instanceof g)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};var r=null;if(!t.rtl)r=e.match(S[f.COERCE]);else {for(var n;(n=S[f.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||n.index+n[0].length!==r.index+r[0].length)&&(r=n),S[f.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;S[f.COERCERTL].lastIndex=-1;}return r===null?null:ge(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}});var En=b((D,Ht)=>{var bo=D&&D.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),xo=D&&D.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),Po=D&&D.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&bo(t,e,r);return xo(t,e),t},No=D&&D.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(D,"__esModule",{value:!0});D._readLinuxVersionFile=D._getOsVersion=D._findMatch=void 0;var pn=Po(Xt()),Wt=me(),mn=_("os"),Co=_("child_process"),nt=_("fs");function Lo(e,t,r,n){return No(this,void 0,void 0,function*(){let i=mn.platform(),s,o,c;for(let u of r){let l=u.version;if(Wt.debug(`check ${l} satisfies ${e}`),pn.satisfies(l,e)&&(!t||u.stable===t)&&(c=u.files.find(a=>{Wt.debug(`${a.arch}===${n} && ${a.platform}===${i}`);let h=a.arch===n&&a.platform===i;if(h&&a.platform_version){let E=Ht.exports._getOsVersion();E===a.platform_version?h=!0:h=pn.satisfies(E,a.platform_version);}return h}),c)){Wt.debug(`matched ${u.version}`),o=u;break}}return o&&c&&(s=Object.assign({},o),s.files=[c]),s})}D._findMatch=Lo;function Do(){let e=mn.platform(),t="";if(e==="darwin")t=Co.execSync("sw_vers -productVersion").toString();else if(e==="linux"){let r=Ht.exports._readLinuxVersionFile();if(r){let n=r.split(` +`);for(let i of n){let s=i.split("=");if(s.length===2&&(s[0].trim()==="VERSION_ID"||s[0].trim()==="DISTRIB_RELEASE")){t=s[1].trim().replace(/^"/,"").replace(/"$/,"");break}}}}return t}D._getOsVersion=Do;function $o(){let e="/etc/lsb-release",t="/etc/os-release",r="";return nt.existsSync(e)?r=nt.readFileSync(e).toString():nt.existsSync(t)&&(r=nt.readFileSync(t).toString()),r}D._readLinuxVersionFile=$o;});var gn=b((nu,vn)=>{var Uo=_("crypto");vn.exports=function(){return Uo.randomBytes(16)};});var _n=b((iu,yn)=>{var wn=[];for($e=0;$e<256;++$e)wn[$e]=($e+256).toString(16).substr(1);var $e;function jo(e,t){var r=t||0,n=wn;return [n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]]].join("")}yn.exports=jo;});var Rn=b((su,On)=>{var Mo=gn(),qo=_n();function Fo(e,t,r){var n=t&&r||0;typeof e=="string"&&(t=e==="binary"?new Array(16):null,e=null),e=e||{};var i=e.random||(e.rng||Mo)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t)for(var s=0;s<16;++s)t[n+s]=i[s];return t||qo(i)}On.exports=Fo;});var An=b(G=>{var Bo=G&&G.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),Go=G&&G.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),Ie=G&&G.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&Bo(t,e,r);return Go(t,e),t},Sn=G&&G.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(G,"__esModule",{value:!0});G.argStringToArray=G.ToolRunner=void 0;var it=Ie(_("os")),In=Ie(_("events")),Vo=Ie(_("child_process")),ko=Ie(_("path")),Xo=Ie(Ze()),Tn=Ie(Ut()),Wo=_("timers"),st=process.platform==="win32",zt=class extends In.EventEmitter{constructor(t,r,n){if(super(),!t)throw new Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=t,this.args=r||[],this.options=n||{};}_debug(t){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(t);}_getCommandString(t,r){let n=this._getSpawnFileName(),i=this._getSpawnArgs(t),s=r?"":"[command]";if(st)if(this._isCmdFile()){s+=n;for(let o of i)s+=` ${o}`;}else if(t.windowsVerbatimArguments){s+=`"${n}"`;for(let o of i)s+=` ${o}`;}else {s+=this._windowsQuoteCmdArg(n);for(let o of i)s+=` ${this._windowsQuoteCmdArg(o)}`;}else {s+=n;for(let o of i)s+=` ${o}`;}return s}_processLineBuffer(t,r,n){try{let i=r+t.toString(),s=i.indexOf(it.EOL);for(;s>-1;){let o=i.substring(0,s);n(o),i=i.substring(s+it.EOL.length),s=i.indexOf(it.EOL);}return i}catch(i){return this._debug(`error processing line. Failed with error ${i}`),""}}_getSpawnFileName(){return st&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath}_getSpawnArgs(t){if(st&&this._isCmdFile()){let r=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(let n of this.args)r+=" ",r+=t.windowsVerbatimArguments?n:this._windowsQuoteCmdArg(n);return r+='"',[r]}return this.args}_endsWith(t,r){return t.endsWith(r)}_isCmdFile(){let t=this.toolPath.toUpperCase();return this._endsWith(t,".CMD")||this._endsWith(t,".BAT")}_windowsQuoteCmdArg(t){if(!this._isCmdFile())return this._uvQuoteCmdArg(t);if(!t)return '""';let r=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],n=!1;for(let o of t)if(r.some(c=>c===o)){n=!0;break}if(!n)return t;let i='"',s=!0;for(let o=t.length;o>0;o--)i+=t[o-1],s&&t[o-1]==="\\"?i+="\\":t[o-1]==='"'?(s=!0,i+='"'):s=!1;return i+='"',i.split("").reverse().join("")}_uvQuoteCmdArg(t){if(!t)return '""';if(!t.includes(" ")&&!t.includes(" ")&&!t.includes('"'))return t;if(!t.includes('"')&&!t.includes("\\"))return `"${t}"`;let r='"',n=!0;for(let i=t.length;i>0;i--)r+=t[i-1],n&&t[i-1]==="\\"?r+="\\":t[i-1]==='"'?(n=!0,r+="\\"):n=!1;return r+='"',r.split("").reverse().join("")}_cloneExecOptions(t){t=t||{};let r={cwd:t.cwd||process.cwd(),env:t.env||process.env,silent:t.silent||!1,windowsVerbatimArguments:t.windowsVerbatimArguments||!1,failOnStdErr:t.failOnStdErr||!1,ignoreReturnCode:t.ignoreReturnCode||!1,delay:t.delay||1e4};return r.outStream=t.outStream||process.stdout,r.errStream=t.errStream||process.stderr,r}_getSpawnOptions(t,r){t=t||{};let n={};return n.cwd=t.cwd,n.env=t.env,n.windowsVerbatimArguments=t.windowsVerbatimArguments||this._isCmdFile(),t.windowsVerbatimArguments&&(n.argv0=`"${r}"`),n}exec(){return Sn(this,void 0,void 0,function*(){return !Tn.isRooted(this.toolPath)&&(this.toolPath.includes("/")||st&&this.toolPath.includes("\\"))&&(this.toolPath=ko.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield Xo.which(this.toolPath,!0),new Promise((t,r)=>Sn(this,void 0,void 0,function*(){this._debug(`exec tool: ${this.toolPath}`),this._debug("arguments:");for(let l of this.args)this._debug(` ${l}`);let n=this._cloneExecOptions(this.options);!n.silent&&n.outStream&&n.outStream.write(this._getCommandString(n)+it.EOL);let i=new Jt(n,this.toolPath);if(i.on("debug",l=>{this._debug(l);}),this.options.cwd&&!(yield Tn.exists(this.options.cwd)))return r(new Error(`The cwd: ${this.options.cwd} does not exist!`));let s=this._getSpawnFileName(),o=Vo.spawn(s,this._getSpawnArgs(n),this._getSpawnOptions(this.options,s)),c="";o.stdout&&o.stdout.on("data",l=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(l),!n.silent&&n.outStream&&n.outStream.write(l),c=this._processLineBuffer(l,c,a=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(a);});});let u="";if(o.stderr&&o.stderr.on("data",l=>{i.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(l),!n.silent&&n.errStream&&n.outStream&&(n.failOnStdErr?n.errStream:n.outStream).write(l),u=this._processLineBuffer(l,u,a=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(a);});}),o.on("error",l=>{i.processError=l.message,i.processExited=!0,i.processClosed=!0,i.CheckComplete();}),o.on("exit",l=>{i.processExitCode=l,i.processExited=!0,this._debug(`Exit code ${l} received from tool '${this.toolPath}'`),i.CheckComplete();}),o.on("close",l=>{i.processExitCode=l,i.processExited=!0,i.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),i.CheckComplete();}),i.on("done",(l,a)=>{c.length>0&&this.emit("stdline",c),u.length>0&&this.emit("errline",u),o.removeAllListeners(),l?r(l):t(a);}),this.options.input){if(!o.stdin)throw new Error("child process missing stdin");o.stdin.end(this.options.input);}}))})}};G.ToolRunner=zt;function Ho(e){let t=[],r=!1,n=!1,i="";function s(o){n&&o!=='"'&&(i+="\\"),i+=o,n=!1;}for(let o=0;o0&&(t.push(i),i="");continue}s(c);}return i.length>0&&t.push(i.trim()),t}G.argStringToArray=Ho;var Jt=class e extends In.EventEmitter{constructor(t,r){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!r)throw new Error("toolPath must not be empty");this.options=t,this.toolPath=r,t.delay&&(this.delay=t.delay);}CheckComplete(){this.done||(this.processClosed?this._setResult():this.processExited&&(this.timeout=Wo.setTimeout(e.HandleTimeout,this.delay,this)));}_debug(t){this.emit("debug",t);}_setResult(){let t;this.processExited&&(this.processError?t=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):this.processExitCode!==0&&!this.options.ignoreReturnCode?t=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`):this.processStderr&&this.options.failOnStdErr&&(t=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`))),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",t,this.processExitCode);}static HandleTimeout(t){if(!t.done){if(!t.processClosed&&t.processExited){let r=`The STDIO streams did not close within ${t.delay/1e3} seconds of the exit event from process '${t.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;t._debug(r);}t._setResult();}}};});var Cn=b(V=>{var zo=V&&V.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),Jo=V&&V.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),Ko=V&&V.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&zo(t,e,r);return Jo(t,e),t},Pn=V&&V.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(V,"__esModule",{value:!0});V.getExecOutput=V.exec=void 0;var bn=_("string_decoder"),xn=Ko(An());function Nn(e,t,r){return Pn(this,void 0,void 0,function*(){let n=xn.argStringToArray(e);if(n.length===0)throw new Error("Parameter 'commandLine' cannot be null or empty.");let i=n[0];return t=n.slice(1).concat(t||[]),new xn.ToolRunner(i,t,r).exec()})}V.exec=Nn;function Yo(e,t,r){var n,i;return Pn(this,void 0,void 0,function*(){let s="",o="",c=new bn.StringDecoder("utf8"),u=new bn.StringDecoder("utf8"),l=(n=r?.listeners)===null||n===void 0?void 0:n.stdout,a=(i=r?.listeners)===null||i===void 0?void 0:i.stderr,h=be=>{o+=u.write(be),a&&a(be);},E=be=>{s+=c.write(be),l&&l(be);},C=Object.assign(Object.assign({},r?.listeners),{stdout:E,stderr:h}),pe=yield Nn(e,t,Object.assign(Object.assign({},r),{listeners:C}));return s+=c.end(),o+=u.end(),{exitCode:pe,stdout:s,stderr:o}})}V.getExecOutput=Yo;});var $n=b(K=>{var Zo=K&&K.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),Qo=K&&K.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),ea=K&&K.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&Zo(t,e,r);return Qo(t,e),t},Ln=K&&K.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})};Object.defineProperty(K,"__esModule",{value:!0});K.RetryHelper=void 0;var Dn=ea(me()),Kt=class{constructor(t,r,n){if(t<1)throw new Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=t,this.minSeconds=Math.floor(r),this.maxSeconds=Math.floor(n),this.minSeconds>this.maxSeconds)throw new Error("min seconds should be less than or equal to max seconds")}execute(t,r){return Ln(this,void 0,void 0,function*(){let n=1;for(;nsetTimeout(r,t*1e3))})}};K.RetryHelper=Kt;});var Vn=b(w=>{var ta=w&&w.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}});}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r];}),ra=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),ne=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&ta(t,e,r);return ra(t,e),t},M=w&&w.__awaiter||function(e,t,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function c(a){try{l(n.next(a));}catch(h){o(h);}}function u(a){try{l(n.throw(a));}catch(h){o(h);}}function l(a){a.done?s(a.value):i(a.value).then(c,u);}l((n=n.apply(e,t||[])).next());})},na=w&&w.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(w,"__esModule",{value:!0});w.evaluateVersions=w.isExplicitVersion=w.findFromManifest=w.getManifestFromRepo=w.findAllVersions=w.find=w.cacheFile=w.cacheDir=w.extractZip=w.extractXar=w.extractTar=w.extract7z=w.downloadTool=w.HTTPError=void 0;var O=ne(me()),X=ne(Ze()),Y=ne(_("fs")),ia=ne(En()),je=ne(_("os")),Q=ne(_("path")),Un=ne(yt()),oe=ne(Xt()),sa=ne(_("stream")),oa=ne(_("util")),Ae=_("assert"),jn=na(Rn()),de=Cn(),aa=$n(),Ue=class extends Error{constructor(t){super(`Unexpected HTTP response: ${t}`),this.httpStatusCode=t,Object.setPrototypeOf(this,new.target.prototype);}};w.HTTPError=Ue;var Zt=process.platform==="win32",ca=process.platform==="darwin",ua="actions/tool-cache";function la(e,t,r,n){return M(this,void 0,void 0,function*(){t=t||Q.join(Gn(),jn.default()),yield X.mkdirP(Q.dirname(t)),O.debug(`Downloading ${e}`),O.debug(`Destination ${t}`);let i=3,s=Yt("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),o=Yt("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20);return yield new aa.RetryHelper(i,s,o).execute(()=>M(this,void 0,void 0,function*(){return yield fa(e,t||"",r,n)}),u=>!(u instanceof Ue&&u.httpStatusCode&&u.httpStatusCode<500&&u.httpStatusCode!==408&&u.httpStatusCode!==429))})}w.downloadTool=la;function fa(e,t,r,n){return M(this,void 0,void 0,function*(){if(Y.existsSync(t))throw new Error(`Destination file path ${t} already exists`);let i=new Un.HttpClient(ua,[],{allowRetries:!1});r&&(O.debug("set auth"),n===void 0&&(n={}),n.authorization=r);let s=yield i.get(e,n);if(s.message.statusCode!==200){let a=new Ue(s.message.statusCode);throw O.debug(`Failed to download from "${e}". Code(${s.message.statusCode}) Message(${s.message.statusMessage})`),a}let o=oa.promisify(sa.pipeline),u=Yt("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>s.message)(),l=!1;try{return yield o(u,Y.createWriteStream(t)),O.debug("download complete"),l=!0,t}finally{if(!l){O.debug("download failed");try{yield X.rmRF(t);}catch(a){O.debug(`Failed to delete '${t}'. ${a.message}`);}}}})}function da(e,t,r){return M(this,void 0,void 0,function*(){Ae.ok(Zt,"extract7z() not supported on current OS"),Ae.ok(e,'parameter "file" is required'),t=yield ot(t);let n=process.cwd();if(process.chdir(t),r)try{let s=["x",O.isDebug()?"-bb1":"-bb0","-bd","-sccUTF-8",e],o={silent:!0};yield de.exec(`"${r}"`,s,o);}finally{process.chdir(n);}else {let i=Q.join(__dirname,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),s=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),u=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`& '${i}' -Source '${s}' -Target '${o}'`],l={silent:!0};try{let a=yield X.which("powershell",!0);yield de.exec(`"${a}"`,u,l);}finally{process.chdir(n);}}return t})}w.extract7z=da;function ha(e,t,r="xz"){return M(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'file' is required");t=yield ot(t),O.debug("Checking tar --version");let n="";yield de.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:u=>n+=u.toString(),stderr:u=>n+=u.toString()}}),O.debug(n.trim());let i=n.toUpperCase().includes("GNU TAR"),s;r instanceof Array?s=r:s=[r],O.isDebug()&&!r.includes("v")&&s.push("-v");let o=t,c=e;return Zt&&i&&(s.push("--force-local"),o=t.replace(/\\/g,"/"),c=e.replace(/\\/g,"/")),i&&(s.push("--warning=no-unknown-keyword"),s.push("--overwrite")),s.push("-C",o,"-f",c),yield de.exec("tar",s),t})}w.extractTar=ha;function pa(e,t,r=[]){return M(this,void 0,void 0,function*(){Ae.ok(ca,"extractXar() not supported on current OS"),Ae.ok(e,'parameter "file" is required'),t=yield ot(t);let n;r instanceof Array?n=r:n=[r],n.push("-x","-C",t,"-f",e),O.isDebug()&&n.push("-v");let i=yield X.which("xar",!0);return yield de.exec(`"${i}"`,Ra(n)),t})}w.extractXar=pa;function ma(e,t){return M(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'file' is required");return t=yield ot(t),Zt?yield Ea(e,t):yield va(e,t),t})}w.extractZip=ma;function Ea(e,t){return M(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=yield X.which("pwsh",!1);if(i){let o=["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",["$ErrorActionPreference = 'Stop' ;","try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;",`try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`,`catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else { throw $_ } } ;`].join(" ")];O.debug(`Using pwsh at path: ${i}`),yield de.exec(`"${i}"`,o);}else {let o=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",["$ErrorActionPreference = 'Stop' ;","try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;",`if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force }`,`else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`].join(" ")],c=yield X.which("powershell",!0);O.debug(`Using powershell at path: ${c}`),yield de.exec(`"${c}"`,o);}})}function va(e,t){return M(this,void 0,void 0,function*(){let r=yield X.which("unzip",!0),n=[e];O.isDebug()||n.unshift("-q"),n.unshift("-o"),yield de.exec(`"${r}"`,n,{cwd:t});})}function ga(e,t,r,n){return M(this,void 0,void 0,function*(){if(r=oe.clean(r)||r,n=n||je.arch(),O.debug(`Caching tool ${t} ${r} ${n}`),O.debug(`source dir: ${e}`),!Y.statSync(e).isDirectory())throw new Error("sourceDir is not a directory");let i=yield qn(t,r,n);for(let s of Y.readdirSync(e)){let o=Q.join(e,s);yield X.cp(o,i,{recursive:!0});}return Fn(t,r,n),i})}w.cacheDir=ga;function wa(e,t,r,n,i){return M(this,void 0,void 0,function*(){if(n=oe.clean(n)||n,i=i||je.arch(),O.debug(`Caching tool ${r} ${n} ${i}`),O.debug(`source file: ${e}`),!Y.statSync(e).isFile())throw new Error("sourceFile is not a file");let s=yield qn(r,n,i),o=Q.join(s,t);return O.debug(`destination file ${o}`),yield X.cp(e,o),Fn(r,n,i),s})}w.cacheFile=wa;function ya(e,t,r){if(!e)throw new Error("toolName parameter is required");if(!t)throw new Error("versionSpec parameter is required");if(r=r||je.arch(),!Qt(t)){let i=Mn(e,r);t=Bn(i,t);}let n="";if(t){t=oe.clean(t)||"";let i=Q.join(at(),e,t,r);O.debug(`checking cache: ${i}`),Y.existsSync(i)&&Y.existsSync(`${i}.complete`)?(O.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):O.debug("not found");}return n}w.find=ya;function Mn(e,t){let r=[];t=t||je.arch();let n=Q.join(at(),e);if(Y.existsSync(n)){let i=Y.readdirSync(n);for(let s of i)if(Qt(s)){let o=Q.join(n,s,t||"");Y.existsSync(o)&&Y.existsSync(`${o}.complete`)&&r.push(s);}}return r}w.findAllVersions=Mn;function _a(e,t,r,n="master"){return M(this,void 0,void 0,function*(){let i=[],s=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,o=new Un.HttpClient("tool-cache"),c={};r&&(O.debug("set auth"),c.authorization=r);let u=yield o.getJson(s,c);if(!u.result)return i;let l="";for(let h of u.result.tree)if(h.path==="versions-manifest.json"){l=h.url;break}c.accept="application/vnd.github.VERSION.raw";let a=yield (yield o.get(l,c)).readBody();if(a){a=a.replace(/^\uFEFF/,"");try{i=JSON.parse(a);}catch{O.debug("Invalid json");}}return i})}w.getManifestFromRepo=_a;function Oa(e,t,r,n=je.arch()){return M(this,void 0,void 0,function*(){return yield ia._findMatch(e,t,r,n)})}w.findFromManifest=Oa;function ot(e){return M(this,void 0,void 0,function*(){return e||(e=Q.join(Gn(),jn.default())),yield X.mkdirP(e),e})}function qn(e,t,r){return M(this,void 0,void 0,function*(){let n=Q.join(at(),e,oe.clean(t)||t,r||"");O.debug(`destination ${n}`);let i=`${n}.complete`;return yield X.rmRF(n),yield X.rmRF(i),yield X.mkdirP(n),n})}function Fn(e,t,r){let i=`${Q.join(at(),e,oe.clean(t)||t,r||"")}.complete`;Y.writeFileSync(i,""),O.debug("finished caching tool");}function Qt(e){let t=oe.clean(e)||"";O.debug(`isExplicit: ${t}`);let r=oe.valid(t)!=null;return O.debug(`explicit? ${r}`),r}w.isExplicitVersion=Qt;function Bn(e,t){let r="";O.debug(`evaluating ${e.length} versions`),e=e.sort((n,i)=>oe.gt(n,i)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(oe.satisfies(i,t)){r=i;break}}return r?O.debug(`matched: ${r}`):O.debug("match not found"),r}w.evaluateVersions=Bn;function at(){let e=process.env.RUNNER_TOOL_CACHE||"";return Ae.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e}function Gn(){let e=process.env.RUNNER_TEMP||"";return Ae.ok(e,"Expected RUNNER_TEMP to be defined"),e}function Yt(e,t){let r=global[e];return r!==void 0?r:t}function Ra(e){return Array.from(new Set(e))}});var A=qe(me());var Ct=(e,t=r=>r===void 0)=>e?Object.keys(e).reduce((n,i)=>(t(e[i])||(n[i]=e[i]),n),{}):{};var Lt=(e,t,r)=>{let n=t.split(/[\.\[\]]/g),i=e;for(let s of n){if(i===null||i===void 0)return r;s.trim()!==""&&(i=i[s]);}return i===void 0?r:i};var Dt=(e,t,r=/\{\{(.+?)\}\}/g)=>Array.from(e.matchAll(r)).reduce((n,i)=>n.replace(i[0],t[i[1]]),e);var he=qe(me()),k=qe(Vn()),Xn=qe(Ze());async function Wn(e){if(!e.versionUrl)throw new Error("Version URL missing");let t=process.env.GITHUB_TOKEN||he.getInput("token"),r=t?{headers:{Authorization:`Bearer ${t}`}}:{},i=await(await fetch(e.versionUrl,{...e.versionUrl.startsWith("https://api.github.com")?r:void 0})).text();if(e.versionPath&&(i=String(Lt(JSON.parse(i),e.versionPath))),e.versionRegex){let s=i.match(e.versionRegex);if(s)return s.groups?s.groups.version:s[0]}return i}async function Hn(e){if(!e.downloadUrl)throw new Error("Download URL missing");if(!e.version)throw new Error("Version missing");let t=e.preset||e.repo;if(t||(e.cache=!1,he.warning("Tool name missing, disabling cache")),e.cache){let i=k.find(t,e.version);if(i)return i}let r=await k.downloadTool(e.downloadUrl);if(he.debug("downloaded path: "+r),e.downloadName){let i=kn__default.default.join(kn__default.default.dirname(r),e.downloadName);await Xn.mv(r,i),r=i,he.debug("renamed download path: "+r);}let n;return e.downloadUrl.endsWith(".tar.gz")?n=await k.extractTar(r):e.downloadUrl.endsWith(".7z")?n=await k.extract7z(r):e.downloadUrl.endsWith(".zip")?n=await k.extractZip(r):e.downloadUrl.endsWith(".pkg")&&(n=await k.extractXar(r)),he.debug("extracted path: "+n),e.cache?await k.cacheDir(n||r,t,e.version):n||r}var Sa={"infisical-cli":{repo:"infisical/infisical",downloadUrl:"/releases/download/infisical-cli/v{{version}}/infisical_{{version}}_{{os}}_{{arch}}.{{archive}}"},"cloud-sql-proxy":{repo:"GoogleCloudPlatform/cloudsql-proxy",downloadUrl:"https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v{{version}}/cloud-sql-proxy.{{os}}.{{arch}}",downloadName:"cloud-sql-proxy"}},er=Sa;async function Ia(){try{let e={os:process.platform==="win32"?"windows":process.platform,arch:process.arch==="x64"?"amd64":process.arch,arch2:process.arch,exe:process.platform==="win32"?".exe":"",archive:process.platform==="win32"?"zip":"tar.gz"},t={preset:A.getInput("preset"),repo:A.getInput("repo"),version:A.getInput("version"),versionUrl:A.getInput("version_url"),versionRegex:A.getInput("version_regex"),downloadUrl:A.getInput("download_url"),downloadName:A.getInput("download_name"),binPath:A.getInput("bin_path"),cache:A.getBooleanInput("cache")};if(A.debug("loaded config: "+JSON.stringify(t)),t.preset){if(!er[t.preset])throw new Error(`Preset not found: ${t.preset}`);t={...t,...er[t.preset],...Ct(t,n=>n==="")};}if(t.versionRegex&&typeof t.versionRegex=="string"&&(t.versionRegex=new RegExp(t.versionRegex)),!t.versionUrl&&!t.versionPath&&t.repo&&(t.versionPath="tag_name"),!t.versionUrl&&t.repo&&(t.versionUrl="https://api.github.com/repos/"+t.repo+"/releases/latest"),A.debug("resolved config: "+JSON.stringify(t)),!t.downloadUrl)throw new Error("Download URL missing");if(t.version==="latest"){let n=await Wn(t);if(!n)throw new Error("Version not found");t.version=n,A.debug("resolved version: "+t.version);}t.downloadUrl=Dt(t.downloadUrl,{...t,...e}),t.downloadUrl.startsWith("/")&&t.repo&&(t.downloadUrl="https://github.com/"+t.repo+t.downloadUrl),A.debug("templated download url: "+t.downloadUrl);let r=await Hn(t);A.debug("cached path: "+r),A.addPath(kn__default.default.join(r,t.binPath)),A.info(`Successfully installed version ${t.version}`),A.setOutput("path",r),A.setOutput("version",t.version);}catch(e){e instanceof Error&&A.setFailed(e.message);}}Ia(); + +exports.main = Ia; diff --git a/package.json b/package.json new file mode 100644 index 0000000..42e3c6a --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "action-install-tool", + "version": "0.0.0-dev", + "description": "GitHub Actions TypeScript template", + "author": "Josh Willox (https://github.com/jcwillox/)", + "license": "MIT", + "private": true, + "repository": "jcwillox/action-install-tool", + "keywords": [ + "actions", + "install", + "setup", + "tool" + ], + "scripts": { + "dev": "pnpm build --watch", + "build": "tsup src/index.ts --treeshake --minify --clean", + "typecheck": "tsc", + "lint": "eslint . --cache --max-warnings=0 --ext js,cjs,mjs,jsx,ts,tsx", + "lint:fix": "pnpm run lint --fix", + "format": "prettier --cache --write .", + "format:check": "prettier --cache --check ." + }, + "devDependencies": { + "@actions/core": "1.10.1", + "@actions/http-client": "2.0.1", + "@actions/io": "1.1.3", + "@actions/tool-cache": "2.0.1", + "@types/node": "20.10.4", + "prettier": "3.1.1", + "radash": "11.0.0", + "tsup": "8.0.1", + "typescript": "5.3.3", + "vitest": "1.0.4" + }, + "exports": { + ".": "./dist/index.js" + }, + "packageManager": "pnpm@8.11.0", + "engines": { + "node": "^18 || ^20" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..3d42166 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1519 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + '@actions/core': + specifier: 1.10.1 + version: 1.10.1 + '@actions/http-client': + specifier: 2.0.1 + version: 2.0.1 + '@actions/io': + specifier: 1.1.3 + version: 1.1.3 + '@actions/tool-cache': + specifier: 2.0.1 + version: 2.0.1 + '@types/node': + specifier: 20.10.4 + version: 20.10.4 + prettier: + specifier: 3.1.1 + version: 3.1.1 + radash: + specifier: 11.0.0 + version: 11.0.0 + tsup: + specifier: 8.0.1 + version: 8.0.1(typescript@5.3.3) + typescript: + specifier: 5.3.3 + version: 5.3.3 + vitest: + specifier: 1.0.4 + version: 1.0.4(@types/node@20.10.4) + +packages: + + /@actions/core@1.10.1: + resolution: {integrity: sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==} + dependencies: + '@actions/http-client': 2.0.1 + uuid: 8.3.2 + dev: true + + /@actions/exec@1.1.1: + resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} + dependencies: + '@actions/io': 1.1.3 + dev: true + + /@actions/http-client@2.0.1: + resolution: {integrity: sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==} + dependencies: + tunnel: 0.0.6 + dev: true + + /@actions/io@1.1.3: + resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} + dev: true + + /@actions/tool-cache@2.0.1: + resolution: {integrity: sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==} + dependencies: + '@actions/core': 1.10.1 + '@actions/exec': 1.1.1 + '@actions/http-client': 2.0.1 + '@actions/io': 1.1.3 + semver: 6.3.1 + uuid: 3.4.0 + dev: true + + /@esbuild/android-arm64@0.19.9: + resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.9: + resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.9: + resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.9: + resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.9: + resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.9: + resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.9: + resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.9: + resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.9: + resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.9: + resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.9: + resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.9: + resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.9: + resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.9: + resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.9: + resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.9: + resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.9: + resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.9: + resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.9: + resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.9: + resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.9: + resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.9: + resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@rollup/rollup-android-arm-eabi@4.7.0: + resolution: {integrity: sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.7.0: + resolution: {integrity: sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.7.0: + resolution: {integrity: sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.7.0: + resolution: {integrity: sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.7.0: + resolution: {integrity: sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.7.0: + resolution: {integrity: sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.7.0: + resolution: {integrity: sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.7.0: + resolution: {integrity: sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.7.0: + resolution: {integrity: sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.7.0: + resolution: {integrity: sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.7.0: + resolution: {integrity: sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.7.0: + resolution: {integrity: sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.7.0: + resolution: {integrity: sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@types/node@20.10.4: + resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@vitest/expect@1.0.4: + resolution: {integrity: sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ==} + dependencies: + '@vitest/spy': 1.0.4 + '@vitest/utils': 1.0.4 + chai: 4.3.10 + dev: true + + /@vitest/runner@1.0.4: + resolution: {integrity: sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ==} + dependencies: + '@vitest/utils': 1.0.4 + p-limit: 5.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@1.0.4: + resolution: {integrity: sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA==} + dependencies: + magic-string: 0.30.5 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@1.0.4: + resolution: {integrity: sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA==} + dependencies: + tinyspy: 2.2.0 + dev: true + + /@vitest/utils@1.0.4: + resolution: {integrity: sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /bundle-require@4.0.2(esbuild@0.19.9): + resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.19.9 + load-tsconfig: 0.2.5 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /esbuild@0.19.9: + resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.9 + '@esbuild/android-arm64': 0.19.9 + '@esbuild/android-x64': 0.19.9 + '@esbuild/darwin-arm64': 0.19.9 + '@esbuild/darwin-x64': 0.19.9 + '@esbuild/freebsd-arm64': 0.19.9 + '@esbuild/freebsd-x64': 0.19.9 + '@esbuild/linux-arm': 0.19.9 + '@esbuild/linux-arm64': 0.19.9 + '@esbuild/linux-ia32': 0.19.9 + '@esbuild/linux-loong64': 0.19.9 + '@esbuild/linux-mips64el': 0.19.9 + '@esbuild/linux-ppc64': 0.19.9 + '@esbuild/linux-riscv64': 0.19.9 + '@esbuild/linux-s390x': 0.19.9 + '@esbuild/linux-x64': 0.19.9 + '@esbuild/netbsd-x64': 0.19.9 + '@esbuild/openbsd-x64': 0.19.9 + '@esbuild/sunos-x64': 0.19.9 + '@esbuild/win32-arm64': 0.19.9 + '@esbuild/win32-ia32': 0.19.9 + '@esbuild/win32-x64': 0.19.9 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + dev: true + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.11.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + + /postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.0.0 + yaml: 2.3.4 + dev: true + + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /radash@11.0.0: + resolution: {integrity: sha512-CRWxTFTDff0IELGJ/zz58yY4BDgyI14qSM5OLNKbCItJrff7m7dXbVF0kWYVCXQtPb3SXIVhXvAImH6eT7VLSg==} + engines: {node: '>=14.18.0'} + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rollup@4.7.0: + resolution: {integrity: sha512-7Kw0dUP4BWH78zaZCqF1rPyQ8D5DSU6URG45v1dqS/faNsx9WXyess00uTOZxKr7oR/4TOjO1CPudT8L1UsEgw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.7.0 + '@rollup/rollup-android-arm64': 4.7.0 + '@rollup/rollup-darwin-arm64': 4.7.0 + '@rollup/rollup-darwin-x64': 4.7.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.7.0 + '@rollup/rollup-linux-arm64-gnu': 4.7.0 + '@rollup/rollup-linux-arm64-musl': 4.7.0 + '@rollup/rollup-linux-riscv64-gnu': 4.7.0 + '@rollup/rollup-linux-x64-gnu': 4.7.0 + '@rollup/rollup-linux-x64-musl': 4.7.0 + '@rollup/rollup-win32-arm64-msvc': 4.7.0 + '@rollup/rollup-win32-ia32-msvc': 4.7.0 + '@rollup/rollup-win32-x64-msvc': 4.7.0 + fsevents: 2.3.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /std-env@3.6.0: + resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.11.2 + dev: true + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + + /tinypool@0.8.1: + resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.1 + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /tsup@8.0.1(typescript@5.3.3): + resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.2(esbuild@0.19.9) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.19.9 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.2 + resolve-from: 5.0.0 + rollup: 4.7.0 + source-map: 0.8.0-beta.0 + sucrase: 3.34.0 + tree-kill: 1.2.2 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + + /vite-node@1.0.4(@types/node@20.10.4): + resolution: {integrity: sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 5.0.7(@types/node@20.10.4) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite@5.0.7(@types/node@20.10.4): + resolution: {integrity: sha512-B4T4rJCDPihrQo2B+h1MbeGL/k/GMAHzhQ8S0LjQ142s6/+l3hHTT095ORvsshj4QCkoWu3Xtmob5mazvakaOw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.4 + esbuild: 0.19.9 + postcss: 8.4.32 + rollup: 4.7.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@1.0.4(@types/node@20.10.4): + resolution: {integrity: sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/node': 20.10.4 + '@vitest/expect': 1.0.4 + '@vitest/runner': 1.0.4 + '@vitest/snapshot': 1.0.4 + '@vitest/spy': 1.0.4 + '@vitest/utils': 1.0.4 + acorn-walk: 8.3.1 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.6.0 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.8.1 + vite: 5.0.7(@types/node@20.10.4) + vite-node: 1.0.4(@types/node@20.10.4) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..353d35a --- /dev/null +++ b/src/index.ts @@ -0,0 +1,95 @@ +// noinspection ExceptionCaughtLocallyJS + +import path from "node:path"; +import * as core from "@actions/core"; +import { shake, template } from "radash"; +import { downloadTool, getVersion } from "./install"; +import { Config } from "./types"; +import presets from "./presets"; + +export async function main() { + try { + const templateArgs = { + os: process.platform === "win32" ? "windows" : process.platform, + arch: process.arch === "x64" ? "amd64" : process.arch, + arch2: process.arch, + exe: process.platform === "win32" ? ".exe" : "", + archive: process.platform === "win32" ? "zip" : "tar.gz", + }; + + // load config + let config: Config = { + preset: core.getInput("preset"), + repo: core.getInput("repo"), + version: core.getInput("version"), + versionUrl: core.getInput("version_url"), + versionRegex: core.getInput("version_regex"), + downloadUrl: core.getInput("download_url"), + downloadName: core.getInput("download_name"), + binPath: core.getInput("bin_path"), + cache: core.getBooleanInput("cache"), + }; + + core.debug("loaded config: " + JSON.stringify(config)); + + // if preset is set, load preset config + if (config.preset) { + if (!presets[config.preset]) + throw new Error(`Preset not found: ${config.preset}`); + config = { + ...config, + ...presets[config.preset], + ...shake(config, (x) => x === ""), + }; + } + + // set defaults + if (config.versionRegex && typeof config.versionRegex === "string") + config.versionRegex = new RegExp(config.versionRegex); + if (!config.versionUrl && !config.versionPath && config.repo) + config.versionPath = "tag_name"; + if (!config.versionUrl && config.repo) + config.versionUrl = + "https://api.github.com/repos/" + config.repo + "/releases/latest"; + + core.debug("resolved config: " + JSON.stringify(config)); + + if (!config.downloadUrl) { + throw new Error("Download URL missing"); + } + + // fetch latest version if not fixed + if (config.version === "latest") { + const version = await getVersion(config); + if (!version) throw new Error("Version not found"); + config.version = version; + core.debug("resolved version: " + config.version); + } + + // template download url + config.downloadUrl = template(config.downloadUrl, { + ...config, + ...templateArgs, + }); + if (config.downloadUrl.startsWith("/") && config.repo) + config.downloadUrl = + "https://github.com/" + config.repo + config.downloadUrl; + + core.debug("templated download url: " + config.downloadUrl); + + // download or pull from cache + const toolPath = await downloadTool(config); + + core.debug("cached path: " + toolPath); + core.addPath(path.join(toolPath, config.binPath)); + core.info(`Successfully installed version ${config.version}`); + + core.setOutput("path", toolPath); + core.setOutput("version", config.version); + } catch (error) { + // fail the workflow run if an error occurs + if (error instanceof Error) core.setFailed(error.message); + } +} + +main(); diff --git a/src/install.ts b/src/install.ts new file mode 100644 index 0000000..91fd6b8 --- /dev/null +++ b/src/install.ts @@ -0,0 +1,93 @@ +import { Config } from "./types"; +import { get } from "radash"; +import * as core from "@actions/core"; +import * as tc from "@actions/tool-cache"; +import * as io from "@actions/io"; +import path from "node:path"; + +export async function getVersion(config: Config) { + if (!config.versionUrl) throw new Error("Version URL missing"); + + const ghToken = process.env.GITHUB_TOKEN || core.getInput("token"); + const ghOptions: RequestInit = ghToken + ? { + headers: { + Authorization: `Bearer ${ghToken}`, + }, + } + : {}; + + const res = await fetch(config.versionUrl, { + ...(config.versionUrl.startsWith("https://api.github.com") + ? ghOptions + : undefined), + }); + let data = await res.text(); + if (config.versionPath) { + data = String(get(JSON.parse(data), config.versionPath)); + } + if (config.versionRegex) { + const match = data.match(config.versionRegex); + if (match) { + if (match.groups) return match.groups.version; + return match[0]; + } + } + return data; +} + +export async function downloadTool(config: Config) { + if (!config.downloadUrl) throw new Error("Download URL missing"); + if (!config.version) throw new Error("Version missing"); + + const toolName = config.preset || config.repo; + if (!toolName) { + config.cache = false; + core.warning("Tool name missing, disabling cache"); + } + + // check cache + if (config.cache) { + const toolPath = tc.find(toolName!, config.version); + if (toolPath) return toolPath; + } + + // download file + let downloadPath = await tc.downloadTool(config.downloadUrl); + core.debug("downloaded path: " + downloadPath); + + // handle renaming downloaded file + if (config.downloadName) { + const newDownloadPath = path.join( + path.dirname(downloadPath), + config.downloadName, + ); + await io.mv(downloadPath, newDownloadPath); + downloadPath = newDownloadPath; + core.debug("renamed download path: " + downloadPath); + } + + // handle extracting downloaded file + let extractedPath: string | undefined; + if (config.downloadUrl.endsWith(".tar.gz")) { + extractedPath = await tc.extractTar(downloadPath); + } else if (config.downloadUrl.endsWith(".7z")) { + extractedPath = await tc.extract7z(downloadPath); + } else if (config.downloadUrl.endsWith(".zip")) { + extractedPath = await tc.extractZip(downloadPath); + } else if (config.downloadUrl.endsWith(".pkg")) { + extractedPath = await tc.extractXar(downloadPath); + } + core.debug("extracted path: " + extractedPath); + + // cache downloaded or extracted path + if (config.cache) { + return await tc.cacheDir( + extractedPath || downloadPath, + toolName!, + config.version, + ); + } else { + return extractedPath || downloadPath; + } +} diff --git a/src/presets/index.ts b/src/presets/index.ts new file mode 100644 index 0000000..b30d15e --- /dev/null +++ b/src/presets/index.ts @@ -0,0 +1,17 @@ +import { Config } from "../types"; + +const presets: Record> = { + "infisical-cli": { + repo: "infisical/infisical", + downloadUrl: + "/releases/download/infisical-cli/v{{version}}/infisical_{{version}}_{{os}}_{{arch}}.{{archive}}", + }, + "cloud-sql-proxy": { + repo: "GoogleCloudPlatform/cloudsql-proxy", + downloadUrl: + "https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v{{version}}/cloud-sql-proxy.{{os}}.{{arch}}", + downloadName: "cloud-sql-proxy", + }, +}; + +export default presets; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..ccd435d --- /dev/null +++ b/src/types.ts @@ -0,0 +1,12 @@ +export type Config = { + repo?: string; + version: string; + versionUrl?: string; + versionRegex?: string | RegExp; + versionPath?: string; + downloadUrl?: string; + downloadName?: string; + binPath: string; + preset?: string; + cache: boolean; +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2f26aac --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "rootDir": "./src", + "moduleResolution": "NodeNext", + "baseUrl": "./", + "sourceMap": true, + "outDir": "./dist", + "noImplicitAny": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "newLine": "lf" + }, + "exclude": ["./dist", "./node_modules", "./__tests__", "./coverage"] +}