From 42862d565b14058279aac2d24ed0470564e6bdf4 Mon Sep 17 00:00:00 2001 From: Alex McKinney Date: Tue, 14 Sep 2021 17:32:01 -0700 Subject: [PATCH 1/2] Make version setting explicit --- README.md | 13 ++++++++++++- action.yml | 2 +- dist/main.js | 4 ++-- dist/main.js.map | 4 ++-- src/run.ts | 7 ++++--- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index d1c9707..d6ef477 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Install and setup [buf](https://github.com/bufbuild/buf) for use in other action Refer to the [action.yml](https://github.com/bufbuild/buf-setup-action/blob/main/action.yml) to see all of the action parameters. -If `version` is unspecified, it will be defaulted to `latest`. +If `version` is unspecified, the default value is set to the latest `buf` version. ```yaml steps: @@ -16,6 +16,17 @@ steps: - run: buf --version ``` +If you want to pin to a specific version, vou can explicitly set it like so: + +```yaml +steps: + - uses: actions/checkout@v2 + - uses: bufbuild/buf-setup-action@v0.4.0 + with: + version: '0.56.0' + - run: buf --version +``` + The `buf-setup` action is commonly used by the other `buf` actions, such as [buf-breaking][1], [buf-lint][2], and [buf-push][3]. diff --git a/action.yml b/action.yml index 89bc6c1..4886b12 100644 --- a/action.yml +++ b/action.yml @@ -7,7 +7,7 @@ branding: inputs: version: description: 'The version of buf to setup.' - default: 'latest' + default: '0.56.0' runs: using: 'node12' main: './dist/main.js' diff --git a/dist/main.js b/dist/main.js index fcea0f2..ed38a86 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1,6 +1,6 @@ -var Ci=Object.create;var Tt=Object.defineProperty;var $i=Object.getOwnPropertyDescriptor;var qi=Object.getOwnPropertyNames;var Di=Object.getPrototypeOf,ji=Object.prototype.hasOwnProperty;var ki=e=>Tt(e,"__esModule",{value:!0});var E=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ui=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of qi(t))!ji.call(e,n)&&n!=="default"&&Tt(e,n,{get:()=>t[n],enumerable:!(r=$i(t,n))||r.enumerable});return e},J=e=>Ui(ki(Tt(e!=null?Ci(Di(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var tt=E(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});function Fi(e){return e==null?"":typeof e=="string"||e instanceof String?e:JSON.stringify(e)}At.toCommandValue=Fi});var vr=E(_e=>{"use strict";var Bi=_e&&_e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(_e,"__esModule",{value:!0});var Mi=Bi(require("os")),yr=tt();function gr(e,t,r){let n=new wr(e,t,r);process.stdout.write(n.toString()+Mi.EOL)}_e.issueCommand=gr;function Gi(e,t=""){gr(e,{},t)}_e.issue=Gi;var Er="::",wr=class{constructor(t,r,n){t||(t="missing.command"),this.command=t,this.properties=r,this.message=n}toString(){let t=Er+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}=${Hi(i)}`)}}return t+=`${Er}${Vi(this.message)}`,t}};function Vi(e){return yr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function Hi(e){return yr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}});var Rr=E(Me=>{"use strict";var br=Me&&Me.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(Me,"__esModule",{value:!0});var Or=br(require("fs")),zi=br(require("os")),Xi=tt();function Wi(e,t){let r=process.env[`GITHUB_${e}`];if(!r)throw new Error(`Unable to find environment variable for file command ${e}`);if(!Or.existsSync(r))throw new Error(`Missing file at path: ${r}`);Or.appendFileSync(r,`${Xi.toCommandValue(t)}${zi.EOL}`,{encoding:"utf8"})}Me.issueCommand=Wi});var Ie=E(T=>{"use strict";var Ji=T&&T.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Sr=T&&T.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(T,"__esModule",{value:!0});var V=vr(),Tr=Rr(),Yi=tt(),_t=Sr(require("os")),Zi=Sr(require("path")),Ar;(function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure"})(Ar=T.ExitCode||(T.ExitCode={}));function Qi(e,t){let r=Yi.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV||""){let i="_GitHubActionsFileCommandDelimeter_",s=`${e}<<${i}${_t.EOL}${r}${_t.EOL}${i}`;Tr.issueCommand("ENV",s)}else V.issueCommand("set-env",{name:e},r)}T.exportVariable=Qi;function Ki(e){V.issueCommand("add-mask",{},e)}T.setSecret=Ki;function es(e){process.env.GITHUB_PATH||""?Tr.issueCommand("PATH",e):V.issueCommand("add-path",{},e),process.env.PATH=`${e}${Zi.delimiter}${process.env.PATH}`}T.addPath=es;function ts(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 r.trim()}T.getInput=ts;function rs(e,t){V.issueCommand("set-output",{name:e},t)}T.setOutput=rs;function ns(e){V.issue("echo",e?"on":"off")}T.setCommandEcho=ns;function is(e){process.exitCode=Ar.Failure,_r(e)}T.setFailed=is;function ss(){return process.env.RUNNER_DEBUG==="1"}T.isDebug=ss;function os(e){V.issueCommand("debug",{},e)}T.debug=os;function _r(e){V.issue("error",e instanceof Error?e.toString():e)}T.error=_r;function as(e){V.issue("warning",e instanceof Error?e.toString():e)}T.warning=as;function us(e){process.stdout.write(e+_t.EOL)}T.info=us;function Ir(e){V.issue("group",e)}T.startGroup=Ir;function Nr(){V.issue("endgroup")}T.endGroup=Nr;function cs(e,t){return Ji(this,void 0,void 0,function*(){Ir(e);let r;try{r=yield t()}finally{Nr()}return r})}T.group=cs;function ls(e,t){V.issueCommand("save-state",{name:e},t)}T.saveState=ls;function fs(e){return process.env[`STATE_${e}`]||""}T.getState=fs});var It=E(w=>{"use strict";var rt=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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},U;Object.defineProperty(w,"__esModule",{value:!0});var hs=require("assert"),ds=require("fs"),Ne=require("path");U=ds.promises,w.chmod=U.chmod,w.copyFile=U.copyFile,w.lstat=U.lstat,w.mkdir=U.mkdir,w.readdir=U.readdir,w.readlink=U.readlink,w.rename=U.rename,w.rmdir=U.rmdir,w.stat=U.stat,w.symlink=U.symlink,w.unlink=U.unlink;w.IS_WINDOWS=process.platform==="win32";function ps(e){return rt(this,void 0,void 0,function*(){try{yield w.stat(e)}catch(t){if(t.code==="ENOENT")return!1;throw t}return!0})}w.exists=ps;function ms(e,t=!1){return rt(this,void 0,void 0,function*(){return(t?yield w.stat(e):yield w.lstat(e)).isDirectory()})}w.isDirectory=ms;function ys(e){if(e=Es(e),!e)throw new Error('isRooted() parameter "p" cannot be empty');return w.IS_WINDOWS?e.startsWith("\\")||/^[A-Z]:/i.test(e):e.startsWith("/")}w.isRooted=ys;function xr(e,t=1e3,r=1){return rt(this,void 0,void 0,function*(){if(hs.ok(e,"a path argument must be provided"),e=Ne.resolve(e),r>=t)return w.mkdir(e);try{yield w.mkdir(e);return}catch(n){switch(n.code){case"ENOENT":{yield xr(Ne.dirname(e),t,r+1),yield w.mkdir(e);return}default:{let i;try{i=yield w.stat(e)}catch(s){throw n}if(!i.isDirectory())throw n}}}})}w.mkdirP=xr;function gs(e,t){return rt(this,void 0,void 0,function*(){let r;try{r=yield w.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(w.IS_WINDOWS){let i=Ne.extname(e).toUpperCase();if(t.some(s=>s.toUpperCase()===i))return e}else if(Pr(r))return e}let n=e;for(let i of t){e=n+i,r=void 0;try{r=yield w.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(w.IS_WINDOWS){try{let s=Ne.dirname(e),o=Ne.basename(e).toUpperCase();for(let a of yield w.readdir(s))if(o===a.toUpperCase()){e=Ne.join(s,a);break}}catch(s){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${s}`)}return e}else if(Pr(r))return e}}return""})}w.tryGetExecutablePath=gs;function Es(e){return e=e||"",w.IS_WINDOWS?(e=e.replace(/\//g,"\\"),e.replace(/\\\\+/g,"\\")):e.replace(/\/\/+/g,"/")}function Pr(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}});var nt=E(ee=>{"use strict";var ye=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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})};Object.defineProperty(ee,"__esModule",{value:!0});var ws=require("child_process"),K=require("path"),vs=require("util"),v=It(),Nt=vs.promisify(ws.exec);function bs(e,t,r={}){return ye(this,void 0,void 0,function*(){let{force:n,recursive:i}=Rs(r),s=(yield v.exists(t))?yield v.stat(t):null;if(s&&s.isFile()&&!n)return;let o=s&&s.isDirectory()?K.join(t,K.basename(e)):t;if(!(yield v.exists(e)))throw new Error(`no such file or directory: ${e}`);if((yield v.stat(e)).isDirectory())if(i)yield $r(e,o,0,n);else throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);else{if(K.relative(e,o)==="")throw new Error(`'${o}' and '${e}' are the same file`);yield qr(e,o,n)}})}ee.cp=bs;function Os(e,t,r={}){return ye(this,void 0,void 0,function*(){if(yield v.exists(t)){let n=!0;if((yield v.isDirectory(t))&&(t=K.join(t,K.basename(e)),n=yield v.exists(t)),n)if(r.force==null||r.force)yield Lr(t);else throw new Error("Destination already exists")}yield xt(K.dirname(t)),yield v.rename(e,t)})}ee.mv=Os;function Lr(e){return ye(this,void 0,void 0,function*(){if(v.IS_WINDOWS){try{(yield v.isDirectory(e,!0))?yield Nt(`rd /s /q "${e}"`):yield Nt(`del /f /a "${e}"`)}catch(t){if(t.code!=="ENOENT")throw t}try{yield v.unlink(e)}catch(t){if(t.code!=="ENOENT")throw t}}else{let t=!1;try{t=yield v.isDirectory(e)}catch(r){if(r.code!=="ENOENT")throw r;return}t?yield Nt(`rm -rf "${e}"`):yield v.unlink(e)}})}ee.rmRF=Lr;function xt(e){return ye(this,void 0,void 0,function*(){yield v.mkdirP(e)})}ee.mkdirP=xt;function Cr(e,t){return ye(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");if(t&&!(yield Cr(e,!1)))throw v.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.`);try{let r=[];if(v.IS_WINDOWS&&process.env.PATHEXT)for(let i of process.env.PATHEXT.split(K.delimiter))i&&r.push(i);if(v.isRooted(e)){let i=yield v.tryGetExecutablePath(e,r);return i||""}if(e.includes("/")||v.IS_WINDOWS&&e.includes("\\"))return"";let n=[];if(process.env.PATH)for(let i of process.env.PATH.split(K.delimiter))i&&n.push(i);for(let i of n){let s=yield v.tryGetExecutablePath(i+K.sep+e,r);if(s)return s}return""}catch(r){throw new Error(`which failed with message ${r.message}`)}})}ee.which=Cr;function Rs(e){let t=e.force==null?!0:e.force,r=Boolean(e.recursive);return{force:t,recursive:r}}function $r(e,t,r,n){return ye(this,void 0,void 0,function*(){if(r>=255)return;r++,yield xt(t);let i=yield v.readdir(e);for(let s of i){let o=`${e}/${s}`,a=`${t}/${s}`;(yield v.lstat(o)).isDirectory()?yield $r(o,a,r,n):yield qr(o,a,n)}yield v.chmod(t,(yield v.stat(e)).mode)})}function qr(e,t,r){return ye(this,void 0,void 0,function*(){if((yield v.lstat(e)).isSymbolicLink()){try{yield v.lstat(t),yield v.unlink(t)}catch(i){i.code==="EPERM"&&(yield v.chmod(t,"0666"),yield v.unlink(t))}let n=yield v.readlink(e);yield v.symlink(n,t,v.IS_WINDOWS?"junction":null)}else(!(yield v.exists(t))||r)&&(yield v.copyFile(e,t))})}});var jt=E((p,Fr)=>{p=Fr.exports=y;var O;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?O=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:O=function(){};p.SEMVER_SPEC_VERSION="2.0.0";var Pt=256,it=Number.MAX_SAFE_INTEGER||9007199254740991,Lt=16,b=p.re=[],h=p.src=[],f=p.tokens={},Dr=0;function g(e){f[e]=Dr++}g("NUMERICIDENTIFIER");h[f.NUMERICIDENTIFIER]="0|[1-9]\\d*";g("NUMERICIDENTIFIERLOOSE");h[f.NUMERICIDENTIFIERLOOSE]="[0-9]+";g("NONNUMERICIDENTIFIER");h[f.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";g("MAINVERSION");h[f.MAINVERSION]="("+h[f.NUMERICIDENTIFIER]+")\\.("+h[f.NUMERICIDENTIFIER]+")\\.("+h[f.NUMERICIDENTIFIER]+")";g("MAINVERSIONLOOSE");h[f.MAINVERSIONLOOSE]="("+h[f.NUMERICIDENTIFIERLOOSE]+")\\.("+h[f.NUMERICIDENTIFIERLOOSE]+")\\.("+h[f.NUMERICIDENTIFIERLOOSE]+")";g("PRERELEASEIDENTIFIER");h[f.PRERELEASEIDENTIFIER]="(?:"+h[f.NUMERICIDENTIFIER]+"|"+h[f.NONNUMERICIDENTIFIER]+")";g("PRERELEASEIDENTIFIERLOOSE");h[f.PRERELEASEIDENTIFIERLOOSE]="(?:"+h[f.NUMERICIDENTIFIERLOOSE]+"|"+h[f.NONNUMERICIDENTIFIER]+")";g("PRERELEASE");h[f.PRERELEASE]="(?:-("+h[f.PRERELEASEIDENTIFIER]+"(?:\\."+h[f.PRERELEASEIDENTIFIER]+")*))";g("PRERELEASELOOSE");h[f.PRERELEASELOOSE]="(?:-?("+h[f.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+h[f.PRERELEASEIDENTIFIERLOOSE]+")*))";g("BUILDIDENTIFIER");h[f.BUILDIDENTIFIER]="[0-9A-Za-z-]+";g("BUILD");h[f.BUILD]="(?:\\+("+h[f.BUILDIDENTIFIER]+"(?:\\."+h[f.BUILDIDENTIFIER]+")*))";g("FULL");g("FULLPLAIN");h[f.FULLPLAIN]="v?"+h[f.MAINVERSION]+h[f.PRERELEASE]+"?"+h[f.BUILD]+"?";h[f.FULL]="^"+h[f.FULLPLAIN]+"$";g("LOOSEPLAIN");h[f.LOOSEPLAIN]="[v=\\s]*"+h[f.MAINVERSIONLOOSE]+h[f.PRERELEASELOOSE]+"?"+h[f.BUILD]+"?";g("LOOSE");h[f.LOOSE]="^"+h[f.LOOSEPLAIN]+"$";g("GTLT");h[f.GTLT]="((?:<|>)?=?)";g("XRANGEIDENTIFIERLOOSE");h[f.XRANGEIDENTIFIERLOOSE]=h[f.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";g("XRANGEIDENTIFIER");h[f.XRANGEIDENTIFIER]=h[f.NUMERICIDENTIFIER]+"|x|X|\\*";g("XRANGEPLAIN");h[f.XRANGEPLAIN]="[v=\\s]*("+h[f.XRANGEIDENTIFIER]+")(?:\\.("+h[f.XRANGEIDENTIFIER]+")(?:\\.("+h[f.XRANGEIDENTIFIER]+")(?:"+h[f.PRERELEASE]+")?"+h[f.BUILD]+"?)?)?";g("XRANGEPLAINLOOSE");h[f.XRANGEPLAINLOOSE]="[v=\\s]*("+h[f.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+h[f.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+h[f.XRANGEIDENTIFIERLOOSE]+")(?:"+h[f.PRERELEASELOOSE]+")?"+h[f.BUILD]+"?)?)?";g("XRANGE");h[f.XRANGE]="^"+h[f.GTLT]+"\\s*"+h[f.XRANGEPLAIN]+"$";g("XRANGELOOSE");h[f.XRANGELOOSE]="^"+h[f.GTLT]+"\\s*"+h[f.XRANGEPLAINLOOSE]+"$";g("COERCE");h[f.COERCE]="(^|[^\\d])(\\d{1,"+Lt+"})(?:\\.(\\d{1,"+Lt+"}))?(?:\\.(\\d{1,"+Lt+"}))?(?:$|[^\\d])";g("COERCERTL");b[f.COERCERTL]=new RegExp(h[f.COERCE],"g");g("LONETILDE");h[f.LONETILDE]="(?:~>?)";g("TILDETRIM");h[f.TILDETRIM]="(\\s*)"+h[f.LONETILDE]+"\\s+";b[f.TILDETRIM]=new RegExp(h[f.TILDETRIM],"g");var Ss="$1~";g("TILDE");h[f.TILDE]="^"+h[f.LONETILDE]+h[f.XRANGEPLAIN]+"$";g("TILDELOOSE");h[f.TILDELOOSE]="^"+h[f.LONETILDE]+h[f.XRANGEPLAINLOOSE]+"$";g("LONECARET");h[f.LONECARET]="(?:\\^)";g("CARETTRIM");h[f.CARETTRIM]="(\\s*)"+h[f.LONECARET]+"\\s+";b[f.CARETTRIM]=new RegExp(h[f.CARETTRIM],"g");var Ts="$1^";g("CARET");h[f.CARET]="^"+h[f.LONECARET]+h[f.XRANGEPLAIN]+"$";g("CARETLOOSE");h[f.CARETLOOSE]="^"+h[f.LONECARET]+h[f.XRANGEPLAINLOOSE]+"$";g("COMPARATORLOOSE");h[f.COMPARATORLOOSE]="^"+h[f.GTLT]+"\\s*("+h[f.LOOSEPLAIN]+")$|^$";g("COMPARATOR");h[f.COMPARATOR]="^"+h[f.GTLT]+"\\s*("+h[f.FULLPLAIN]+")$|^$";g("COMPARATORTRIM");h[f.COMPARATORTRIM]="(\\s*)"+h[f.GTLT]+"\\s*("+h[f.LOOSEPLAIN]+"|"+h[f.XRANGEPLAIN]+")";b[f.COMPARATORTRIM]=new RegExp(h[f.COMPARATORTRIM],"g");var As="$1$2$3";g("HYPHENRANGE");h[f.HYPHENRANGE]="^\\s*("+h[f.XRANGEPLAIN]+")\\s+-\\s+("+h[f.XRANGEPLAIN]+")\\s*$";g("HYPHENRANGELOOSE");h[f.HYPHENRANGELOOSE]="^\\s*("+h[f.XRANGEPLAINLOOSE]+")\\s+-\\s+("+h[f.XRANGEPLAINLOOSE]+")\\s*$";g("STAR");h[f.STAR]="(<|>)?=?\\s*\\*";for(var ge=0;gePt)return null;var r=t.loose?b[f.LOOSE]:b[f.FULL];if(!r.test(e))return null;try{return new y(e,t)}catch(n){return null}}p.valid=_s;function _s(e,t){var r=Ee(e,t);return r?r.version:null}p.clean=Is;function Is(e,t){var r=Ee(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}p.SemVer=y;function y(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof y){if(e.loose===t.loose)return e;e=e.version}else if(typeof e!="string")throw new TypeError("Invalid Version: "+e);if(e.length>Pt)throw new TypeError("version is longer than "+Pt+" characters");if(!(this instanceof y))return new y(e,t);O("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?b[f.LOOSE]:b[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>it||this.major<0)throw new TypeError("Invalid major version");if(this.minor>it||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>it||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};p.inc=Ns;function Ns(e,t,r,n){typeof r=="string"&&(n=r,r=void 0);try{return new y(e,r).inc(t,n).version}catch(i){return null}}p.diff=xs;function xs(e,t){if(Ct(e,t))return null;var r=Ee(e),n=Ee(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}p.compareIdentifiers=we;var jr=/^[0-9]+$/;function we(e,t){var r=jr.test(e),n=jr.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e0}p.lt=st;function st(e,t,r){return te(e,t,r)<0}p.eq=Ct;function Ct(e,t,r){return te(e,t,r)===0}p.neq=kr;function kr(e,t,r){return te(e,t,r)!==0}p.gte=$t;function $t(e,t,r){return te(e,t,r)>=0}p.lte=qt;function qt(e,t,r){return te(e,t,r)<=0}p.cmp=ot;function ot(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 Ct(e,r,n);case"!=":return kr(e,r,n);case">":return Ge(e,r,n);case">=":return $t(e,r,n);case"<":return st(e,r,n);case"<=":return qt(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}p.Comparator=F;function F(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof F){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof F))return new F(e,t);O("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===xe?this.value="":this.value=this.operator+this.semver.version,O("comp",this)}var xe={};F.prototype.parse=function(e){var t=this.options.loose?b[f.COMPARATORLOOSE]:b[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 y(r[2],this.options.loose):this.semver=xe};F.prototype.toString=function(){return this.value};F.prototype.test=function(e){if(O("Comparator.test",e,this.options.loose),this.semver===xe||e===xe)return!0;if(typeof e=="string")try{e=new y(e,this.options)}catch(t){return!1}return ot(e,this.operator,this.semver,this.options)};F.prototype.intersects=function(e,t){if(!(e instanceof F))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 _(e.value,t),at(this.value,r,t));if(e.operator==="")return e.value===""?!0:(r=new _(this.value,t),at(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==="<="),a=ot(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),u=ot(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||i||s&&o||a||u};p.Range=_;function _(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof _)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new _(e.raw,t);if(e instanceof F)return new _(e.value,t);if(!(this instanceof _))return new _(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(function(r){return this.parseRange(r.trim())},this).filter(function(r){return r.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}_.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range};_.prototype.toString=function(){return this.range};_.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var r=t?b[f.HYPHENRANGELOOSE]:b[f.HYPHENRANGE];e=e.replace(r,Js),O("hyphen replace",e),e=e.replace(b[f.COMPARATORTRIM],As),O("comparator trim",e,b[f.COMPARATORTRIM]),e=e.replace(b[f.TILDETRIM],Ss),e=e.replace(b[f.CARETTRIM],Ts),e=e.split(/\s+/).join(" ");var n=t?b[f.COMPARATORLOOSE]:b[f.COMPARATOR],i=e.split(" ").map(function(s){return Bs(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 F(s,this.options)},this),i};_.prototype.intersects=function(e,t){if(!(e instanceof _))throw new TypeError("a Range is required");return this.set.some(function(r){return Ur(r,t)&&e.set.some(function(n){return Ur(n,t)&&r.every(function(i){return n.every(function(s){return i.intersects(s,t)})})})})};function Ur(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}p.toComparators=Fs;function Fs(e,t){return new _(e,t).set.map(function(r){return r.map(function(n){return n.value}).join(" ").trim().split(" ")})}function Bs(e,t){return O("comp",e,t),e=Vs(e,t),O("caret",e),e=Ms(e,t),O("tildes",e),e=zs(e,t),O("xrange",e),e=Ws(e,t),O("stars",e),e}function L(e){return!e||e.toLowerCase()==="x"||e==="*"}function Ms(e,t){return e.trim().split(/\s+/).map(function(r){return Gs(r,t)}).join(" ")}function Gs(e,t){var r=t.loose?b[f.TILDELOOSE]:b[f.TILDE];return e.replace(r,function(n,i,s,o,a){O("tilde",e,n,i,s,o,a);var u;return L(i)?u="":L(s)?u=">="+i+".0.0 <"+(+i+1)+".0.0":L(o)?u=">="+i+"."+s+".0 <"+i+"."+(+s+1)+".0":a?(O("replaceTilde pr",a),u=">="+i+"."+s+"."+o+"-"+a+" <"+i+"."+(+s+1)+".0"):u=">="+i+"."+s+"."+o+" <"+i+"."+(+s+1)+".0",O("tilde return",u),u})}function Vs(e,t){return e.trim().split(/\s+/).map(function(r){return Hs(r,t)}).join(" ")}function Hs(e,t){O("caret",e,t);var r=t.loose?b[f.CARETLOOSE]:b[f.CARET];return e.replace(r,function(n,i,s,o,a){O("caret",e,n,i,s,o,a);var u;return L(i)?u="":L(s)?u=">="+i+".0.0 <"+(+i+1)+".0.0":L(o)?i==="0"?u=">="+i+"."+s+".0 <"+i+"."+(+s+1)+".0":u=">="+i+"."+s+".0 <"+(+i+1)+".0.0":a?(O("replaceCaret pr",a),i==="0"?s==="0"?u=">="+i+"."+s+"."+o+"-"+a+" <"+i+"."+s+"."+(+o+1):u=">="+i+"."+s+"."+o+"-"+a+" <"+i+"."+(+s+1)+".0":u=">="+i+"."+s+"."+o+"-"+a+" <"+(+i+1)+".0.0"):(O("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"),O("caret return",u),u})}function zs(e,t){return O("replaceXRanges",e,t),e.split(/\s+/).map(function(r){return Xs(r,t)}).join(" ")}function Xs(e,t){e=e.trim();var r=t.loose?b[f.XRANGELOOSE]:b[f.XRANGE];return e.replace(r,function(n,i,s,o,a,u){O("xRange",e,n,i,s,o,a,u);var c=L(s),l=c||L(o),d=l||L(a),m=d;return i==="="&&m&&(i=""),u=t.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&m?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),n=i+s+"."+o+"."+a+u):l?n=">="+s+".0.0"+u+" <"+(+s+1)+".0.0"+u:d&&(n=">="+s+"."+o+".0"+u+" <"+s+"."+(+o+1)+".0"+u),O("xRange return",n),n})}function Ws(e,t){return O("replaceStars",e,t),e.trim().replace(b[f.STAR],"")}function Js(e,t,r,n,i,s,o,a,u,c,l,d,m){return L(r)?t="":L(n)?t=">="+r+".0.0":L(i)?t=">="+r+"."+n+".0":t=">="+t,L(u)?a="":L(c)?a="<"+(+u+1)+".0.0":L(l)?a="<"+u+"."+(+c+1)+".0":d?a="<="+u+"."+c+"."+l+"-"+d:a="<="+a,(t+" "+a).trim()}_.prototype.test=function(e){if(!e)return!1;if(typeof e=="string")try{e=new y(e,this.options)}catch(r){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}p.satisfies=at;function at(e,t,r){try{t=new _(t,r)}catch(n){return!1}return t.test(e)}p.maxSatisfying=Zs;function Zs(e,t,r){var n=null,i=null;try{var s=new _(t,r)}catch(o){return null}return e.forEach(function(o){s.test(o)&&(!n||i.compare(o)===-1)&&(n=o,i=new y(n,r))}),n}p.minSatisfying=Qs;function Qs(e,t,r){var n=null,i=null;try{var s=new _(t,r)}catch(o){return null}return e.forEach(function(o){s.test(o)&&(!n||i.compare(o)===1)&&(n=o,i=new y(n,r))}),n}p.minVersion=Ks;function Ks(e,t){e=new _(e,t);var r=new y("0.0.0");if(e.test(r)||(r=new y("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||Ge(r,o))&&(r=o);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+s.operator)}})}return r&&e.test(r)?r:null}p.validRange=eo;function eo(e,t){try{return new _(e,t).range||"*"}catch(r){return null}}p.ltr=to;function to(e,t,r){return Dt(e,t,"<",r)}p.gtr=ro;function ro(e,t,r){return Dt(e,t,">",r)}p.outside=Dt;function Dt(e,t,r,n){e=new y(e,n),t=new _(t,n);var i,s,o,a,u;switch(r){case">":i=Ge,s=qt,o=st,a=">",u=">=";break;case"<":i=st,s=$t,o=Ge,a="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(at(e,t,n))return!1;for(var c=0;c=0.0.0")),d=d||A,m=m||A,i(A.semver,d.semver,n)?d=A:o(A.semver,m.semver,n)&&(m=A)}),d.operator===a||d.operator===u||(!m.operator||m.operator===a)&&s(e,m.semver))return!1;if(m.operator===u&&o(e,m.semver))return!1}return!0}p.prerelease=no;function no(e,t){var r=Ee(e,t);return r&&r.prerelease.length?r.prerelease:null}p.intersects=io;function io(e,t,r){return e=new _(e,r),t=new _(t,r),e.intersects(t)}p.coerce=so;function so(e,t){if(e instanceof y)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(b[f.COERCE]);else{for(var n;(n=b[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),b[f.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;b[f.COERCERTL].lastIndex=-1}return r===null?null:Ee(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}});var Vr=E((re,Ut)=>{"use strict";var oo=re&&re.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},ao=re&&re.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(re,"__esModule",{value:!0});var Br=ao(jt()),kt=Ie(),Mr=require("os"),uo=require("child_process"),Gr=require("fs");function co(e,t,r,n){return oo(this,void 0,void 0,function*(){let i=Mr.platform(),s,o,a;for(let u of r){let c=u.version;if(kt.debug(`check ${c} satisfies ${e}`),Br.satisfies(c,e)&&(!t||u.stable===t)&&(a=u.files.find(l=>{kt.debug(`${l.arch}===${n} && ${l.platform}===${i}`);let d=l.arch===n&&l.platform===i;if(d&&l.platform_version){let m=Ut.exports._getOsVersion();m===l.platform_version?d=!0:d=Br.satisfies(m,l.platform_version)}return d}),a)){kt.debug(`matched ${u.version}`),o=u;break}}return o&&a&&(s=Object.assign({},o),s.files=[a]),s})}re._findMatch=co;function lo(){let e=Mr.platform(),t="";if(e==="darwin")t=uo.execSync("sw_vers -productVersion").toString();else if(e==="linux"){let r=Ut.exports._readLinuxVersionFile();if(r){let n=r.split(` +var Ci=Object.create,Tt=Object.defineProperty,$i=Object.getPrototypeOf,qi=Object.prototype.hasOwnProperty,Di=Object.getOwnPropertyNames,ji=Object.getOwnPropertyDescriptor;var ki=e=>Tt(e,"__esModule",{value:!0});var E=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports);var Ui=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Di(t))!qi.call(e,n)&&n!=="default"&&Tt(e,n,{get:()=>t[n],enumerable:!(r=ji(t,n))||r.enumerable});return e},J=e=>Ui(ki(Tt(e!=null?Ci($i(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var tt=E(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});function Fi(e){return e==null?"":typeof e=="string"||e instanceof String?e:JSON.stringify(e)}At.toCommandValue=Fi});var vr=E(_e=>{"use strict";var Bi=_e&&_e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(_e,"__esModule",{value:!0});var Mi=Bi(require("os")),yr=tt();function Er(e,t,r){let n=new gr(e,t,r);process.stdout.write(n.toString()+Mi.EOL)}_e.issueCommand=Er;function Gi(e,t=""){Er(e,{},t)}_e.issue=Gi;var wr="::",gr=class{constructor(t,r,n){t||(t="missing.command"),this.command=t,this.properties=r,this.message=n}toString(){let t=wr+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}=${Hi(i)}`)}}return t+=`${wr}${Vi(this.message)}`,t}};function Vi(e){return yr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function Hi(e){return yr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}});var Rr=E(Me=>{"use strict";var br=Me&&Me.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(Me,"__esModule",{value:!0});var Or=br(require("fs")),zi=br(require("os")),Xi=tt();function Wi(e,t){let r=process.env[`GITHUB_${e}`];if(!r)throw new Error(`Unable to find environment variable for file command ${e}`);if(!Or.existsSync(r))throw new Error(`Missing file at path: ${r}`);Or.appendFileSync(r,`${Xi.toCommandValue(t)}${zi.EOL}`,{encoding:"utf8"})}Me.issueCommand=Wi});var Ie=E(T=>{"use strict";var Ji=T&&T.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Sr=T&&T.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(T,"__esModule",{value:!0});var V=vr(),Tr=Rr(),Yi=tt(),_t=Sr(require("os")),Zi=Sr(require("path")),Ar;(function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure"})(Ar=T.ExitCode||(T.ExitCode={}));function Qi(e,t){let r=Yi.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV||""){let i="_GitHubActionsFileCommandDelimeter_",s=`${e}<<${i}${_t.EOL}${r}${_t.EOL}${i}`;Tr.issueCommand("ENV",s)}else V.issueCommand("set-env",{name:e},r)}T.exportVariable=Qi;function Ki(e){V.issueCommand("add-mask",{},e)}T.setSecret=Ki;function es(e){process.env.GITHUB_PATH||""?Tr.issueCommand("PATH",e):V.issueCommand("add-path",{},e),process.env.PATH=`${e}${Zi.delimiter}${process.env.PATH}`}T.addPath=es;function ts(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 r.trim()}T.getInput=ts;function rs(e,t){V.issueCommand("set-output",{name:e},t)}T.setOutput=rs;function ns(e){V.issue("echo",e?"on":"off")}T.setCommandEcho=ns;function is(e){process.exitCode=Ar.Failure,_r(e)}T.setFailed=is;function ss(){return process.env.RUNNER_DEBUG==="1"}T.isDebug=ss;function os(e){V.issueCommand("debug",{},e)}T.debug=os;function _r(e){V.issue("error",e instanceof Error?e.toString():e)}T.error=_r;function as(e){V.issue("warning",e instanceof Error?e.toString():e)}T.warning=as;function us(e){process.stdout.write(e+_t.EOL)}T.info=us;function Ir(e){V.issue("group",e)}T.startGroup=Ir;function Nr(){V.issue("endgroup")}T.endGroup=Nr;function cs(e,t){return Ji(this,void 0,void 0,function*(){Ir(e);let r;try{r=yield t()}finally{Nr()}return r})}T.group=cs;function ls(e,t){V.issueCommand("save-state",{name:e},t)}T.saveState=ls;function fs(e){return process.env[`STATE_${e}`]||""}T.getState=fs});var It=E(w=>{"use strict";var rt=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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},U;Object.defineProperty(w,"__esModule",{value:!0});var hs=require("assert"),ds=require("fs"),Ne=require("path");U=ds.promises,w.chmod=U.chmod,w.copyFile=U.copyFile,w.lstat=U.lstat,w.mkdir=U.mkdir,w.readdir=U.readdir,w.readlink=U.readlink,w.rename=U.rename,w.rmdir=U.rmdir,w.stat=U.stat,w.symlink=U.symlink,w.unlink=U.unlink;w.IS_WINDOWS=process.platform==="win32";function ps(e){return rt(this,void 0,void 0,function*(){try{yield w.stat(e)}catch(t){if(t.code==="ENOENT")return!1;throw t}return!0})}w.exists=ps;function ms(e,t=!1){return rt(this,void 0,void 0,function*(){return(t?yield w.stat(e):yield w.lstat(e)).isDirectory()})}w.isDirectory=ms;function gs(e){if(e=ys(e),!e)throw new Error('isRooted() parameter "p" cannot be empty');return w.IS_WINDOWS?e.startsWith("\\")||/^[A-Z]:/i.test(e):e.startsWith("/")}w.isRooted=gs;function xr(e,t=1e3,r=1){return rt(this,void 0,void 0,function*(){if(hs.ok(e,"a path argument must be provided"),e=Ne.resolve(e),r>=t)return w.mkdir(e);try{yield w.mkdir(e);return}catch(n){switch(n.code){case"ENOENT":{yield xr(Ne.dirname(e),t,r+1),yield w.mkdir(e);return}default:{let i;try{i=yield w.stat(e)}catch(s){throw n}if(!i.isDirectory())throw n}}}})}w.mkdirP=xr;function Es(e,t){return rt(this,void 0,void 0,function*(){let r;try{r=yield w.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(w.IS_WINDOWS){let i=Ne.extname(e).toUpperCase();if(t.some(s=>s.toUpperCase()===i))return e}else if(Pr(r))return e}let n=e;for(let i of t){e=n+i,r=void 0;try{r=yield w.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(w.IS_WINDOWS){try{let s=Ne.dirname(e),o=Ne.basename(e).toUpperCase();for(let a of yield w.readdir(s))if(o===a.toUpperCase()){e=Ne.join(s,a);break}}catch(s){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${s}`)}return e}else if(Pr(r))return e}}return""})}w.tryGetExecutablePath=Es;function ys(e){return e=e||"",w.IS_WINDOWS?(e=e.replace(/\//g,"\\"),e.replace(/\\\\+/g,"\\")):e.replace(/\/\/+/g,"/")}function Pr(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}});var nt=E(K=>{"use strict";var ye=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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})};Object.defineProperty(K,"__esModule",{value:!0});var ws=require("child_process"),ee=require("path"),vs=require("util"),v=It(),Nt=vs.promisify(ws.exec);function Os(e,t,r={}){return ye(this,void 0,void 0,function*(){let{force:n,recursive:i}=bs(r),s=(yield v.exists(t))?yield v.stat(t):null;if(s&&s.isFile()&&!n)return;let o=s&&s.isDirectory()?ee.join(t,ee.basename(e)):t;if(!(yield v.exists(e)))throw new Error(`no such file or directory: ${e}`);if((yield v.stat(e)).isDirectory())if(i)yield Lr(e,o,0,n);else throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);else{if(ee.relative(e,o)==="")throw new Error(`'${o}' and '${e}' are the same file`);yield Cr(e,o,n)}})}K.cp=Os;function Rs(e,t,r={}){return ye(this,void 0,void 0,function*(){if(yield v.exists(t)){let n=!0;if((yield v.isDirectory(t))&&(t=ee.join(t,ee.basename(e)),n=yield v.exists(t)),n)if(r.force==null||r.force)yield $r(t);else throw new Error("Destination already exists")}yield xt(ee.dirname(t)),yield v.rename(e,t)})}K.mv=Rs;function $r(e){return ye(this,void 0,void 0,function*(){if(v.IS_WINDOWS){try{(yield v.isDirectory(e,!0))?yield Nt(`rd /s /q "${e}"`):yield Nt(`del /f /a "${e}"`)}catch(t){if(t.code!=="ENOENT")throw t}try{yield v.unlink(e)}catch(t){if(t.code!=="ENOENT")throw t}}else{let t=!1;try{t=yield v.isDirectory(e)}catch(r){if(r.code!=="ENOENT")throw r;return}t?yield Nt(`rm -rf "${e}"`):yield v.unlink(e)}})}K.rmRF=$r;function xt(e){return ye(this,void 0,void 0,function*(){yield v.mkdirP(e)})}K.mkdirP=xt;function qr(e,t){return ye(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");if(t&&!(yield qr(e,!1)))throw v.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.`);try{let r=[];if(v.IS_WINDOWS&&process.env.PATHEXT)for(let i of process.env.PATHEXT.split(ee.delimiter))i&&r.push(i);if(v.isRooted(e)){let i=yield v.tryGetExecutablePath(e,r);return i||""}if(e.includes("/")||v.IS_WINDOWS&&e.includes("\\"))return"";let n=[];if(process.env.PATH)for(let i of process.env.PATH.split(ee.delimiter))i&&n.push(i);for(let i of n){let s=yield v.tryGetExecutablePath(i+ee.sep+e,r);if(s)return s}return""}catch(r){throw new Error(`which failed with message ${r.message}`)}})}K.which=qr;function bs(e){let t=e.force==null?!0:e.force,r=Boolean(e.recursive);return{force:t,recursive:r}}function Lr(e,t,r,n){return ye(this,void 0,void 0,function*(){if(r>=255)return;r++,yield xt(t);let i=yield v.readdir(e);for(let s of i){let o=`${e}/${s}`,a=`${t}/${s}`;(yield v.lstat(o)).isDirectory()?yield Lr(o,a,r,n):yield Cr(o,a,n)}yield v.chmod(t,(yield v.stat(e)).mode)})}function Cr(e,t,r){return ye(this,void 0,void 0,function*(){if((yield v.lstat(e)).isSymbolicLink()){try{yield v.lstat(t),yield v.unlink(t)}catch(i){i.code==="EPERM"&&(yield v.chmod(t,"0666"),yield v.unlink(t))}let n=yield v.readlink(e);yield v.symlink(n,t,v.IS_WINDOWS?"junction":null)}else(!(yield v.exists(t))||r)&&(yield v.copyFile(e,t))})}});var jt=E((p,Dr)=>{p=Dr.exports=y;var O;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?O=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:O=function(){};p.SEMVER_SPEC_VERSION="2.0.0";var Pt=256,it=Number.MAX_SAFE_INTEGER||9007199254740991,Lt=16,b=p.re=[],h=p.src=[],f=p.tokens={},jr=0;function g(e){f[e]=jr++}g("NUMERICIDENTIFIER");h[f.NUMERICIDENTIFIER]="0|[1-9]\\d*";g("NUMERICIDENTIFIERLOOSE");h[f.NUMERICIDENTIFIERLOOSE]="[0-9]+";g("NONNUMERICIDENTIFIER");h[f.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";g("MAINVERSION");h[f.MAINVERSION]="("+h[f.NUMERICIDENTIFIER]+")\\.("+h[f.NUMERICIDENTIFIER]+")\\.("+h[f.NUMERICIDENTIFIER]+")";g("MAINVERSIONLOOSE");h[f.MAINVERSIONLOOSE]="("+h[f.NUMERICIDENTIFIERLOOSE]+")\\.("+h[f.NUMERICIDENTIFIERLOOSE]+")\\.("+h[f.NUMERICIDENTIFIERLOOSE]+")";g("PRERELEASEIDENTIFIER");h[f.PRERELEASEIDENTIFIER]="(?:"+h[f.NUMERICIDENTIFIER]+"|"+h[f.NONNUMERICIDENTIFIER]+")";g("PRERELEASEIDENTIFIERLOOSE");h[f.PRERELEASEIDENTIFIERLOOSE]="(?:"+h[f.NUMERICIDENTIFIERLOOSE]+"|"+h[f.NONNUMERICIDENTIFIER]+")";g("PRERELEASE");h[f.PRERELEASE]="(?:-("+h[f.PRERELEASEIDENTIFIER]+"(?:\\."+h[f.PRERELEASEIDENTIFIER]+")*))";g("PRERELEASELOOSE");h[f.PRERELEASELOOSE]="(?:-?("+h[f.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+h[f.PRERELEASEIDENTIFIERLOOSE]+")*))";g("BUILDIDENTIFIER");h[f.BUILDIDENTIFIER]="[0-9A-Za-z-]+";g("BUILD");h[f.BUILD]="(?:\\+("+h[f.BUILDIDENTIFIER]+"(?:\\."+h[f.BUILDIDENTIFIER]+")*))";g("FULL");g("FULLPLAIN");h[f.FULLPLAIN]="v?"+h[f.MAINVERSION]+h[f.PRERELEASE]+"?"+h[f.BUILD]+"?";h[f.FULL]="^"+h[f.FULLPLAIN]+"$";g("LOOSEPLAIN");h[f.LOOSEPLAIN]="[v=\\s]*"+h[f.MAINVERSIONLOOSE]+h[f.PRERELEASELOOSE]+"?"+h[f.BUILD]+"?";g("LOOSE");h[f.LOOSE]="^"+h[f.LOOSEPLAIN]+"$";g("GTLT");h[f.GTLT]="((?:<|>)?=?)";g("XRANGEIDENTIFIERLOOSE");h[f.XRANGEIDENTIFIERLOOSE]=h[f.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";g("XRANGEIDENTIFIER");h[f.XRANGEIDENTIFIER]=h[f.NUMERICIDENTIFIER]+"|x|X|\\*";g("XRANGEPLAIN");h[f.XRANGEPLAIN]="[v=\\s]*("+h[f.XRANGEIDENTIFIER]+")(?:\\.("+h[f.XRANGEIDENTIFIER]+")(?:\\.("+h[f.XRANGEIDENTIFIER]+")(?:"+h[f.PRERELEASE]+")?"+h[f.BUILD]+"?)?)?";g("XRANGEPLAINLOOSE");h[f.XRANGEPLAINLOOSE]="[v=\\s]*("+h[f.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+h[f.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+h[f.XRANGEIDENTIFIERLOOSE]+")(?:"+h[f.PRERELEASELOOSE]+")?"+h[f.BUILD]+"?)?)?";g("XRANGE");h[f.XRANGE]="^"+h[f.GTLT]+"\\s*"+h[f.XRANGEPLAIN]+"$";g("XRANGELOOSE");h[f.XRANGELOOSE]="^"+h[f.GTLT]+"\\s*"+h[f.XRANGEPLAINLOOSE]+"$";g("COERCE");h[f.COERCE]="(^|[^\\d])(\\d{1,"+Lt+"})(?:\\.(\\d{1,"+Lt+"}))?(?:\\.(\\d{1,"+Lt+"}))?(?:$|[^\\d])";g("COERCERTL");b[f.COERCERTL]=new RegExp(h[f.COERCE],"g");g("LONETILDE");h[f.LONETILDE]="(?:~>?)";g("TILDETRIM");h[f.TILDETRIM]="(\\s*)"+h[f.LONETILDE]+"\\s+";b[f.TILDETRIM]=new RegExp(h[f.TILDETRIM],"g");var Ss="$1~";g("TILDE");h[f.TILDE]="^"+h[f.LONETILDE]+h[f.XRANGEPLAIN]+"$";g("TILDELOOSE");h[f.TILDELOOSE]="^"+h[f.LONETILDE]+h[f.XRANGEPLAINLOOSE]+"$";g("LONECARET");h[f.LONECARET]="(?:\\^)";g("CARETTRIM");h[f.CARETTRIM]="(\\s*)"+h[f.LONECARET]+"\\s+";b[f.CARETTRIM]=new RegExp(h[f.CARETTRIM],"g");var Ts="$1^";g("CARET");h[f.CARET]="^"+h[f.LONECARET]+h[f.XRANGEPLAIN]+"$";g("CARETLOOSE");h[f.CARETLOOSE]="^"+h[f.LONECARET]+h[f.XRANGEPLAINLOOSE]+"$";g("COMPARATORLOOSE");h[f.COMPARATORLOOSE]="^"+h[f.GTLT]+"\\s*("+h[f.LOOSEPLAIN]+")$|^$";g("COMPARATOR");h[f.COMPARATOR]="^"+h[f.GTLT]+"\\s*("+h[f.FULLPLAIN]+")$|^$";g("COMPARATORTRIM");h[f.COMPARATORTRIM]="(\\s*)"+h[f.GTLT]+"\\s*("+h[f.LOOSEPLAIN]+"|"+h[f.XRANGEPLAIN]+")";b[f.COMPARATORTRIM]=new RegExp(h[f.COMPARATORTRIM],"g");var As="$1$2$3";g("HYPHENRANGE");h[f.HYPHENRANGE]="^\\s*("+h[f.XRANGEPLAIN]+")\\s+-\\s+("+h[f.XRANGEPLAIN]+")\\s*$";g("HYPHENRANGELOOSE");h[f.HYPHENRANGELOOSE]="^\\s*("+h[f.XRANGEPLAINLOOSE]+")\\s+-\\s+("+h[f.XRANGEPLAINLOOSE]+")\\s*$";g("STAR");h[f.STAR]="(<|>)?=?\\s*\\*";for(var ge=0;gePt)return null;var r=t.loose?b[f.LOOSE]:b[f.FULL];if(!r.test(e))return null;try{return new y(e,t)}catch(n){return null}}p.valid=_s;function _s(e,t){var r=Ee(e,t);return r?r.version:null}p.clean=Is;function Is(e,t){var r=Ee(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}p.SemVer=y;function y(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof y){if(e.loose===t.loose)return e;e=e.version}else if(typeof e!="string")throw new TypeError("Invalid Version: "+e);if(e.length>Pt)throw new TypeError("version is longer than "+Pt+" characters");if(!(this instanceof y))return new y(e,t);O("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?b[f.LOOSE]:b[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>it||this.major<0)throw new TypeError("Invalid major version");if(this.minor>it||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>it||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};p.inc=Ns;function Ns(e,t,r,n){typeof r=="string"&&(n=r,r=void 0);try{return new y(e,r).inc(t,n).version}catch(i){return null}}p.diff=xs;function xs(e,t){if(Ct(e,t))return null;var r=Ee(e),n=Ee(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}p.compareIdentifiers=we;var kr=/^[0-9]+$/;function we(e,t){var r=kr.test(e),n=kr.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e0}p.lt=st;function st(e,t,r){return te(e,t,r)<0}p.eq=Ct;function Ct(e,t,r){return te(e,t,r)===0}p.neq=Ur;function Ur(e,t,r){return te(e,t,r)!==0}p.gte=$t;function $t(e,t,r){return te(e,t,r)>=0}p.lte=qt;function qt(e,t,r){return te(e,t,r)<=0}p.cmp=ot;function ot(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 Ct(e,r,n);case"!=":return Ur(e,r,n);case">":return Ge(e,r,n);case">=":return $t(e,r,n);case"<":return st(e,r,n);case"<=":return qt(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}p.Comparator=F;function F(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof F){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof F))return new F(e,t);O("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===xe?this.value="":this.value=this.operator+this.semver.version,O("comp",this)}var xe={};F.prototype.parse=function(e){var t=this.options.loose?b[f.COMPARATORLOOSE]:b[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 y(r[2],this.options.loose):this.semver=xe};F.prototype.toString=function(){return this.value};F.prototype.test=function(e){if(O("Comparator.test",e,this.options.loose),this.semver===xe||e===xe)return!0;if(typeof e=="string")try{e=new y(e,this.options)}catch(t){return!1}return ot(e,this.operator,this.semver,this.options)};F.prototype.intersects=function(e,t){if(!(e instanceof F))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 _(e.value,t),at(this.value,r,t));if(e.operator==="")return e.value===""?!0:(r=new _(this.value,t),at(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==="<="),a=ot(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),u=ot(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||i||s&&o||a||u};p.Range=_;function _(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof _)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new _(e.raw,t);if(e instanceof F)return new _(e.value,t);if(!(this instanceof _))return new _(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(function(r){return this.parseRange(r.trim())},this).filter(function(r){return r.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}_.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range};_.prototype.toString=function(){return this.range};_.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var r=t?b[f.HYPHENRANGELOOSE]:b[f.HYPHENRANGE];e=e.replace(r,Bs),O("hyphen replace",e),e=e.replace(b[f.COMPARATORTRIM],As),O("comparator trim",e,b[f.COMPARATORTRIM]),e=e.replace(b[f.TILDETRIM],Ss),e=e.replace(b[f.CARETTRIM],Ts),e=e.split(/\s+/).join(" ");var n=t?b[f.COMPARATORLOOSE]:b[f.COMPARATOR],i=e.split(" ").map(function(s){return Fs(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 F(s,this.options)},this),i};_.prototype.intersects=function(e,t){if(!(e instanceof _))throw new TypeError("a Range is required");return this.set.some(function(r){return Fr(r,t)&&e.set.some(function(n){return Fr(n,t)&&r.every(function(i){return n.every(function(s){return i.intersects(s,t)})})})})};function Fr(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}p.toComparators=Ms;function Ms(e,t){return new _(e,t).set.map(function(r){return r.map(function(n){return n.value}).join(" ").trim().split(" ")})}function Fs(e,t){return O("comp",e,t),e=Vs(e,t),O("caret",e),e=Gs(e,t),O("tildes",e),e=Hs(e,t),O("xrange",e),e=zs(e,t),O("stars",e),e}function L(e){return!e||e.toLowerCase()==="x"||e==="*"}function Gs(e,t){return e.trim().split(/\s+/).map(function(r){return Xs(r,t)}).join(" ")}function Xs(e,t){var r=t.loose?b[f.TILDELOOSE]:b[f.TILDE];return e.replace(r,function(n,i,s,o,a){O("tilde",e,n,i,s,o,a);var u;return L(i)?u="":L(s)?u=">="+i+".0.0 <"+(+i+1)+".0.0":L(o)?u=">="+i+"."+s+".0 <"+i+"."+(+s+1)+".0":a?(O("replaceTilde pr",a),u=">="+i+"."+s+"."+o+"-"+a+" <"+i+"."+(+s+1)+".0"):u=">="+i+"."+s+"."+o+" <"+i+"."+(+s+1)+".0",O("tilde return",u),u})}function Vs(e,t){return e.trim().split(/\s+/).map(function(r){return Ws(r,t)}).join(" ")}function Ws(e,t){O("caret",e,t);var r=t.loose?b[f.CARETLOOSE]:b[f.CARET];return e.replace(r,function(n,i,s,o,a){O("caret",e,n,i,s,o,a);var u;return L(i)?u="":L(s)?u=">="+i+".0.0 <"+(+i+1)+".0.0":L(o)?i==="0"?u=">="+i+"."+s+".0 <"+i+"."+(+s+1)+".0":u=">="+i+"."+s+".0 <"+(+i+1)+".0.0":a?(O("replaceCaret pr",a),i==="0"?s==="0"?u=">="+i+"."+s+"."+o+"-"+a+" <"+i+"."+s+"."+(+o+1):u=">="+i+"."+s+"."+o+"-"+a+" <"+i+"."+(+s+1)+".0":u=">="+i+"."+s+"."+o+"-"+a+" <"+(+i+1)+".0.0"):(O("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"),O("caret return",u),u})}function Hs(e,t){return O("replaceXRanges",e,t),e.split(/\s+/).map(function(r){return Js(r,t)}).join(" ")}function Js(e,t){e=e.trim();var r=t.loose?b[f.XRANGELOOSE]:b[f.XRANGE];return e.replace(r,function(n,i,s,o,a,u){O("xRange",e,n,i,s,o,a,u);var c=L(s),l=c||L(o),d=l||L(a),m=d;return i==="="&&m&&(i=""),u=t.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&m?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),n=i+s+"."+o+"."+a+u):l?n=">="+s+".0.0"+u+" <"+(+s+1)+".0.0"+u:d&&(n=">="+s+"."+o+".0"+u+" <"+s+"."+(+o+1)+".0"+u),O("xRange return",n),n})}function zs(e,t){return O("replaceStars",e,t),e.trim().replace(b[f.STAR],"")}function Bs(e,t,r,n,i,s,o,a,u,c,l,d,m){return L(r)?t="":L(n)?t=">="+r+".0.0":L(i)?t=">="+r+"."+n+".0":t=">="+t,L(u)?a="":L(c)?a="<"+(+u+1)+".0.0":L(l)?a="<"+u+"."+(+c+1)+".0":d?a="<="+u+"."+c+"."+l+"-"+d:a="<="+a,(t+" "+a).trim()}_.prototype.test=function(e){if(!e)return!1;if(typeof e=="string")try{e=new y(e,this.options)}catch(r){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}p.satisfies=at;function at(e,t,r){try{t=new _(t,r)}catch(n){return!1}return t.test(e)}p.maxSatisfying=Zs;function Zs(e,t,r){var n=null,i=null;try{var s=new _(t,r)}catch(o){return null}return e.forEach(function(o){s.test(o)&&(!n||i.compare(o)===-1)&&(n=o,i=new y(n,r))}),n}p.minSatisfying=Qs;function Qs(e,t,r){var n=null,i=null;try{var s=new _(t,r)}catch(o){return null}return e.forEach(function(o){s.test(o)&&(!n||i.compare(o)===1)&&(n=o,i=new y(n,r))}),n}p.minVersion=Ks;function Ks(e,t){e=new _(e,t);var r=new y("0.0.0");if(e.test(r)||(r=new y("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||Ge(r,o))&&(r=o);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+s.operator)}})}return r&&e.test(r)?r:null}p.validRange=eo;function eo(e,t){try{return new _(e,t).range||"*"}catch(r){return null}}p.ltr=to;function to(e,t,r){return Dt(e,t,"<",r)}p.gtr=ro;function ro(e,t,r){return Dt(e,t,">",r)}p.outside=Dt;function Dt(e,t,r,n){e=new y(e,n),t=new _(t,n);var i,s,o,a,u;switch(r){case">":i=Ge,s=qt,o=st,a=">",u=">=";break;case"<":i=st,s=$t,o=Ge,a="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(at(e,t,n))return!1;for(var c=0;c=0.0.0")),d=d||A,m=m||A,i(A.semver,d.semver,n)?d=A:o(A.semver,m.semver,n)&&(m=A)}),d.operator===a||d.operator===u||(!m.operator||m.operator===a)&&s(e,m.semver))return!1;if(m.operator===u&&o(e,m.semver))return!1}return!0}p.prerelease=no;function no(e,t){var r=Ee(e,t);return r&&r.prerelease.length?r.prerelease:null}p.intersects=io;function io(e,t,r){return e=new _(e,r),t=new _(t,r),e.intersects(t)}p.coerce=so;function so(e,t){if(e instanceof y)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(b[f.COERCE]);else{for(var n;(n=b[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),b[f.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;b[f.COERCERTL].lastIndex=-1}return r===null?null:Ee(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}});var Vr=E((re,kt)=>{"use strict";var oo=re&&re.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},ao=re&&re.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(re,"__esModule",{value:!0});var Br=ao(jt()),Ut=Ie(),Mr=require("os"),uo=require("child_process"),Gr=require("fs");function co(e,t,r,n){return oo(this,void 0,void 0,function*(){let i=Mr.platform(),s,o,a;for(let u of r){let c=u.version;if(Ut.debug(`check ${c} satisfies ${e}`),Br.satisfies(c,e)&&(!t||u.stable===t)&&(a=u.files.find(l=>{Ut.debug(`${l.arch}===${n} && ${l.platform}===${i}`);let d=l.arch===n&&l.platform===i;if(d&&l.platform_version){let m=kt.exports._getOsVersion();m===l.platform_version?d=!0:d=Br.satisfies(m,l.platform_version)}return d}),a)){Ut.debug(`matched ${u.version}`),o=u;break}}return o&&a&&(s=Object.assign({},o),s.files=[a]),s})}re._findMatch=co;function lo(){let e=Mr.platform(),t="";if(e==="darwin")t=uo.execSync("sw_vers -productVersion").toString();else if(e==="linux"){let r=kt.exports._readLinuxVersionFile();if(r){let n=r.split(` `);for(let i of n){let s=i.split("=");if(s.length===2&&s[0].trim()==="DISTRIB_RELEASE"){t=s[1].trim();break}}}}return t}re._getOsVersion=lo;function fo(){let e="/etc/lsb-release",t="";return Gr.existsSync(e)&&(t=Gr.readFileSync(e).toString()),t}re._readLinuxVersionFile=fo});var zr=E(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});function ho(e){let t=e.protocol==="https:",r;if(Hr(e))return r;let n;return t?n=process.env.https_proxy||process.env.HTTPS_PROXY:n=process.env.http_proxy||process.env.HTTP_PROXY,n&&(r=new URL(n)),r}ut.getProxyUrl=ho;function Hr(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}ut.checkBypass=Hr});var Yr=E(Pe=>{"use strict";var Pu=require("net"),po=require("tls"),Ft=require("http"),Xr=require("https"),mo=require("events"),Lu=require("assert"),yo=require("util");Pe.httpOverHttp=go;Pe.httpsOverHttp=Eo;Pe.httpOverHttps=wo;Pe.httpsOverHttps=vo;function go(e){var t=new ne(e);return t.request=Ft.request,t}function Eo(e){var t=new ne(e);return t.request=Ft.request,t.createSocket=Wr,t.defaultPort=443,t}function wo(e){var t=new ne(e);return t.request=Xr.request,t}function vo(e){var t=new ne(e);return t.request=Xr.request,t.createSocket=Wr,t.defaultPort=443,t}function ne(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||Ft.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(n,i,s,o){for(var a=Jr(i,s,o),u=0,c=t.requests.length;u=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",u),a.on("close",c),a.on("agentRemove",c),t.onSocket(a);function u(){s.emit("free",a,o)}function c(l){s.removeSocket(a),a.removeListener("free",u),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};ne.prototype.createSocket=function(t,r){var n=this,i={};n.sockets.push(i);var s=Bt({},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")),fe("making CONNECT request");var o=n.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",u),o.once("connect",c),o.once("error",l),o.end();function a(d){d.upgrade=!0}function u(d,m,A){process.nextTick(function(){c(d,m,A)})}function c(d,m,A){if(o.removeAllListeners(),m.removeAllListeners(),d.statusCode!==200){fe("tunneling socket could not be established, statusCode=%d",d.statusCode),m.destroy();var S=new Error("tunneling socket could not be established, statusCode="+d.statusCode);S.code="ECONNRESET",t.request.emit("error",S),n.removeSocket(i);return}if(A.length>0){fe("got illegal response body from proxy"),m.destroy();var S=new Error("got illegal response body from proxy");S.code="ECONNRESET",t.request.emit("error",S),n.removeSocket(i);return}return fe("tunneling connection has established"),n.sockets[n.sockets.indexOf(i)]=m,r(m)}function l(d){o.removeAllListeners(),fe(`tunneling socket could not be established, cause=%s -`,d.message,d.stack);var m=new Error("tunneling socket could not be established, cause="+d.message);m.code="ECONNRESET",t.request.emit("error",m),n.removeSocket(i)}};ne.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 Wr(e,t){var r=this;ne.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),s=Bt({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),o=po.connect(0,s);r.sockets[r.sockets.indexOf(n)]=o,t(o)})}function Jr(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function Bt(e){for(var t=1,r=arguments.length;t{Zr.exports=Yr()});var en=E(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});var ct=require("http"),Mt=require("https"),Kr=zr(),Le,H;(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"})(H=j.HttpCodes||(j.HttpCodes={}));var C;(function(e){e.Accept="accept",e.ContentType="content-type"})(C=j.Headers||(j.Headers={}));var he;(function(e){e.ApplicationJson="application/json"})(he=j.MediaTypes||(j.MediaTypes={}));function bo(e){let t=Kr.getProxyUrl(new URL(e));return t?t.href:""}j.getProxyUrl=bo;var Oo=[H.MovedPermanently,H.ResourceMoved,H.SeeOther,H.TemporaryRedirect,H.PermanentRedirect],Ro=[H.BadGateway,H.ServiceUnavailable,H.GatewayTimeout],So=["OPTIONS","GET","DELETE","HEAD"],To=10,Ao=5,Ve=class extends Error{constructor(t,r){super(t);this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,Ve.prototype)}};j.HttpClientError=Ve;var Gt=class{constructor(t){this.message=t}readBody(){return new Promise(async(t,r)=>{let n=Buffer.alloc(0);this.message.on("data",i=>{n=Buffer.concat([n,i])}),this.message.on("end",()=>{t(n.toString())})})}};j.HttpClientResponse=Gt;function _o(e){return new URL(e).protocol==="https:"}j.isHttps=_o;var lt=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 this.request("OPTIONS",t,null,r||{})}get(t,r){return this.request("GET",t,null,r||{})}del(t,r){return this.request("DELETE",t,null,r||{})}post(t,r,n){return this.request("POST",t,r,n||{})}patch(t,r,n){return this.request("PATCH",t,r,n||{})}put(t,r,n){return this.request("PUT",t,r,n||{})}head(t,r){return this.request("HEAD",t,null,r||{})}sendStream(t,r,n,i){return this.request(t,r,n,i)}async getJson(t,r={}){r[C.Accept]=this._getExistingOrDefaultHeader(r,C.Accept,he.ApplicationJson);let n=await this.get(t,r);return this._processResponse(n,this.requestOptions)}async postJson(t,r,n={}){let i=JSON.stringify(r,null,2);n[C.Accept]=this._getExistingOrDefaultHeader(n,C.Accept,he.ApplicationJson),n[C.ContentType]=this._getExistingOrDefaultHeader(n,C.ContentType,he.ApplicationJson);let s=await this.post(t,i,n);return this._processResponse(s,this.requestOptions)}async putJson(t,r,n={}){let i=JSON.stringify(r,null,2);n[C.Accept]=this._getExistingOrDefaultHeader(n,C.Accept,he.ApplicationJson),n[C.ContentType]=this._getExistingOrDefaultHeader(n,C.ContentType,he.ApplicationJson);let s=await this.put(t,i,n);return this._processResponse(s,this.requestOptions)}async patchJson(t,r,n={}){let i=JSON.stringify(r,null,2);n[C.Accept]=this._getExistingOrDefaultHeader(n,C.Accept,he.ApplicationJson),n[C.ContentType]=this._getExistingOrDefaultHeader(n,C.ContentType,he.ApplicationJson);let s=await this.patch(t,i,n);return this._processResponse(s,this.requestOptions)}async request(t,r,n,i){if(this._disposed)throw new Error("Client has already been disposed.");let s=new URL(r),o=this._prepareRequest(t,s,i),a=this._allowRetries&&So.indexOf(t)!=-1?this._maxRetries+1:1,u=0,c;for(;u0;){let d=c.message.headers.location;if(!d)break;let m=new URL(d);if(s.protocol=="https:"&&s.protocol!=m.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(await c.readBody(),m.hostname!==s.hostname)for(let A in i)A.toLowerCase()==="authorization"&&delete i[A];o=this._prepareRequest(t,m,i),c=await this.requestRaw(o,n),l--}if(Ro.indexOf(c.message.statusCode)==-1)return c;u+=1,u{let s=function(o,a){o&&i(o),n(a)};this.requestRawWithCallback(t,r,s)})}requestRawWithCallback(t,r,n){let i;typeof r=="string"&&(t.options.headers["Content-Length"]=Buffer.byteLength(r,"utf8"));let s=!1,o=(u,c)=>{s||(s=!0,n(u,c))},a=t.httpModule.request(t.options,u=>{let c=new Gt(u);o(null,c)});a.on("socket",u=>{i=u}),a.setTimeout(this._socketTimeout||3*6e4,()=>{i&&i.end(),o(new Error("Request timeout: "+t.options.path),null)}),a.on("error",function(u){o(u,null)}),r&&typeof r=="string"&&a.write(r,"utf8"),r&&typeof r!="string"?(r.on("close",function(){a.end()}),r.pipe(a)):a.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?Mt:ct;let o=s?443:80;return 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&&this.handlers.forEach(a=>{a.prepareRequest(i.options)}),i}_mergeHeaders(t){let r=n=>Object.keys(n).reduce((i,s)=>(i[s.toLowerCase()]=n[s],i),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},r(this.requestOptions.headers),r(t)):r(t||{})}_getExistingOrDefaultHeader(t,r,n){let i=o=>Object.keys(o).reduce((a,u)=>(a[u.toLowerCase()]=o[u],a),{}),s;return this.requestOptions&&this.requestOptions.headers&&(s=i(this.requestOptions.headers)[r]),t[r]||s||n}_getAgent(t){let r,n=Kr.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||ct.globalAgent.maxSockets),i){Le||(Le=Qr());let a={maxSockets:o,keepAlive:this._keepAlive,proxy:{proxyAuth:`${n.username}:${n.password}`,host:n.hostname,port:n.port}},u,c=n.protocol==="https:";s?u=c?Le.httpsOverHttps:Le.httpsOverHttp:u=c?Le.httpOverHttps:Le.httpOverHttp,r=u(a),this._proxyAgent=r}if(this._keepAlive&&!r){let a={keepAlive:this._keepAlive,maxSockets:o};r=s?new Mt.Agent(a):new ct.Agent(a),this._agent=r}return r||(r=s?Mt.globalAgent:ct.globalAgent),s&&this._ignoreSslError&&(r.options=Object.assign(r.options||{},{rejectUnauthorized:!1})),r}_performExponentialBackoff(t){t=Math.min(To,t);let r=Ao*Math.pow(2,t);return new Promise(n=>setTimeout(()=>n(),r))}static dateTimeDeserializer(t,r){if(typeof r=="string"){let n=new Date(r);if(!isNaN(n.valueOf()))return n}return r}async _processResponse(t,r){return new Promise(async(n,i)=>{let s=t.message.statusCode,o={statusCode:s,result:null,headers:{}};s==H.NotFound&&n(o);let a,u;try{u=await t.readBody(),u&&u.length>0&&(r&&r.deserializeDates?a=JSON.parse(u,lt.dateTimeDeserializer):a=JSON.parse(u),o.result=a),o.headers=t.message.headers}catch(c){}if(s>299){let c;a&&a.message?c=a.message:u&&u.length>0?c=u:c="Failed request: ("+s+")";let l=new Ve(c,s);l.result=o.result,i(l)}else n(o)})}};j.HttpClient=lt});var rn=E((Du,tn)=>{var Io=require("crypto");tn.exports=function(){return Io.randomBytes(16)}});var on=E((ju,sn)=>{var nn=[];for(var ft=0;ft<256;++ft)nn[ft]=(ft+256).toString(16).substr(1);function No(e,t){var r=t||0,n=nn;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("")}sn.exports=No});var un=E((ku,an)=>{var xo=rn(),Po=on();function Lo(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||xo)();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||Po(i)}an.exports=Lo});var fn=E(de=>{"use strict";var Co=de&&de.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Ce=de&&de.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(de,"__esModule",{value:!0});var ht=Ce(require("os")),cn=Ce(require("events")),$o=Ce(require("child_process")),qo=Ce(require("path")),Do=Ce(nt()),jo=Ce(It()),dt=process.platform==="win32",ln=class extends cn.EventEmitter{constructor(t,r,n){super();if(!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(dt)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(ht.EOL);for(;s>-1;){let o=i.substring(0,s);n(o),i=i.substring(s+ht.EOL.length),s=i.indexOf(ht.EOL)}r=i}catch(i){this._debug(`error processing line. Failed with error ${i}`)}}_getSpawnFileName(){return dt&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath}_getSpawnArgs(t){if(dt&&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(a=>a===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 Co(this,void 0,void 0,function*(){return!jo.isRooted(this.toolPath)&&(this.toolPath.includes("/")||dt&&this.toolPath.includes("\\"))&&(this.toolPath=qo.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield Do.which(this.toolPath,!0),new Promise((t,r)=>{this._debug(`exec tool: ${this.toolPath}`),this._debug("arguments:");for(let c of this.args)this._debug(` ${c}`);let n=this._cloneExecOptions(this.options);!n.silent&&n.outStream&&n.outStream.write(this._getCommandString(n)+ht.EOL);let i=new pt(n,this.toolPath);i.on("debug",c=>{this._debug(c)});let s=this._getSpawnFileName(),o=$o.spawn(s,this._getSpawnArgs(n),this._getSpawnOptions(this.options,s)),a="";o.stdout&&o.stdout.on("data",c=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(c),!n.silent&&n.outStream&&n.outStream.write(c),this._processLineBuffer(c,a,l=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(l)})});let u="";if(o.stderr&&o.stderr.on("data",c=>{i.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(c),!n.silent&&n.errStream&&n.outStream&&(n.failOnStdErr?n.errStream:n.outStream).write(c),this._processLineBuffer(c,u,l=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(l)})}),o.on("error",c=>{i.processError=c.message,i.processExited=!0,i.processClosed=!0,i.CheckComplete()}),o.on("exit",c=>{i.processExitCode=c,i.processExited=!0,this._debug(`Exit code ${c} received from tool '${this.toolPath}'`),i.CheckComplete()}),o.on("close",c=>{i.processExitCode=c,i.processExited=!0,i.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),i.CheckComplete()}),i.on("done",(c,l)=>{a.length>0&&this.emit("stdline",a),u.length>0&&this.emit("errline",u),o.removeAllListeners(),c?r(c):t(l)}),this.options.input){if(!o.stdin)throw new Error("child process missing stdin");o.stdin.end(this.options.input)}})})}};de.ToolRunner=ln;function ko(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(a)}return i.length>0&&t.push(i.trim()),t}de.argStringToArray=ko;var pt=class extends cn.EventEmitter{constructor(t,r){super();if(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=setTimeout(pt.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 dn=E(ve=>{"use strict";var Uo=ve&&ve.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Fo=ve&&ve.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(ve,"__esModule",{value:!0});var hn=Fo(fn());function Bo(e,t,r){return Uo(this,void 0,void 0,function*(){let n=hn.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 hn.ToolRunner(i,t,r).exec()})}ve.exec=Bo});var gn=E(be=>{"use strict";var pn=be&&be.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Mo=be&&be.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(be,"__esModule",{value:!0});var mn=Mo(Ie()),yn=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 pn(this,void 0,void 0,function*(){let n=1;for(;nsetTimeout(r,t*1e3))})}};be.RetryHelper=yn});var Tn=E(N=>{"use strict";var $=N&&N.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Y=N&&N.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},Go=N&&N.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(N,"__esModule",{value:!0});var R=Y(Ie()),B=Y(nt()),M=Y(require("fs")),Vo=Y(Vr()),He=Y(require("os")),z=Y(require("path")),En=Y(en()),ie=Y(jt()),Ho=Y(require("stream")),zo=Y(require("util")),wn=Go(un()),Oe=dn(),$e=require("assert"),Xo=gn(),mt=class extends Error{constructor(t){super(`Unexpected HTTP response: ${t}`);this.httpStatusCode=t,Object.setPrototypeOf(this,new.target.prototype)}};N.HTTPError=mt;var Vt=process.platform==="win32",Wo=process.platform==="darwin",Jo="actions/tool-cache";function Yo(e,t,r){return $(this,void 0,void 0,function*(){t=t||z.join(Sn(),wn.default()),yield B.mkdirP(z.dirname(t)),R.debug(`Downloading ${e}`),R.debug(`Destination ${t}`);let n=3,i=Ht("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),s=Ht("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20);return yield new Xo.RetryHelper(n,i,s).execute(()=>$(this,void 0,void 0,function*(){return yield Zo(e,t||"",r)}),a=>!(a instanceof mt&&a.httpStatusCode&&a.httpStatusCode<500&&a.httpStatusCode!==408&&a.httpStatusCode!==429))})}N.downloadTool=Yo;function Zo(e,t,r){return $(this,void 0,void 0,function*(){if(M.existsSync(t))throw new Error(`Destination file path ${t} already exists`);let n=new En.HttpClient(Jo,[],{allowRetries:!1}),i;r&&(R.debug("set auth"),i={authorization:r});let s=yield n.get(e,i);if(s.message.statusCode!==200){let l=new mt(s.message.statusCode);throw R.debug(`Failed to download from "${e}". Code(${s.message.statusCode}) Message(${s.message.statusMessage})`),l}let o=zo.promisify(Ho.pipeline),u=Ht("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>s.message)(),c=!1;try{return yield o(u,M.createWriteStream(t)),R.debug("download complete"),c=!0,t}finally{if(!c){R.debug("download failed");try{yield B.rmRF(t)}catch(l){R.debug(`Failed to delete '${t}'. ${l.message}`)}}}})}function Qo(e,t,r){return $(this,void 0,void 0,function*(){$e.ok(Vt,"extract7z() not supported on current OS"),$e.ok(e,'parameter "file" is required'),t=yield yt(t);let n=process.cwd();if(process.chdir(t),r)try{let i=R.isDebug()?"-bb1":"-bb0",s=["x",i,"-bd","-sccUTF-8",e],o={silent:!0};yield Oe.exec(`"${r}"`,s,o)}finally{process.chdir(n)}else{let i=z.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,""),a=`& '${i}' -Source '${s}' -Target '${o}'`,u=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],c={silent:!0};try{let l=yield B.which("powershell",!0);yield Oe.exec(`"${l}"`,u,c)}finally{process.chdir(n)}}return t})}N.extract7z=Qo;function Ko(e,t,r="xz"){return $(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'file' is required");t=yield yt(t),R.debug("Checking tar --version");let n="";yield Oe.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:u=>n+=u.toString(),stderr:u=>n+=u.toString()}}),R.debug(n.trim());let i=n.toUpperCase().includes("GNU TAR"),s;r instanceof Array?s=r:s=[r],R.isDebug()&&!r.includes("v")&&s.push("-v");let o=t,a=e;return Vt&&i&&(s.push("--force-local"),o=t.replace(/\\/g,"/"),a=e.replace(/\\/g,"/")),i&&s.push("--warning=no-unknown-keyword"),s.push("-C",o,"-f",a),yield Oe.exec("tar",s),t})}N.extractTar=Ko;function ea(e,t,r=[]){return $(this,void 0,void 0,function*(){$e.ok(Wo,"extractXar() not supported on current OS"),$e.ok(e,'parameter "file" is required'),t=yield yt(t);let n;r instanceof Array?n=r:n=[r],n.push("-x","-C",t,"-f",e),R.isDebug()&&n.push("-v");let i=yield B.which("xar",!0);return yield Oe.exec(`"${i}"`,la(n)),t})}N.extractXar=ea;function ta(e,t){return $(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'file' is required");return t=yield yt(t),Vt?yield ra(e,t):yield na(e,t),t})}N.extractZip=ta;function ra(e,t){return $(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}')`,s=yield B.which("powershell",!0),o=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",i];yield Oe.exec(`"${s}"`,o)})}function na(e,t){return $(this,void 0,void 0,function*(){let r=yield B.which("unzip",!0),n=[e];R.isDebug()||n.unshift("-q"),yield Oe.exec(`"${r}"`,n,{cwd:t})})}function ia(e,t,r,n){return $(this,void 0,void 0,function*(){if(r=ie.clean(r)||r,n=n||He.arch(),R.debug(`Caching tool ${t} ${r} ${n}`),R.debug(`source dir: ${e}`),!M.statSync(e).isDirectory())throw new Error("sourceDir is not a directory");let i=yield bn(t,r,n);for(let s of M.readdirSync(e)){let o=z.join(e,s);yield B.cp(o,i,{recursive:!0})}return On(t,r,n),i})}N.cacheDir=ia;function sa(e,t,r,n,i){return $(this,void 0,void 0,function*(){if(n=ie.clean(n)||n,i=i||He.arch(),R.debug(`Caching tool ${r} ${n} ${i}`),R.debug(`source file: ${e}`),!M.statSync(e).isFile())throw new Error("sourceFile is not a file");let s=yield bn(r,n,i),o=z.join(s,t);return R.debug(`destination file ${o}`),yield B.cp(e,o),On(r,n,i),s})}N.cacheFile=sa;function oa(e,t,r){if(!e)throw new Error("toolName parameter is required");if(!t)throw new Error("versionSpec parameter is required");if(r=r||He.arch(),!Rn(t)){let i=vn(e,r);t=ca(i,t)}let n="";if(t){t=ie.clean(t)||"";let i=z.join(gt(),e,t,r);R.debug(`checking cache: ${i}`),M.existsSync(i)&&M.existsSync(`${i}.complete`)?(R.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):R.debug("not found")}return n}N.find=oa;function vn(e,t){let r=[];t=t||He.arch();let n=z.join(gt(),e);if(M.existsSync(n)){let i=M.readdirSync(n);for(let s of i)if(Rn(s)){let o=z.join(n,s,t||"");M.existsSync(o)&&M.existsSync(`${o}.complete`)&&r.push(s)}}return r}N.findAllVersions=vn;function aa(e,t,r,n="master"){return $(this,void 0,void 0,function*(){let i=[],s=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,o=new En.HttpClient("tool-cache"),a={};r&&(R.debug("set auth"),a.authorization=r);let u=yield o.getJson(s,a);if(!u.result)return i;let c="";for(let d of u.result.tree)if(d.path==="versions-manifest.json"){c=d.url;break}a.accept="application/vnd.github.VERSION.raw";let l=yield(yield o.get(c,a)).readBody();if(l){l=l.replace(/^\uFEFF/,"");try{i=JSON.parse(l)}catch(d){R.debug("Invalid json")}}return i})}N.getManifestFromRepo=aa;function ua(e,t,r,n=He.arch()){return $(this,void 0,void 0,function*(){return yield Vo._findMatch(e,t,r,n)})}N.findFromManifest=ua;function yt(e){return $(this,void 0,void 0,function*(){return e||(e=z.join(Sn(),wn.default())),yield B.mkdirP(e),e})}function bn(e,t,r){return $(this,void 0,void 0,function*(){let n=z.join(gt(),e,ie.clean(t)||t,r||"");R.debug(`destination ${n}`);let i=`${n}.complete`;return yield B.rmRF(n),yield B.rmRF(i),yield B.mkdirP(n),n})}function On(e,t,r){let i=`${z.join(gt(),e,ie.clean(t)||t,r||"")}.complete`;M.writeFileSync(i,""),R.debug("finished caching tool")}function Rn(e){let t=ie.clean(e)||"";R.debug(`isExplicit: ${t}`);let r=ie.valid(t)!=null;return R.debug(`explicit? ${r}`),r}function ca(e,t){let r="";R.debug(`evaluating ${e.length} versions`),e=e.sort((n,i)=>ie.gt(n,i)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(ie.satisfies(i,t)){r=i;break}}return r?R.debug(`matched: ${r}`):R.debug("match not found"),r}function gt(){let e=process.env.RUNNER_TOOL_CACHE||"";return $e.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e}function Sn(){let e=process.env.RUNNER_TEMP||"";return $e.ok(e,"Expected RUNNER_TEMP to be defined"),e}function Ht(e,t){let r=global[e];return r!==void 0?r:t}function la(e){return Array.from(new Set(e))}});var ze=E(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});function fa(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&"version"in process?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}zt.getUserAgent=fa});var In=E((Vu,_n)=>{_n.exports=An;function An(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce(function(i,s){return An.bind(null,e,s,i,n)},r)():Promise.resolve().then(function(){return e.registry[t]?e.registry[t].reduce(function(i,s){return s.hook.bind(null,i,n)},r)():r(n)})}});var xn=E((Hu,Nn)=>{Nn.exports=ha;function ha(e,t,r,n){var i=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=function(s,o){return Promise.resolve().then(i.bind(null,o)).then(s.bind(null,o))}),t==="after"&&(n=function(s,o){var a;return Promise.resolve().then(s.bind(null,o)).then(function(u){return a=u,i(a,o)}).then(function(){return a})}),t==="error"&&(n=function(s,o){return Promise.resolve().then(s.bind(null,o)).catch(function(a){return i(a,o)})}),e.registry[r].push({hook:n,orig:i})}});var Ln=E((zu,Pn)=>{Pn.exports=da;function da(e,t,r){if(!!e.registry[t]){var n=e.registry[t].map(function(i){return i.orig}).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}}});var Un=E((Xu,Xe)=>{var Cn=In(),pa=xn(),ma=Ln(),$n=Function.bind,qn=$n.bind($n);function Dn(e,t,r){var n=qn(ma,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(i){var s=r?[t,i,r]:[t,i];e[i]=e.api[i]=qn(pa,null).apply(null,s)})}function ya(){var e="h",t={registry:{}},r=Cn.bind(null,t,e);return Dn(r,t,e),r}function jn(){var e={registry:{}},t=Cn.bind(null,e);return Dn(t,e),t}var kn=!1;function qe(){return kn||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),kn=!0),jn()}qe.Singular=ya.bind();qe.Collection=jn.bind();Xe.exports=qe;Xe.exports.Hook=qe;Xe.exports.Singular=qe.Singular;Xe.exports.Collection=qe.Collection});var Wt=E(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});function Fn(e){return Object.prototype.toString.call(e)==="[object Object]"}function ga(e){var t,r;return Fn(e)===!1?!1:(t=e.constructor,t===void 0?!0:(r=t.prototype,!(Fn(r)===!1||r.hasOwnProperty("isPrototypeOf")===!1)))}Xt.isPlainObject=ga});var Xn=E(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});var Ea=Wt(),wa=ze();function va(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function Bn(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{Ea.isPlainObject(t[n])?n in e?r[n]=Bn(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Mn(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Jt(e,t,r){if(typeof t=="string"){let[i,s]=t.split(" ");r=Object.assign(s?{method:i,url:s}:{url:i},r)}else r=Object.assign({},t);r.headers=va(r.headers),Mn(r),Mn(r.headers);let n=Bn(e||{},r);return e&&e.mediaType.previews.length&&(n.mediaType.previews=e.mediaType.previews.filter(i=>!n.mediaType.previews.includes(i)).concat(n.mediaType.previews)),n.mediaType.previews=n.mediaType.previews.map(i=>i.replace(/-preview/,"")),n}function ba(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(i=>i==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${i}=${encodeURIComponent(t[i])}`).join("&")}var Oa=/\{[^}]+\}/g;function Ra(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function Sa(e){let t=e.match(Oa);return t?t.map(Ra).reduce((r,n)=>r.concat(n),[]):[]}function Gn(e,t){return Object.keys(e).filter(r=>!t.includes(r)).reduce((r,n)=>(r[n]=e[n],r),{})}function Vn(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function De(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function We(e,t,r){return t=e==="+"||e==="#"?Vn(t):De(t),r?De(r)+"="+t:t}function je(e){return e!=null}function Yt(e){return e===";"||e==="&"||e==="?"}function Ta(e,t,r,n){var i=e[r],s=[];if(je(i)&&i!=="")if(typeof i=="string"||typeof i=="number"||typeof i=="boolean")i=i.toString(),n&&n!=="*"&&(i=i.substring(0,parseInt(n,10))),s.push(We(t,i,Yt(t)?r:""));else if(n==="*")Array.isArray(i)?i.filter(je).forEach(function(o){s.push(We(t,o,Yt(t)?r:""))}):Object.keys(i).forEach(function(o){je(i[o])&&s.push(We(t,i[o],o))});else{let o=[];Array.isArray(i)?i.filter(je).forEach(function(a){o.push(We(t,a))}):Object.keys(i).forEach(function(a){je(i[a])&&(o.push(De(a)),o.push(We(t,i[a].toString())))}),Yt(t)?s.push(De(r)+"="+o.join(",")):o.length!==0&&s.push(o.join(","))}else t===";"?je(i)&&s.push(De(r)):i===""&&(t==="&"||t==="?")?s.push(De(r)+"="):i===""&&s.push("");return s}function Aa(e){return{expand:_a.bind(null,e)}}function _a(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,i,s){if(i){let a="",u=[];if(r.indexOf(i.charAt(0))!==-1&&(a=i.charAt(0),i=i.substr(1)),i.split(/,/g).forEach(function(c){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(c);u.push(Ta(t,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var o=",";return a==="?"?o="&":a!=="#"&&(o=a),(u.length!==0?a:"")+u.join(o)}else return u.join(",")}else return Vn(s)})}function Hn(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),i,s=Gn(e,["method","baseUrl","url","headers","request","mediaType"]),o=Sa(r);r=Aa(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>o.includes(l)).concat("baseUrl"),u=Gn(s,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),e.mediaType.previews.length)){let l=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(d=>{let m=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${d}-preview${m}`}).join(",")}return["GET","HEAD"].includes(t)?r=ba(r,u):"data"in u?i=u.data:Object.keys(u).length?i=u:n["content-length"]=0,!n["content-type"]&&typeof i!="undefined"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof i=="undefined"&&(i=""),Object.assign({method:t,url:r,headers:n},typeof i!="undefined"?{body:i}:null,e.request?{request:e.request}:null)}function Ia(e,t,r){return Hn(Jt(e,t,r))}function zn(e,t){let r=Jt(e,t),n=Ia.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:zn.bind(null,r),merge:Jt.bind(null,r),parse:Hn})}var Na="6.0.11",xa=`octokit-endpoint.js/${Na} ${wa.getUserAgent()}`,Pa={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":xa},mediaType:{format:"",previews:[]}},La=zn(null,Pa);Zt.endpoint=La});var ii=E((Z,ni)=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});function Je(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var X=Je(require("stream")),Wn=Je(require("http")),Qt=Je(require("url")),Ca=Je(require("https")),Re=Je(require("zlib")),$a=X.Readable,se=Symbol("buffer"),Kt=Symbol("type"),Se=class{constructor(){this[Kt]="";let t=arguments[0],r=arguments[1],n=[],i=0;if(t){let o=t,a=Number(o.length);for(let u=0;u1&&arguments[1]!==void 0?arguments[1]:{},n=r.size;let i=n===void 0?0:n;var s=r.timeout;let o=s===void 0?0:s;e==null?e=null:Yn(e)?e=Buffer.from(e.toString()):Ye(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof X||(e=Buffer.from(String(e)))),this[oe]={body:e,disturbed:!1,error:null},this.size=i,this.timeout=o,e instanceof X&&e.on("error",function(a){let u=a.name==="AbortError"?a:new P(`Invalid response body while trying to fetch ${t.url}: ${a.message}`,"system",a);t[oe].error=u})}x.prototype={get body(){return this[oe].body},get bodyUsed(){return this[oe].disturbed},arrayBuffer(){return ke.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return ke.call(this).then(function(t){return Object.assign(new Se([],{type:e.toLowerCase()}),{[se]:t})})},json(){var e=this;return ke.call(this).then(function(t){try{return JSON.parse(t.toString())}catch(r){return x.Promise.reject(new P(`invalid json response body at ${e.url} reason: ${r.message}`,"invalid-json"))}})},text(){return ke.call(this).then(function(e){return e.toString()})},buffer(){return ke.call(this)},textConverted(){var e=this;return ke.call(this).then(function(t){return qa(t,e.headers)})}};Object.defineProperties(x.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});x.mixIn=function(e){for(let t of Object.getOwnPropertyNames(x.prototype))if(!(t in e)){let r=Object.getOwnPropertyDescriptor(x.prototype,t);Object.defineProperty(e,t,r)}};function ke(){var e=this;if(this[oe].disturbed)return x.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[oe].disturbed=!0,this[oe].error)return x.Promise.reject(this[oe].error);let t=this.body;if(t===null)return x.Promise.resolve(Buffer.alloc(0));if(Ye(t)&&(t=t.stream()),Buffer.isBuffer(t))return x.Promise.resolve(t);if(!(t instanceof X))return x.Promise.resolve(Buffer.alloc(0));let r=[],n=0,i=!1;return new x.Promise(function(s,o){let a;e.timeout&&(a=setTimeout(function(){i=!0,o(new P(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),t.on("error",function(u){u.name==="AbortError"?(i=!0,o(u)):o(new P(`Invalid response body while trying to fetch ${e.url}: ${u.message}`,"system",u))}),t.on("data",function(u){if(!(i||u===null)){if(e.size&&n+u.length>e.size){i=!0,o(new P(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}n+=u.length,r.push(u)}}),t.on("end",function(){if(!i){clearTimeout(a);try{s(Buffer.concat(r,n))}catch(u){o(new P(`Could not create Buffer from response body for ${e.url}: ${u.message}`,"system",u))}}})})}function qa(e,t){if(typeof er!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=t.get("content-type"),n="utf-8",i,s;return r&&(i=/charset=([^;]*)/i.exec(r)),s=e.slice(0,1024).toString(),!i&&s&&(i=/0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[I]=Object.create(null),t instanceof k){let r=t.raw(),n=Object.keys(r);for(let i of n)for(let s of r[i])this.append(i,s);return}if(t!=null)if(typeof t=="object"){let r=t[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let i of t){if(typeof i!="object"||typeof i[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");n.push(Array.from(i))}for(let i of n){if(i.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(i[0],i[1])}}else for(let n of Object.keys(t)){let i=t[n];this.append(n,i)}}else throw new TypeError("Provided initializer must be an object")}get(t){t=`${t}`,Ze(t);let r=Ue(this[I],t);return r===void 0?null:this[I][r].join(", ")}forEach(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,n=rr(this),i=0;for(;i1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[I]).sort().map(t==="key"?function(n){return n.toLowerCase()}:t==="value"?function(n){return e[I][n].join(", ")}:function(n){return[n.toLowerCase(),e[I][n].join(", ")]})}var nr=Symbol("internal");function ir(e,t){let r=Object.create(sr);return r[nr]={target:e,kind:t,index:0},r}var sr=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==sr)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[nr];let t=e.target,r=e.kind,n=e.index,i=rr(t,r),s=i.length;return n>=s?{value:void 0,done:!0}:(this[nr].index=n+1,{value:i[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(sr,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function ja(e){let t=Object.assign({__proto__:null},e[I]),r=Ue(e[I],"Host");return r!==void 0&&(t[r]=t[r][0]),t}function ka(e){let t=new k;for(let r of Object.keys(e))if(!ei.test(r))if(Array.isArray(e[r]))for(let n of e[r])tr.test(n)||(t[I][r]===void 0?t[I][r]=[n]:t[I][r].push(n));else tr.test(e[r])||(t[I][r]=[e[r]]);return t}var pe=Symbol("Response internals"),Ua=Wn.STATUS_CODES,G=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};x.call(this,t,r);let n=r.status||200,i=new k(r.headers);if(t!=null&&!i.has("Content-Type")){let s=Qn(t);s&&i.append("Content-Type",s)}this[pe]={url:r.url,status:n,statusText:r.statusText||Ua[n],headers:i,counter:r.counter}}get url(){return this[pe].url||""}get status(){return this[pe].status}get ok(){return this[pe].status>=200&&this[pe].status<300}get redirected(){return this[pe].counter>0}get statusText(){return this[pe].statusText}get headers(){return this[pe].headers}clone(){return new G(Zn(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};x.mixIn(G.prototype);Object.defineProperties(G.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(G.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var ae=Symbol("Request internals"),or=Qt.parse,Fa=Qt.format,Ba="destroy"in X.Readable.prototype;function Et(e){return typeof e=="object"&&typeof e[ae]=="object"}function Ma(e){let t=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")}var ue=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n;Et(t)?n=or(t.url):(t&&t.href?n=or(t.href):n=or(`${t}`),t={});let i=r.method||t.method||"GET";if(i=i.toUpperCase(),(r.body!=null||Et(t)&&t.body!==null)&&(i==="GET"||i==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=r.body!=null?r.body:Et(t)&&t.body!==null?Zn(t):null;x.call(this,s,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});let o=new k(r.headers||t.headers||{});if(s!=null&&!o.has("Content-Type")){let u=Qn(s);u&&o.append("Content-Type",u)}let a=Et(t)?t.signal:null;if("signal"in r&&(a=r.signal),a!=null&&!Ma(a))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[ae]={method:i,redirect:r.redirect||t.redirect||"follow",headers:o,parsedURL:n,signal:a},this.follow=r.follow!==void 0?r.follow:t.follow!==void 0?t.follow:20,this.compress=r.compress!==void 0?r.compress:t.compress!==void 0?t.compress:!0,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[ae].method}get url(){return Fa(this[ae].parsedURL)}get headers(){return this[ae].headers}get redirect(){return this[ae].redirect}get signal(){return this[ae].signal}clone(){return new ue(this)}};x.mixIn(ue.prototype);Object.defineProperty(ue.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(ue.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function Ga(e){let t=e[ae].parsedURL,r=new k(e[ae].headers);if(r.has("Accept")||r.set("Accept","*/*"),!t.protocol||!t.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(t.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof X.Readable&&!Ba)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let n=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(n="0"),e.body!=null){let s=Kn(e);typeof s=="number"&&(n=String(s))}n&&r.set("Content-Length",n),r.has("User-Agent")||r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip,deflate");let i=e.agent;return typeof i=="function"&&(i=i(t)),!r.has("Connection")&&!i&&r.set("Connection","close"),Object.assign({},t,{method:e.method,headers:ja(r),agent:i})}function Qe(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}Qe.prototype=Object.create(Error.prototype);Qe.prototype.constructor=Qe;Qe.prototype.name="AbortError";var ri=X.PassThrough,Va=Qt.resolve;function me(e,t){if(!me.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return x.Promise=me.Promise,new me.Promise(function(r,n){let i=new ue(e,t),s=Ga(i),o=(s.protocol==="https:"?Ca:Wn).request,a=i.signal,u=null,c=function(){let le=new Qe("The user aborted a request.");n(le),i.body&&i.body instanceof X.Readable&&i.body.destroy(le),!(!u||!u.body)&&u.body.emit("error",le)};if(a&&a.aborted){c();return}let l=function(){c(),A()},d=o(s),m;a&&a.addEventListener("abort",l);function A(){d.abort(),a&&a.removeEventListener("abort",l),clearTimeout(m)}i.timeout&&d.once("socket",function(S){m=setTimeout(function(){n(new P(`network timeout at: ${i.url}`,"request-timeout")),A()},i.timeout)}),d.on("error",function(S){n(new P(`request to ${i.url} failed, reason: ${S.message}`,"system",S)),A()}),d.on("response",function(S){clearTimeout(m);let le=ka(S.headers);if(me.isRedirect(S.statusCode)){let St=le.get("Location"),Ae=St===null?null:Va(i.url,St);switch(i.redirect){case"error":n(new P(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),A();return;case"manual":if(Ae!==null)try{le.set("Location",Ae)}catch(Li){n(Li)}break;case"follow":if(Ae===null)break;if(i.counter>=i.follow){n(new P(`maximum redirect reached at: ${i.url}`,"max-redirect")),A();return}let et={headers:new k(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:i.body,signal:i.signal,timeout:i.timeout,size:i.size};if(S.statusCode!==303&&i.body&&Kn(i)===null){n(new P("Cannot follow redirect with body being a readable stream","unsupported-redirect")),A();return}(S.statusCode===303||(S.statusCode===301||S.statusCode===302)&&i.method==="POST")&&(et.method="GET",et.body=void 0,et.headers.delete("content-length")),r(me(new ue(Ae,et))),A();return}}S.once("end",function(){a&&a.removeEventListener("abort",l)});let D=S.pipe(new ri),Be={url:i.url,status:S.statusCode,statusText:S.statusMessage,headers:le,size:i.size,timeout:i.timeout,counter:i.counter},Te=le.get("Content-Encoding");if(!i.compress||i.method==="HEAD"||Te===null||S.statusCode===204||S.statusCode===304){u=new G(D,Be),r(u);return}let Pi={flush:Re.Z_SYNC_FLUSH,finishFlush:Re.Z_SYNC_FLUSH};if(Te=="gzip"||Te=="x-gzip"){D=D.pipe(Re.createGunzip(Pi)),u=new G(D,Be),r(u);return}if(Te=="deflate"||Te=="x-deflate"){S.pipe(new ri).once("data",function(Ae){(Ae[0]&15)==8?D=D.pipe(Re.createInflate()):D=D.pipe(Re.createInflateRaw()),u=new G(D,Be),r(u)});return}if(Te=="br"&&typeof Re.createBrotliDecompress=="function"){D=D.pipe(Re.createBrotliDecompress()),u=new G(D,Be),r(u);return}u=new G(D,Be),r(u)}),Da(d,i)})}me.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};me.Promise=global.Promise;ni.exports=Z=me;Object.defineProperty(Z,"__esModule",{value:!0});Z.default=Z;Z.Headers=k;Z.Request=ue;Z.Response=G;Z.FetchError=P});var oi=E(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});var si=class extends Error{constructor(t){super(t);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};ar.Deprecation=si});var ci=E((Zu,ui)=>{ui.exports=ai;function ai(e,t){if(e&&t)return ai(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){r[n]=e[n]}),r;function r(){for(var n=new Array(arguments.length),i=0;i{var li=ci();ur.exports=li(wt);ur.exports.strict=li(fi);wt.proto=wt(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return wt(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return fi(this)},configurable:!0})});function wt(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function fi(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}});var pi=E(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});function Ha(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var za=oi(),Xa=Ha(hi()),Wa=Xa(e=>console.warn(e)),di=class extends Error{constructor(t,r,n){super(t);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=r,Object.defineProperty(this,"code",{get(){return Wa(new za.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),r}}),this.headers=n.headers||{};let i=Object.assign({},n.request);n.request.headers.authorization&&(i.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),i.url=i.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=i}};cr.RequestError=di});var hr=E(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});function Ja(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Ya=Xn(),Za=ze(),Qa=Wt(),Ka=Ja(ii()),Ke=pi(),eu="5.4.14";function tu(e){return e.arrayBuffer()}function mi(e){(Qa.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let t={},r,n;return(e.request&&e.request.fetch||Ka)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(s=>{n=s.url,r=s.status;for(let a of s.headers)t[a[0]]=a[1];if(r===204||r===205)return;if(e.method==="HEAD"){if(r<400)return;throw new Ke.RequestError(s.statusText,r,{headers:t,request:e})}if(r===304)throw new Ke.RequestError("Not modified",r,{headers:t,request:e});if(r>=400)return s.text().then(a=>{let u=new Ke.RequestError(a,r,{headers:t,request:e});try{let c=JSON.parse(u.message);Object.assign(u,c);let l=c.errors;u.message=u.message+": "+l.map(JSON.stringify).join(", ")}catch(c){}throw u});let o=s.headers.get("content-type");return/application\/json/.test(o)?s.json():!o||/^text\/|charset=utf-8$/.test(o)?s.text():tu(s)}).then(s=>({status:r,url:n,headers:t,data:s})).catch(s=>{throw s instanceof Ke.RequestError?s:new Ke.RequestError(s.message,500,{headers:t,request:e})})}function lr(e,t){let r=e.defaults(t);return Object.assign(function(i,s){let o=r.merge(i,s);if(!o.request||!o.request.hook)return mi(r.parse(o));let a=(u,c)=>mi(r.parse(r.merge(u,c)));return Object.assign(a,{endpoint:r,defaults:lr.bind(null,r)}),o.request.hook(a,o)},{endpoint:r,defaults:lr.bind(null,r)})}var ru=lr(Ya.endpoint,{headers:{"user-agent":`octokit-request.js/${eu} ${Za.getUserAgent()}`}});fr.request=ru});var wi=E(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});var yi=hr(),nu=ze(),iu="4.6.1",gi=class extends Error{constructor(t,r){let n=r.data.errors[0].message;super(n);Object.assign(this,r.data),Object.assign(this,{headers:r.headers}),this.name="GraphqlError",this.request=t,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},su=["method","baseUrl","url","headers","request","query","mediaType"],ou=["query","method","url"],Ei=/\/api\/v3\/?$/;function au(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let o in r)if(!!ou.includes(o))return Promise.reject(new Error(`[@octokit/graphql] "${o}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,i=Object.keys(n).reduce((o,a)=>su.includes(a)?(o[a]=n[a],o):(o.variables||(o.variables={}),o.variables[a]=n[a],o),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Ei.test(s)&&(i.url=s.replace(Ei,"/api/graphql")),e(i).then(o=>{if(o.data.errors){let a={};for(let u of Object.keys(o.headers))a[u]=o.headers[u];throw new gi(i,{headers:a,data:o.data})}return o.data.data})}function dr(e,t){let r=e.defaults(t);return Object.assign((i,s)=>au(r,i,s),{defaults:dr.bind(null,r),endpoint:yi.request.endpoint})}var uu=dr(yi.request,{headers:{"user-agent":`octokit-graphql.js/${iu} ${nu.getUserAgent()}`},method:"POST",url:"/graphql"});function cu(e){return dr(e,{method:"POST",url:"/graphql"})}vt.graphql=uu;vt.withCustomRequest=cu});var vi=E(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});async function lu(e){let t=e.split(/\./).length===3?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:t}}function fu(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function hu(e,t,r,n){let i=t.endpoint.merge(r,n);return i.headers.authorization=fu(e),t(i)}var du=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(lu.bind(null,t),{hook:hu.bind(null,t)})};pr.createTokenAuth=du});var Ri=E(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});var pu=ze(),mu=Un(),bi=hr(),yu=wi(),gu=vi();function Eu(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,s;for(s=0;s=0)&&(r[i]=e[i]);return r}function wu(e,t){if(e==null)return{};var r=Eu(e,t),n,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&(!Object.prototype.propertyIsEnumerable.call(e,n)||(r[n]=e[n]))}return r}var Oi="3.3.1",bt=class{constructor(t={}){let r=new mu.Collection,n={baseUrl:bi.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=[t.userAgent,`octokit-core.js/${Oi} ${pu.getUserAgent()}`].filter(Boolean).join(" "),t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=bi.request.defaults(n),this.graphql=yu.withCustomRequest(this.request).defaults(n),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},t.log),this.hook=r,t.authStrategy){let{authStrategy:s}=t,o=wu(t,["authStrategy"]),a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:o},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=gu.createTokenAuth(t.auth);r.wrap("request",s.hook),this.auth=s}this.constructor.plugins.forEach(s=>{Object.assign(this,s(this,t))})}static defaults(t){return class extends this{constructor(...n){let i=n[0]||{};if(typeof t=="function"){super(t(i));return}super(Object.assign({},t,i,i.userAgent&&t.userAgent?{userAgent:`${i.userAgent} ${t.userAgent}`}:null))}}}static plugin(...t){var r;let n=this.plugins;return r=class extends this{},r.plugins=n.concat(t.filter(s=>!n.includes(s))),r}};bt.VERSION=Oi;bt.plugins=[];mr.Octokit=bt});var Ai=J(require("child_process")),_i=J(require("os")),Ii=J(require("path")),q=J(Ie()),Ni=J(nt());var ce=J(require("os")),Ot=J(require("path")),W=J(Ie()),Q=J(Tn()),Si=J(Ri());function Fe(e){return e.message!==void 0}var Rt="v";async function Ti(e){let t=Q.find("buf",e,ce.arch());if(t!=="")return W.info(`Found in cache @ ${t}`),t;W.info("Resolving the download URL for the current platform...");let r=await vu(e);if(Fe(r))return r;let n="";if(W.info(`Downloading buf version "${e}" from ${r}`),r.endsWith(".tar.gz")){let i=await Q.downloadTool(r);W.info(`Successfully downloaded buf version "${e}" from ${r}`),W.info("Extracting buf...");let s=await Q.extractTar(i);W.info(`Successfully extracted buf to ${s}`),W.info("Adding buf to the cache..."),n=await Q.cacheDir(Ot.join(s,"buf"),"buf",e,ce.arch())}else{let i=await Q.downloadTool(r,"C:\\Users\\runneradmin\\buf-download\\buf.exe");W.info(`Successfully downloaded buf version "${e}" from ${r} to ${i}`),W.info("Adding buf to the cache..."),n=await Q.cacheDir(Ot.dirname(i),"buf",e,ce.arch())}return W.info(`Successfully cached buf to ${n}`),n}async function vu(e){let t="";switch(ce.arch()){case"x64":t="x86_64";break;case"arm64":t="arm64";break;default:return{message:`The "${ce.arch()}" architecture is not supported with a Buf release.`}}let r="";switch(ce.platform()){case"linux":r="Linux";break;case"darwin":r="Darwin";break;case"win32":r="Windows";break;default:return{message:`The "${ce.platform()}" platform is not supported with a Buf release.`}}let n="";r==="Windows"?n=`buf-${r}-${t}.exe`:n=`buf-${r}-${t}.tar.gz`;let i=new Si.Octokit,{data:s}=await i.request("GET /repos/{owner}/{repo}/releases",{owner:"bufbuild",repo:"buf"});switch(e){case"latest":for(let o of s[0].assets)if(n===o.name)return o.browser_download_url;break;default:for(let o of s)if(bu(o.tag_name,e)){for(let a of o.assets)if(n===a.name)return a.browser_download_url}}return{message:`Unable to find Buf version "${e}" for platform "${r}" and architecture "${t}".`}}function bu(e,t){return e.indexOf(Rt)===0&&(e=e.slice(Rt.length)),t.indexOf(Rt)===0&&(t=t.slice(Rt.length)),e===t}async function xi(){try{let e=await Ou();e!==null&&Fe(e)&&q.setFailed(e.message)}catch(e){if(Fe(e)){q.setFailed(e.message);return}q.setFailed("Internal error")}}async function Ou(){let e=q.getInput("version");e===""&&(e="latest"),q.info(`Setting up buf version "${e}"`);let t=await Ti(e);if(Fe(t))return t;q.info("Adding buf binary to PATH");let r="";return _i.platform()==="win32"?q.addPath(t):q.addPath(Ii.join(t,"bin")),r=await Ni.which("buf",!0),r===""?{message:"buf was not found on PATH"}:(q.info(`Successfully setup buf version ${e}`),q.info(Ai.default.execSync(`${r} --version`).toString()),null)}xi(); +`,d.message,d.stack);var m=new Error("tunneling socket could not be established, cause="+d.message);m.code="ECONNRESET",t.request.emit("error",m),n.removeSocket(i)}};ne.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 Wr(e,t){var r=this;ne.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),s=Bt({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),o=po.connect(0,s);r.sockets[r.sockets.indexOf(n)]=o,t(o)})}function Jr(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function Bt(e){for(var t=1,r=arguments.length;t{Zr.exports=Yr()});var en=E(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});var ct=require("http"),Mt=require("https"),Kr=zr(),Le,H;(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"})(H=j.HttpCodes||(j.HttpCodes={}));var C;(function(e){e.Accept="accept",e.ContentType="content-type"})(C=j.Headers||(j.Headers={}));var he;(function(e){e.ApplicationJson="application/json"})(he=j.MediaTypes||(j.MediaTypes={}));function bo(e){let t=Kr.getProxyUrl(new URL(e));return t?t.href:""}j.getProxyUrl=bo;var Oo=[H.MovedPermanently,H.ResourceMoved,H.SeeOther,H.TemporaryRedirect,H.PermanentRedirect],Ro=[H.BadGateway,H.ServiceUnavailable,H.GatewayTimeout],So=["OPTIONS","GET","DELETE","HEAD"],To=10,Ao=5,Ve=class extends Error{constructor(t,r){super(t);this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,Ve.prototype)}};j.HttpClientError=Ve;var Gt=class{constructor(t){this.message=t}readBody(){return new Promise(async(t,r)=>{let n=Buffer.alloc(0);this.message.on("data",i=>{n=Buffer.concat([n,i])}),this.message.on("end",()=>{t(n.toString())})})}};j.HttpClientResponse=Gt;function _o(e){return new URL(e).protocol==="https:"}j.isHttps=_o;var lt=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 this.request("OPTIONS",t,null,r||{})}get(t,r){return this.request("GET",t,null,r||{})}del(t,r){return this.request("DELETE",t,null,r||{})}post(t,r,n){return this.request("POST",t,r,n||{})}patch(t,r,n){return this.request("PATCH",t,r,n||{})}put(t,r,n){return this.request("PUT",t,r,n||{})}head(t,r){return this.request("HEAD",t,null,r||{})}sendStream(t,r,n,i){return this.request(t,r,n,i)}async getJson(t,r={}){r[C.Accept]=this._getExistingOrDefaultHeader(r,C.Accept,he.ApplicationJson);let n=await this.get(t,r);return this._processResponse(n,this.requestOptions)}async postJson(t,r,n={}){let i=JSON.stringify(r,null,2);n[C.Accept]=this._getExistingOrDefaultHeader(n,C.Accept,he.ApplicationJson),n[C.ContentType]=this._getExistingOrDefaultHeader(n,C.ContentType,he.ApplicationJson);let s=await this.post(t,i,n);return this._processResponse(s,this.requestOptions)}async putJson(t,r,n={}){let i=JSON.stringify(r,null,2);n[C.Accept]=this._getExistingOrDefaultHeader(n,C.Accept,he.ApplicationJson),n[C.ContentType]=this._getExistingOrDefaultHeader(n,C.ContentType,he.ApplicationJson);let s=await this.put(t,i,n);return this._processResponse(s,this.requestOptions)}async patchJson(t,r,n={}){let i=JSON.stringify(r,null,2);n[C.Accept]=this._getExistingOrDefaultHeader(n,C.Accept,he.ApplicationJson),n[C.ContentType]=this._getExistingOrDefaultHeader(n,C.ContentType,he.ApplicationJson);let s=await this.patch(t,i,n);return this._processResponse(s,this.requestOptions)}async request(t,r,n,i){if(this._disposed)throw new Error("Client has already been disposed.");let s=new URL(r),o=this._prepareRequest(t,s,i),a=this._allowRetries&&So.indexOf(t)!=-1?this._maxRetries+1:1,u=0,c;for(;u0;){let d=c.message.headers.location;if(!d)break;let m=new URL(d);if(s.protocol=="https:"&&s.protocol!=m.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(await c.readBody(),m.hostname!==s.hostname)for(let A in i)A.toLowerCase()==="authorization"&&delete i[A];o=this._prepareRequest(t,m,i),c=await this.requestRaw(o,n),l--}if(Ro.indexOf(c.message.statusCode)==-1)return c;u+=1,u{let s=function(o,a){o&&i(o),n(a)};this.requestRawWithCallback(t,r,s)})}requestRawWithCallback(t,r,n){let i;typeof r=="string"&&(t.options.headers["Content-Length"]=Buffer.byteLength(r,"utf8"));let s=!1,o=(u,c)=>{s||(s=!0,n(u,c))},a=t.httpModule.request(t.options,u=>{let c=new Gt(u);o(null,c)});a.on("socket",u=>{i=u}),a.setTimeout(this._socketTimeout||3*6e4,()=>{i&&i.end(),o(new Error("Request timeout: "+t.options.path),null)}),a.on("error",function(u){o(u,null)}),r&&typeof r=="string"&&a.write(r,"utf8"),r&&typeof r!="string"?(r.on("close",function(){a.end()}),r.pipe(a)):a.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?Mt:ct;let o=s?443:80;return 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&&this.handlers.forEach(a=>{a.prepareRequest(i.options)}),i}_mergeHeaders(t){let r=n=>Object.keys(n).reduce((i,s)=>(i[s.toLowerCase()]=n[s],i),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},r(this.requestOptions.headers),r(t)):r(t||{})}_getExistingOrDefaultHeader(t,r,n){let i=o=>Object.keys(o).reduce((a,u)=>(a[u.toLowerCase()]=o[u],a),{}),s;return this.requestOptions&&this.requestOptions.headers&&(s=i(this.requestOptions.headers)[r]),t[r]||s||n}_getAgent(t){let r,n=Kr.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||ct.globalAgent.maxSockets),i){Le||(Le=Qr());let a={maxSockets:o,keepAlive:this._keepAlive,proxy:{proxyAuth:`${n.username}:${n.password}`,host:n.hostname,port:n.port}},u,c=n.protocol==="https:";s?u=c?Le.httpsOverHttps:Le.httpsOverHttp:u=c?Le.httpOverHttps:Le.httpOverHttp,r=u(a),this._proxyAgent=r}if(this._keepAlive&&!r){let a={keepAlive:this._keepAlive,maxSockets:o};r=s?new Mt.Agent(a):new ct.Agent(a),this._agent=r}return r||(r=s?Mt.globalAgent:ct.globalAgent),s&&this._ignoreSslError&&(r.options=Object.assign(r.options||{},{rejectUnauthorized:!1})),r}_performExponentialBackoff(t){t=Math.min(To,t);let r=Ao*Math.pow(2,t);return new Promise(n=>setTimeout(()=>n(),r))}static dateTimeDeserializer(t,r){if(typeof r=="string"){let n=new Date(r);if(!isNaN(n.valueOf()))return n}return r}async _processResponse(t,r){return new Promise(async(n,i)=>{let s=t.message.statusCode,o={statusCode:s,result:null,headers:{}};s==H.NotFound&&n(o);let a,u;try{u=await t.readBody(),u&&u.length>0&&(r&&r.deserializeDates?a=JSON.parse(u,lt.dateTimeDeserializer):a=JSON.parse(u),o.result=a),o.headers=t.message.headers}catch(c){}if(s>299){let c;a&&a.message?c=a.message:u&&u.length>0?c=u:c="Failed request: ("+s+")";let l=new Ve(c,s);l.result=o.result,i(l)}else n(o)})}};j.HttpClient=lt});var rn=E((Du,tn)=>{var Io=require("crypto");tn.exports=function(){return Io.randomBytes(16)}});var on=E((ju,nn)=>{var sn=[];for(var ft=0;ft<256;++ft)sn[ft]=(ft+256).toString(16).substr(1);function No(e,t){var r=t||0,n=sn;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("")}nn.exports=No});var un=E((ku,an)=>{var xo=rn(),Po=on();function Lo(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||xo)();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||Po(i)}an.exports=Lo});var fn=E(de=>{"use strict";var Co=de&&de.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Ce=de&&de.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(de,"__esModule",{value:!0});var ht=Ce(require("os")),cn=Ce(require("events")),$o=Ce(require("child_process")),qo=Ce(require("path")),Do=Ce(nt()),jo=Ce(It()),dt=process.platform==="win32",ln=class extends cn.EventEmitter{constructor(t,r,n){super();if(!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(dt)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(ht.EOL);for(;s>-1;){let o=i.substring(0,s);n(o),i=i.substring(s+ht.EOL.length),s=i.indexOf(ht.EOL)}r=i}catch(i){this._debug(`error processing line. Failed with error ${i}`)}}_getSpawnFileName(){return dt&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath}_getSpawnArgs(t){if(dt&&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(a=>a===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 Co(this,void 0,void 0,function*(){return!jo.isRooted(this.toolPath)&&(this.toolPath.includes("/")||dt&&this.toolPath.includes("\\"))&&(this.toolPath=qo.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield Do.which(this.toolPath,!0),new Promise((t,r)=>{this._debug(`exec tool: ${this.toolPath}`),this._debug("arguments:");for(let c of this.args)this._debug(` ${c}`);let n=this._cloneExecOptions(this.options);!n.silent&&n.outStream&&n.outStream.write(this._getCommandString(n)+ht.EOL);let i=new pt(n,this.toolPath);i.on("debug",c=>{this._debug(c)});let s=this._getSpawnFileName(),o=$o.spawn(s,this._getSpawnArgs(n),this._getSpawnOptions(this.options,s)),a="";o.stdout&&o.stdout.on("data",c=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(c),!n.silent&&n.outStream&&n.outStream.write(c),this._processLineBuffer(c,a,l=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(l)})});let u="";if(o.stderr&&o.stderr.on("data",c=>{i.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(c),!n.silent&&n.errStream&&n.outStream&&(n.failOnStdErr?n.errStream:n.outStream).write(c),this._processLineBuffer(c,u,l=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(l)})}),o.on("error",c=>{i.processError=c.message,i.processExited=!0,i.processClosed=!0,i.CheckComplete()}),o.on("exit",c=>{i.processExitCode=c,i.processExited=!0,this._debug(`Exit code ${c} received from tool '${this.toolPath}'`),i.CheckComplete()}),o.on("close",c=>{i.processExitCode=c,i.processExited=!0,i.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),i.CheckComplete()}),i.on("done",(c,l)=>{a.length>0&&this.emit("stdline",a),u.length>0&&this.emit("errline",u),o.removeAllListeners(),c?r(c):t(l)}),this.options.input){if(!o.stdin)throw new Error("child process missing stdin");o.stdin.end(this.options.input)}})})}};de.ToolRunner=ln;function ko(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(a)}return i.length>0&&t.push(i.trim()),t}de.argStringToArray=ko;var pt=class extends cn.EventEmitter{constructor(t,r){super();if(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=setTimeout(pt.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 dn=E(ve=>{"use strict";var Uo=ve&&ve.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Fo=ve&&ve.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(ve,"__esModule",{value:!0});var hn=Fo(fn());function Bo(e,t,r){return Uo(this,void 0,void 0,function*(){let n=hn.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 hn.ToolRunner(i,t,r).exec()})}ve.exec=Bo});var gn=E(be=>{"use strict";var pn=be&&be.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Mo=be&&be.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(be,"__esModule",{value:!0});var mn=Mo(Ie()),yn=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 pn(this,void 0,void 0,function*(){let n=1;for(;nsetTimeout(r,t*1e3))})}};be.RetryHelper=yn});var Tn=E(N=>{"use strict";var $=N&&N.__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 a(l){try{c(n.next(l))}catch(d){o(d)}}function u(l){try{c(n.throw(l))}catch(d){o(d)}}function c(l){l.done?s(l.value):i(l.value).then(a,u)}c((n=n.apply(e,t||[])).next())})},Y=N&&N.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},Go=N&&N.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(N,"__esModule",{value:!0});var R=Y(Ie()),B=Y(nt()),M=Y(require("fs")),Vo=Y(Vr()),He=Y(require("os")),z=Y(require("path")),En=Y(en()),ie=Y(jt()),Ho=Y(require("stream")),zo=Y(require("util")),wn=Go(un()),Oe=dn(),$e=require("assert"),Xo=gn(),mt=class extends Error{constructor(t){super(`Unexpected HTTP response: ${t}`);this.httpStatusCode=t,Object.setPrototypeOf(this,new.target.prototype)}};N.HTTPError=mt;var Vt=process.platform==="win32",Wo=process.platform==="darwin",Jo="actions/tool-cache";function Zo(e,t,r){return $(this,void 0,void 0,function*(){t=t||z.join(vn(),wn.default()),yield B.mkdirP(z.dirname(t)),R.debug(`Downloading ${e}`),R.debug(`Destination ${t}`);let n=3,i=Ht("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),s=Ht("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20);return yield new Xo.RetryHelper(n,i,s).execute(()=>$(this,void 0,void 0,function*(){return yield Yo(e,t||"",r)}),a=>!(a instanceof mt&&a.httpStatusCode&&a.httpStatusCode<500&&a.httpStatusCode!==408&&a.httpStatusCode!==429))})}N.downloadTool=Zo;function Yo(e,t,r){return $(this,void 0,void 0,function*(){if(M.existsSync(t))throw new Error(`Destination file path ${t} already exists`);let n=new En.HttpClient(Jo,[],{allowRetries:!1}),i;r&&(R.debug("set auth"),i={authorization:r});let s=yield n.get(e,i);if(s.message.statusCode!==200){let l=new mt(s.message.statusCode);throw R.debug(`Failed to download from "${e}". Code(${s.message.statusCode}) Message(${s.message.statusMessage})`),l}let o=zo.promisify(Ho.pipeline),u=Ht("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>s.message)(),c=!1;try{return yield o(u,M.createWriteStream(t)),R.debug("download complete"),c=!0,t}finally{if(!c){R.debug("download failed");try{yield B.rmRF(t)}catch(l){R.debug(`Failed to delete '${t}'. ${l.message}`)}}}})}function Qo(e,t,r){return $(this,void 0,void 0,function*(){$e.ok(Vt,"extract7z() not supported on current OS"),$e.ok(e,'parameter "file" is required'),t=yield yt(t);let n=process.cwd();if(process.chdir(t),r)try{let i=R.isDebug()?"-bb1":"-bb0",s=["x",i,"-bd","-sccUTF-8",e],o={silent:!0};yield Oe.exec(`"${r}"`,s,o)}finally{process.chdir(n)}else{let i=z.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,""),a=`& '${i}' -Source '${s}' -Target '${o}'`,u=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],c={silent:!0};try{let l=yield B.which("powershell",!0);yield Oe.exec(`"${l}"`,u,c)}finally{process.chdir(n)}}return t})}N.extract7z=Qo;function Ko(e,t,r="xz"){return $(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'file' is required");t=yield yt(t),R.debug("Checking tar --version");let n="";yield Oe.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:u=>n+=u.toString(),stderr:u=>n+=u.toString()}}),R.debug(n.trim());let i=n.toUpperCase().includes("GNU TAR"),s;r instanceof Array?s=r:s=[r],R.isDebug()&&!r.includes("v")&&s.push("-v");let o=t,a=e;return Vt&&i&&(s.push("--force-local"),o=t.replace(/\\/g,"/"),a=e.replace(/\\/g,"/")),i&&s.push("--warning=no-unknown-keyword"),s.push("-C",o,"-f",a),yield Oe.exec("tar",s),t})}N.extractTar=Ko;function ta(e,t,r=[]){return $(this,void 0,void 0,function*(){$e.ok(Wo,"extractXar() not supported on current OS"),$e.ok(e,'parameter "file" is required'),t=yield yt(t);let n;r instanceof Array?n=r:n=[r],n.push("-x","-C",t,"-f",e),R.isDebug()&&n.push("-v");let i=yield B.which("xar",!0);return yield Oe.exec(`"${i}"`,ea(n)),t})}N.extractXar=ta;function ia(e,t){return $(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'file' is required");return t=yield yt(t),Vt?yield ra(e,t):yield na(e,t),t})}N.extractZip=ia;function ra(e,t){return $(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}')`,s=yield B.which("powershell",!0),o=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",i];yield Oe.exec(`"${s}"`,o)})}function na(e,t){return $(this,void 0,void 0,function*(){let r=yield B.which("unzip",!0),n=[e];R.isDebug()||n.unshift("-q"),yield Oe.exec(`"${r}"`,n,{cwd:t})})}function sa(e,t,r,n){return $(this,void 0,void 0,function*(){if(r=ie.clean(r)||r,n=n||He.arch(),R.debug(`Caching tool ${t} ${r} ${n}`),R.debug(`source dir: ${e}`),!M.statSync(e).isDirectory())throw new Error("sourceDir is not a directory");let i=yield bn(t,r,n);for(let s of M.readdirSync(e)){let o=z.join(e,s);yield B.cp(o,i,{recursive:!0})}return On(t,r,n),i})}N.cacheDir=sa;function oa(e,t,r,n,i){return $(this,void 0,void 0,function*(){if(n=ie.clean(n)||n,i=i||He.arch(),R.debug(`Caching tool ${r} ${n} ${i}`),R.debug(`source file: ${e}`),!M.statSync(e).isFile())throw new Error("sourceFile is not a file");let s=yield bn(r,n,i),o=z.join(s,t);return R.debug(`destination file ${o}`),yield B.cp(e,o),On(r,n,i),s})}N.cacheFile=oa;function ua(e,t,r){if(!e)throw new Error("toolName parameter is required");if(!t)throw new Error("versionSpec parameter is required");if(r=r||He.arch(),!Sn(t)){let i=Rn(e,r);t=aa(i,t)}let n="";if(t){t=ie.clean(t)||"";let i=z.join(gt(),e,t,r);R.debug(`checking cache: ${i}`),M.existsSync(i)&&M.existsSync(`${i}.complete`)?(R.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):R.debug("not found")}return n}N.find=ua;function Rn(e,t){let r=[];t=t||He.arch();let n=z.join(gt(),e);if(M.existsSync(n)){let i=M.readdirSync(n);for(let s of i)if(Sn(s)){let o=z.join(n,s,t||"");M.existsSync(o)&&M.existsSync(`${o}.complete`)&&r.push(s)}}return r}N.findAllVersions=Rn;function ca(e,t,r,n="master"){return $(this,void 0,void 0,function*(){let i=[],s=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,o=new En.HttpClient("tool-cache"),a={};r&&(R.debug("set auth"),a.authorization=r);let u=yield o.getJson(s,a);if(!u.result)return i;let c="";for(let d of u.result.tree)if(d.path==="versions-manifest.json"){c=d.url;break}a.accept="application/vnd.github.VERSION.raw";let l=yield(yield o.get(c,a)).readBody();if(l){l=l.replace(/^\uFEFF/,"");try{i=JSON.parse(l)}catch(d){R.debug("Invalid json")}}return i})}N.getManifestFromRepo=ca;function la(e,t,r,n=He.arch()){return $(this,void 0,void 0,function*(){return yield Vo._findMatch(e,t,r,n)})}N.findFromManifest=la;function yt(e){return $(this,void 0,void 0,function*(){return e||(e=z.join(vn(),wn.default())),yield B.mkdirP(e),e})}function bn(e,t,r){return $(this,void 0,void 0,function*(){let n=z.join(gt(),e,ie.clean(t)||t,r||"");R.debug(`destination ${n}`);let i=`${n}.complete`;return yield B.rmRF(n),yield B.rmRF(i),yield B.mkdirP(n),n})}function On(e,t,r){let i=`${z.join(gt(),e,ie.clean(t)||t,r||"")}.complete`;M.writeFileSync(i,""),R.debug("finished caching tool")}function Sn(e){let t=ie.clean(e)||"";R.debug(`isExplicit: ${t}`);let r=ie.valid(t)!=null;return R.debug(`explicit? ${r}`),r}function aa(e,t){let r="";R.debug(`evaluating ${e.length} versions`),e=e.sort((n,i)=>ie.gt(n,i)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(ie.satisfies(i,t)){r=i;break}}return r?R.debug(`matched: ${r}`):R.debug("match not found"),r}function gt(){let e=process.env.RUNNER_TOOL_CACHE||"";return $e.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e}function vn(){let e=process.env.RUNNER_TEMP||"";return $e.ok(e,"Expected RUNNER_TEMP to be defined"),e}function Ht(e,t){let r=global[e];return r!==void 0?r:t}function ea(e){return Array.from(new Set(e))}});var ze=E(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});function fa(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&"version"in process?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}zt.getUserAgent=fa});var In=E((Vu,An)=>{An.exports=_n;function _n(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce(function(i,s){return _n.bind(null,e,s,i,n)},r)():Promise.resolve().then(function(){return e.registry[t]?e.registry[t].reduce(function(i,s){return s.hook.bind(null,i,n)},r)():r(n)})}});var xn=E((Hu,Nn)=>{Nn.exports=ha;function ha(e,t,r,n){var i=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=function(s,o){return Promise.resolve().then(i.bind(null,o)).then(s.bind(null,o))}),t==="after"&&(n=function(s,o){var a;return Promise.resolve().then(s.bind(null,o)).then(function(u){return a=u,i(a,o)}).then(function(){return a})}),t==="error"&&(n=function(s,o){return Promise.resolve().then(s.bind(null,o)).catch(function(a){return i(a,o)})}),e.registry[r].push({hook:n,orig:i})}});var Ln=E((zu,Pn)=>{Pn.exports=da;function da(e,t,r){if(!!e.registry[t]){var n=e.registry[t].map(function(i){return i.orig}).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}}});var Un=E((Xu,Xe)=>{var Cn=In(),pa=xn(),ma=Ln(),$n=Function.bind,qn=$n.bind($n);function Dn(e,t,r){var n=qn(ma,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(i){var s=r?[t,i,r]:[t,i];e[i]=e.api[i]=qn(pa,null).apply(null,s)})}function ya(){var e="h",t={registry:{}},r=Cn.bind(null,t,e);return Dn(r,t,e),r}function jn(){var e={registry:{}},t=Cn.bind(null,e);return Dn(t,e),t}var kn=!1;function qe(){return kn||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),kn=!0),jn()}qe.Singular=ya.bind();qe.Collection=jn.bind();Xe.exports=qe;Xe.exports.Hook=qe;Xe.exports.Singular=qe.Singular;Xe.exports.Collection=qe.Collection});var Wt=E(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});function Fn(e){return Object.prototype.toString.call(e)==="[object Object]"}function ga(e){var t,r;return Fn(e)===!1?!1:(t=e.constructor,t===void 0?!0:(r=t.prototype,!(Fn(r)===!1||r.hasOwnProperty("isPrototypeOf")===!1)))}Xt.isPlainObject=ga});var Xn=E(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});var Ea=Wt(),wa=ze();function va(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function Bn(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{Ea.isPlainObject(t[n])?n in e?r[n]=Bn(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Mn(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Yt(e,t,r){if(typeof t=="string"){let[i,s]=t.split(" ");r=Object.assign(s?{method:i,url:s}:{url:i},r)}else r=Object.assign({},t);r.headers=va(r.headers),Mn(r),Mn(r.headers);let n=Bn(e||{},r);return e&&e.mediaType.previews.length&&(n.mediaType.previews=e.mediaType.previews.filter(i=>!n.mediaType.previews.includes(i)).concat(n.mediaType.previews)),n.mediaType.previews=n.mediaType.previews.map(i=>i.replace(/-preview/,"")),n}function ba(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(i=>i==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${i}=${encodeURIComponent(t[i])}`).join("&")}var Oa=/\{[^}]+\}/g;function Ra(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function Sa(e){let t=e.match(Oa);return t?t.map(Ra).reduce((r,n)=>r.concat(n),[]):[]}function Gn(e,t){return Object.keys(e).filter(r=>!t.includes(r)).reduce((r,n)=>(r[n]=e[n],r),{})}function Vn(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function De(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function We(e,t,r){return t=e==="+"||e==="#"?Vn(t):De(t),r?De(r)+"="+t:t}function je(e){return e!=null}function Zt(e){return e===";"||e==="&"||e==="?"}function Ta(e,t,r,n){var i=e[r],s=[];if(je(i)&&i!=="")if(typeof i=="string"||typeof i=="number"||typeof i=="boolean")i=i.toString(),n&&n!=="*"&&(i=i.substring(0,parseInt(n,10))),s.push(We(t,i,Zt(t)?r:""));else if(n==="*")Array.isArray(i)?i.filter(je).forEach(function(o){s.push(We(t,o,Zt(t)?r:""))}):Object.keys(i).forEach(function(o){je(i[o])&&s.push(We(t,i[o],o))});else{let o=[];Array.isArray(i)?i.filter(je).forEach(function(a){o.push(We(t,a))}):Object.keys(i).forEach(function(a){je(i[a])&&(o.push(De(a)),o.push(We(t,i[a].toString())))}),Zt(t)?s.push(De(r)+"="+o.join(",")):o.length!==0&&s.push(o.join(","))}else t===";"?je(i)&&s.push(De(r)):i===""&&(t==="&"||t==="?")?s.push(De(r)+"="):i===""&&s.push("");return s}function _a(e){return{expand:Aa.bind(null,e)}}function Aa(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,i,s){if(i){let a="",u=[];if(r.indexOf(i.charAt(0))!==-1&&(a=i.charAt(0),i=i.substr(1)),i.split(/,/g).forEach(function(c){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(c);u.push(Ta(t,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var o=",";return a==="?"?o="&":a!=="#"&&(o=a),(u.length!==0?a:"")+u.join(o)}else return u.join(",")}else return Vn(s)})}function Hn(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),i,s=Gn(e,["method","baseUrl","url","headers","request","mediaType"]),o=Sa(r);r=_a(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>o.includes(l)).concat("baseUrl"),u=Gn(s,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),e.mediaType.previews.length)){let l=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(d=>{let m=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${d}-preview${m}`}).join(",")}return["GET","HEAD"].includes(t)?r=ba(r,u):"data"in u?i=u.data:Object.keys(u).length?i=u:n["content-length"]=0,!n["content-type"]&&typeof i!="undefined"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof i=="undefined"&&(i=""),Object.assign({method:t,url:r,headers:n},typeof i!="undefined"?{body:i}:null,e.request?{request:e.request}:null)}function Ia(e,t,r){return Hn(Yt(e,t,r))}function zn(e,t){let r=Yt(e,t),n=Ia.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:zn.bind(null,r),merge:Yt.bind(null,r),parse:Hn})}var Na="6.0.11",xa=`octokit-endpoint.js/${Na} ${wa.getUserAgent()}`,Pa={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":xa},mediaType:{format:"",previews:[]}},La=zn(null,Pa);Jt.endpoint=La});var ii=E((Z,Wn)=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});function Je(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var X=Je(require("stream")),Jn=Je(require("http")),Qt=Je(require("url")),Ca=Je(require("https")),Re=Je(require("zlib")),$a=X.Readable,se=Symbol("buffer"),Kt=Symbol("type"),Se=class{constructor(){this[Kt]="";let t=arguments[0],r=arguments[1],n=[],i=0;if(t){let o=t,a=Number(o.length);for(let u=0;u1&&arguments[1]!==void 0?arguments[1]:{},n=r.size;let i=n===void 0?0:n;var s=r.timeout;let o=s===void 0?0:s;e==null?e=null:Zn(e)?e=Buffer.from(e.toString()):Ye(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof X||(e=Buffer.from(String(e)))),this[oe]={body:e,disturbed:!1,error:null},this.size=i,this.timeout=o,e instanceof X&&e.on("error",function(a){let u=a.name==="AbortError"?a:new P(`Invalid response body while trying to fetch ${t.url}: ${a.message}`,"system",a);t[oe].error=u})}x.prototype={get body(){return this[oe].body},get bodyUsed(){return this[oe].disturbed},arrayBuffer(){return ke.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return ke.call(this).then(function(t){return Object.assign(new Se([],{type:e.toLowerCase()}),{[se]:t})})},json(){var e=this;return ke.call(this).then(function(t){try{return JSON.parse(t.toString())}catch(r){return x.Promise.reject(new P(`invalid json response body at ${e.url} reason: ${r.message}`,"invalid-json"))}})},text(){return ke.call(this).then(function(e){return e.toString()})},buffer(){return ke.call(this)},textConverted(){var e=this;return ke.call(this).then(function(t){return qa(t,e.headers)})}};Object.defineProperties(x.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});x.mixIn=function(e){for(let t of Object.getOwnPropertyNames(x.prototype))if(!(t in e)){let r=Object.getOwnPropertyDescriptor(x.prototype,t);Object.defineProperty(e,t,r)}};function ke(){var e=this;if(this[oe].disturbed)return x.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[oe].disturbed=!0,this[oe].error)return x.Promise.reject(this[oe].error);let t=this.body;if(t===null)return x.Promise.resolve(Buffer.alloc(0));if(Ye(t)&&(t=t.stream()),Buffer.isBuffer(t))return x.Promise.resolve(t);if(!(t instanceof X))return x.Promise.resolve(Buffer.alloc(0));let r=[],n=0,i=!1;return new x.Promise(function(s,o){let a;e.timeout&&(a=setTimeout(function(){i=!0,o(new P(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),t.on("error",function(u){u.name==="AbortError"?(i=!0,o(u)):o(new P(`Invalid response body while trying to fetch ${e.url}: ${u.message}`,"system",u))}),t.on("data",function(u){if(!(i||u===null)){if(e.size&&n+u.length>e.size){i=!0,o(new P(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}n+=u.length,r.push(u)}}),t.on("end",function(){if(!i){clearTimeout(a);try{s(Buffer.concat(r,n))}catch(u){o(new P(`Could not create Buffer from response body for ${e.url}: ${u.message}`,"system",u))}}})})}function qa(e,t){if(typeof er!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=t.get("content-type"),n="utf-8",i,s;return r&&(i=/charset=([^;]*)/i.exec(r)),s=e.slice(0,1024).toString(),!i&&s&&(i=/0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[I]=Object.create(null),t instanceof k){let r=t.raw(),n=Object.keys(r);for(let i of n)for(let s of r[i])this.append(i,s);return}if(t!=null)if(typeof t=="object"){let r=t[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let i of t){if(typeof i!="object"||typeof i[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");n.push(Array.from(i))}for(let i of n){if(i.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(i[0],i[1])}}else for(let n of Object.keys(t)){let i=t[n];this.append(n,i)}}else throw new TypeError("Provided initializer must be an object")}get(t){t=`${t}`,Ze(t);let r=Ue(this[I],t);return r===void 0?null:this[I][r].join(", ")}forEach(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,n=rr(this),i=0;for(;i1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[I]).sort().map(t==="key"?function(n){return n.toLowerCase()}:t==="value"?function(n){return e[I][n].join(", ")}:function(n){return[n.toLowerCase(),e[I][n].join(", ")]})}var ir=Symbol("internal");function nr(e,t){let r=Object.create(sr);return r[ir]={target:e,kind:t,index:0},r}var sr=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==sr)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[ir];let t=e.target,r=e.kind,n=e.index,i=rr(t,r),s=i.length;return n>=s?{value:void 0,done:!0}:(this[ir].index=n+1,{value:i[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(sr,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function ja(e){let t=Object.assign({__proto__:null},e[I]),r=Ue(e[I],"Host");return r!==void 0&&(t[r]=t[r][0]),t}function ka(e){let t=new k;for(let r of Object.keys(e))if(!ti.test(r))if(Array.isArray(e[r]))for(let n of e[r])tr.test(n)||(t[I][r]===void 0?t[I][r]=[n]:t[I][r].push(n));else tr.test(e[r])||(t[I][r]=[e[r]]);return t}var pe=Symbol("Response internals"),Ua=Jn.STATUS_CODES,G=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};x.call(this,t,r);let n=r.status||200,i=new k(r.headers);if(t!=null&&!i.has("Content-Type")){let s=Kn(t);s&&i.append("Content-Type",s)}this[pe]={url:r.url,status:n,statusText:r.statusText||Ua[n],headers:i,counter:r.counter}}get url(){return this[pe].url||""}get status(){return this[pe].status}get ok(){return this[pe].status>=200&&this[pe].status<300}get redirected(){return this[pe].counter>0}get statusText(){return this[pe].statusText}get headers(){return this[pe].headers}clone(){return new G(Qn(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};x.mixIn(G.prototype);Object.defineProperties(G.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(G.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var ae=Symbol("Request internals"),or=Qt.parse,Fa=Qt.format,Ba="destroy"in X.Readable.prototype;function Et(e){return typeof e=="object"&&typeof e[ae]=="object"}function Ma(e){let t=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")}var ue=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n;Et(t)?n=or(t.url):(t&&t.href?n=or(t.href):n=or(`${t}`),t={});let i=r.method||t.method||"GET";if(i=i.toUpperCase(),(r.body!=null||Et(t)&&t.body!==null)&&(i==="GET"||i==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=r.body!=null?r.body:Et(t)&&t.body!==null?Qn(t):null;x.call(this,s,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});let o=new k(r.headers||t.headers||{});if(s!=null&&!o.has("Content-Type")){let u=Kn(s);u&&o.append("Content-Type",u)}let a=Et(t)?t.signal:null;if("signal"in r&&(a=r.signal),a!=null&&!Ma(a))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[ae]={method:i,redirect:r.redirect||t.redirect||"follow",headers:o,parsedURL:n,signal:a},this.follow=r.follow!==void 0?r.follow:t.follow!==void 0?t.follow:20,this.compress=r.compress!==void 0?r.compress:t.compress!==void 0?t.compress:!0,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[ae].method}get url(){return Fa(this[ae].parsedURL)}get headers(){return this[ae].headers}get redirect(){return this[ae].redirect}get signal(){return this[ae].signal}clone(){return new ue(this)}};x.mixIn(ue.prototype);Object.defineProperty(ue.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(ue.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function Ga(e){let t=e[ae].parsedURL,r=new k(e[ae].headers);if(r.has("Accept")||r.set("Accept","*/*"),!t.protocol||!t.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(t.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof X.Readable&&!Ba)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let n=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(n="0"),e.body!=null){let s=ei(e);typeof s=="number"&&(n=String(s))}n&&r.set("Content-Length",n),r.has("User-Agent")||r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip,deflate");let i=e.agent;return typeof i=="function"&&(i=i(t)),!r.has("Connection")&&!i&&r.set("Connection","close"),Object.assign({},t,{method:e.method,headers:ja(r),agent:i})}function Qe(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}Qe.prototype=Object.create(Error.prototype);Qe.prototype.constructor=Qe;Qe.prototype.name="AbortError";var ni=X.PassThrough,Va=Qt.resolve;function me(e,t){if(!me.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return x.Promise=me.Promise,new me.Promise(function(r,n){let i=new ue(e,t),s=Ga(i),o=(s.protocol==="https:"?Ca:Jn).request,a=i.signal,u=null,c=function(){let le=new Qe("The user aborted a request.");n(le),i.body&&i.body instanceof X.Readable&&i.body.destroy(le),!(!u||!u.body)&&u.body.emit("error",le)};if(a&&a.aborted){c();return}let l=function(){c(),A()},d=o(s),m;a&&a.addEventListener("abort",l);function A(){d.abort(),a&&a.removeEventListener("abort",l),clearTimeout(m)}i.timeout&&d.once("socket",function(S){m=setTimeout(function(){n(new P(`network timeout at: ${i.url}`,"request-timeout")),A()},i.timeout)}),d.on("error",function(S){n(new P(`request to ${i.url} failed, reason: ${S.message}`,"system",S)),A()}),d.on("response",function(S){clearTimeout(m);let le=ka(S.headers);if(me.isRedirect(S.statusCode)){let St=le.get("Location"),Ae=St===null?null:Va(i.url,St);switch(i.redirect){case"error":n(new P(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),A();return;case"manual":if(Ae!==null)try{le.set("Location",Ae)}catch(Li){n(Li)}break;case"follow":if(Ae===null)break;if(i.counter>=i.follow){n(new P(`maximum redirect reached at: ${i.url}`,"max-redirect")),A();return}let et={headers:new k(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:i.body,signal:i.signal,timeout:i.timeout,size:i.size};if(S.statusCode!==303&&i.body&&ei(i)===null){n(new P("Cannot follow redirect with body being a readable stream","unsupported-redirect")),A();return}(S.statusCode===303||(S.statusCode===301||S.statusCode===302)&&i.method==="POST")&&(et.method="GET",et.body=void 0,et.headers.delete("content-length")),r(me(new ue(Ae,et))),A();return}}S.once("end",function(){a&&a.removeEventListener("abort",l)});let D=S.pipe(new ni),Be={url:i.url,status:S.statusCode,statusText:S.statusMessage,headers:le,size:i.size,timeout:i.timeout,counter:i.counter},Te=le.get("Content-Encoding");if(!i.compress||i.method==="HEAD"||Te===null||S.statusCode===204||S.statusCode===304){u=new G(D,Be),r(u);return}let Pi={flush:Re.Z_SYNC_FLUSH,finishFlush:Re.Z_SYNC_FLUSH};if(Te=="gzip"||Te=="x-gzip"){D=D.pipe(Re.createGunzip(Pi)),u=new G(D,Be),r(u);return}if(Te=="deflate"||Te=="x-deflate"){S.pipe(new ni).once("data",function(Ae){(Ae[0]&15)==8?D=D.pipe(Re.createInflate()):D=D.pipe(Re.createInflateRaw()),u=new G(D,Be),r(u)});return}if(Te=="br"&&typeof Re.createBrotliDecompress=="function"){D=D.pipe(Re.createBrotliDecompress()),u=new G(D,Be),r(u);return}u=new G(D,Be),r(u)}),Da(d,i)})}me.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};me.Promise=global.Promise;Wn.exports=Z=me;Object.defineProperty(Z,"__esModule",{value:!0});Z.default=Z;Z.Headers=k;Z.Request=ue;Z.Response=G;Z.FetchError=P});var oi=E(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});var si=class extends Error{constructor(t){super(t);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};ar.Deprecation=si});var ci=E((Zu,ai)=>{ai.exports=ui;function ui(e,t){if(e&&t)return ui(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){r[n]=e[n]}),r;function r(){for(var n=new Array(arguments.length),i=0;i{var li=ci();ur.exports=li(wt);ur.exports.strict=li(fi);wt.proto=wt(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return wt(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return fi(this)},configurable:!0})});function wt(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function fi(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}});var pi=E(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});function Ha(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var za=oi(),Xa=Ha(hi()),Wa=Xa(e=>console.warn(e)),di=class extends Error{constructor(t,r,n){super(t);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=r,Object.defineProperty(this,"code",{get(){return Wa(new za.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),r}}),this.headers=n.headers||{};let i=Object.assign({},n.request);n.request.headers.authorization&&(i.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),i.url=i.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=i}};cr.RequestError=di});var hr=E(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});function Ja(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Ya=Xn(),Za=ze(),Qa=Wt(),Ka=Ja(ii()),Ke=pi(),eu="5.4.14";function tu(e){return e.arrayBuffer()}function mi(e){(Qa.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let t={},r,n;return(e.request&&e.request.fetch||Ka)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(s=>{n=s.url,r=s.status;for(let a of s.headers)t[a[0]]=a[1];if(r===204||r===205)return;if(e.method==="HEAD"){if(r<400)return;throw new Ke.RequestError(s.statusText,r,{headers:t,request:e})}if(r===304)throw new Ke.RequestError("Not modified",r,{headers:t,request:e});if(r>=400)return s.text().then(a=>{let u=new Ke.RequestError(a,r,{headers:t,request:e});try{let c=JSON.parse(u.message);Object.assign(u,c);let l=c.errors;u.message=u.message+": "+l.map(JSON.stringify).join(", ")}catch(c){}throw u});let o=s.headers.get("content-type");return/application\/json/.test(o)?s.json():!o||/^text\/|charset=utf-8$/.test(o)?s.text():tu(s)}).then(s=>({status:r,url:n,headers:t,data:s})).catch(s=>{throw s instanceof Ke.RequestError?s:new Ke.RequestError(s.message,500,{headers:t,request:e})})}function fr(e,t){let r=e.defaults(t);return Object.assign(function(i,s){let o=r.merge(i,s);if(!o.request||!o.request.hook)return mi(r.parse(o));let a=(u,c)=>mi(r.parse(r.merge(u,c)));return Object.assign(a,{endpoint:r,defaults:fr.bind(null,r)}),o.request.hook(a,o)},{endpoint:r,defaults:fr.bind(null,r)})}var ru=fr(Ya.endpoint,{headers:{"user-agent":`octokit-request.js/${eu} ${Za.getUserAgent()}`}});lr.request=ru});var wi=E(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});var yi=hr(),nu=ze(),iu="4.6.1",gi=class extends Error{constructor(t,r){let n=r.data.errors[0].message;super(n);Object.assign(this,r.data),Object.assign(this,{headers:r.headers}),this.name="GraphqlError",this.request=t,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},su=["method","baseUrl","url","headers","request","query","mediaType"],ou=["query","method","url"],Ei=/\/api\/v3\/?$/;function au(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let o in r)if(!!ou.includes(o))return Promise.reject(new Error(`[@octokit/graphql] "${o}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,i=Object.keys(n).reduce((o,a)=>su.includes(a)?(o[a]=n[a],o):(o.variables||(o.variables={}),o.variables[a]=n[a],o),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Ei.test(s)&&(i.url=s.replace(Ei,"/api/graphql")),e(i).then(o=>{if(o.data.errors){let a={};for(let u of Object.keys(o.headers))a[u]=o.headers[u];throw new gi(i,{headers:a,data:o.data})}return o.data.data})}function dr(e,t){let r=e.defaults(t);return Object.assign((i,s)=>au(r,i,s),{defaults:dr.bind(null,r),endpoint:yi.request.endpoint})}var uu=dr(yi.request,{headers:{"user-agent":`octokit-graphql.js/${iu} ${nu.getUserAgent()}`},method:"POST",url:"/graphql"});function cu(e){return dr(e,{method:"POST",url:"/graphql"})}vt.graphql=uu;vt.withCustomRequest=cu});var vi=E(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});async function lu(e){let t=e.split(/\./).length===3?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:t}}function fu(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function hu(e,t,r,n){let i=t.endpoint.merge(r,n);return i.headers.authorization=fu(e),t(i)}var du=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(lu.bind(null,t),{hook:hu.bind(null,t)})};pr.createTokenAuth=du});var Ri=E(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});var pu=ze(),mu=Un(),bi=hr(),yu=wi(),gu=vi();function Eu(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,s;for(s=0;s=0)&&(r[i]=e[i]);return r}function wu(e,t){if(e==null)return{};var r=Eu(e,t),n,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&(!Object.prototype.propertyIsEnumerable.call(e,n)||(r[n]=e[n]))}return r}var Oi="3.3.1",bt=class{constructor(t={}){let r=new mu.Collection,n={baseUrl:bi.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=[t.userAgent,`octokit-core.js/${Oi} ${pu.getUserAgent()}`].filter(Boolean).join(" "),t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=bi.request.defaults(n),this.graphql=yu.withCustomRequest(this.request).defaults(n),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},t.log),this.hook=r,t.authStrategy){let{authStrategy:s}=t,o=wu(t,["authStrategy"]),a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:o},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=gu.createTokenAuth(t.auth);r.wrap("request",s.hook),this.auth=s}this.constructor.plugins.forEach(s=>{Object.assign(this,s(this,t))})}static defaults(t){return class extends this{constructor(...n){let i=n[0]||{};if(typeof t=="function"){super(t(i));return}super(Object.assign({},t,i,i.userAgent&&t.userAgent?{userAgent:`${i.userAgent} ${t.userAgent}`}:null))}}}static plugin(...t){var r;let n=this.plugins;return r=class extends this{},r.plugins=n.concat(t.filter(s=>!n.includes(s))),r}};bt.VERSION=Oi;bt.plugins=[];mr.Octokit=bt});var Ai=J(require("child_process")),_i=J(require("os")),Ii=J(require("path")),q=J(Ie()),Ni=J(nt());var ce=J(require("os")),Ot=J(require("path")),W=J(Ie()),Q=J(Tn()),Si=J(Ri());function Fe(e){return e.message!==void 0}var Rt="v";async function Ti(e){let t=Q.find("buf",e,ce.arch());if(t!=="")return W.info(`Found in cache @ ${t}`),t;W.info("Resolving the download URL for the current platform...");let r=await vu(e);if(Fe(r))return r;let n="";if(W.info(`Downloading buf version "${e}" from ${r}`),r.endsWith(".tar.gz")){let i=await Q.downloadTool(r);W.info(`Successfully downloaded buf version "${e}" from ${r}`),W.info("Extracting buf...");let s=await Q.extractTar(i);W.info(`Successfully extracted buf to ${s}`),W.info("Adding buf to the cache..."),n=await Q.cacheDir(Ot.join(s,"buf"),"buf",e,ce.arch())}else{let i=await Q.downloadTool(r,"C:\\Users\\runneradmin\\buf-download\\buf.exe");W.info(`Successfully downloaded buf version "${e}" from ${r} to ${i}`),W.info("Adding buf to the cache..."),n=await Q.cacheDir(Ot.dirname(i),"buf",e,ce.arch())}return W.info(`Successfully cached buf to ${n}`),n}async function vu(e){let t="";switch(ce.arch()){case"x64":t="x86_64";break;case"arm64":t="arm64";break;default:return{message:`The "${ce.arch()}" architecture is not supported with a Buf release.`}}let r="";switch(ce.platform()){case"linux":r="Linux";break;case"darwin":r="Darwin";break;case"win32":r="Windows";break;default:return{message:`The "${ce.platform()}" platform is not supported with a Buf release.`}}let n="";r==="Windows"?n=`buf-${r}-${t}.exe`:n=`buf-${r}-${t}.tar.gz`;let i=new Si.Octokit,{data:s}=await i.request("GET /repos/{owner}/{repo}/releases",{owner:"bufbuild",repo:"buf"});switch(e){case"latest":for(let o of s[0].assets)if(n===o.name)return o.browser_download_url;break;default:for(let o of s)if(bu(o.tag_name,e)){for(let a of o.assets)if(n===a.name)return a.browser_download_url}}return{message:`Unable to find Buf version "${e}" for platform "${r}" and architecture "${t}".`}}function bu(e,t){return e.indexOf(Rt)===0&&(e=e.slice(Rt.length)),t.indexOf(Rt)===0&&(t=t.slice(Rt.length)),e===t}async function xi(){try{let e=await Ou();e!==null&&Fe(e)&&q.setFailed(e.message)}catch(e){if(Fe(e)){q.setFailed(e.message);return}q.setFailed("Internal error")}}async function Ou(){let e=q.getInput("version");if(e==="")return{message:"a version was not provided"};q.info(`Setting up buf version "${e}"`);let t=await Ti(e);if(Fe(t))return t;q.info("Adding buf binary to PATH");let r="";return _i.platform()==="win32"?q.addPath(t):q.addPath(Ii.join(t,"bin")),r=await Ni.which("buf",!0),r===""?{message:"buf was not found on PATH"}:(q.info(`Successfully setup buf version ${e}`),q.info(Ai.default.execSync(`${r} --version`).toString()),null)}xi(); /*! * is-plain-object * diff --git a/dist/main.js.map b/dist/main.js.map index 8046a2d..da557aa 100644 --- a/dist/main.js.map +++ b/dist/main.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../node_modules/@actions/core/src/utils.ts", "../node_modules/@actions/core/src/command.ts", "../node_modules/@actions/core/src/file-command.ts", "../node_modules/@actions/core/src/core.ts", "../node_modules/@actions/io/src/io-util.ts", "../node_modules/@actions/io/src/io.ts", "../node_modules/semver/semver.js", "../node_modules/@actions/tool-cache/src/manifest.ts", "../node_modules/@actions/http-client/proxy.js", "../node_modules/tunnel/lib/tunnel.js", "../node_modules/tunnel/index.js", "../node_modules/@actions/http-client/index.js", "../node_modules/uuid/lib/rng.js", "../node_modules/uuid/lib/bytesToUuid.js", "../node_modules/uuid/v4.js", "../node_modules/@actions/exec/src/toolrunner.ts", "../node_modules/@actions/exec/src/exec.ts", "../node_modules/@actions/tool-cache/src/retry-helper.ts", "../node_modules/@actions/tool-cache/src/tool-cache.ts", "../node_modules/universal-user-agent/dist-src/index.js", "../node_modules/before-after-hook/lib/register.js", "../node_modules/before-after-hook/lib/add.js", "../node_modules/before-after-hook/lib/remove.js", "../node_modules/before-after-hook/index.js", "../node_modules/is-plain-object/dist/is-plain-object.js", "../node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js", "../node_modules/@octokit/endpoint/dist-src/util/merge-deep.js", "../node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js", "../node_modules/@octokit/endpoint/dist-src/merge.js", "../node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js", "../node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js", "../node_modules/@octokit/endpoint/dist-src/util/omit.js", "../node_modules/@octokit/endpoint/dist-src/util/url-template.js", "../node_modules/@octokit/endpoint/dist-src/parse.js", "../node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js", "../node_modules/@octokit/endpoint/dist-src/with-defaults.js", "../node_modules/@octokit/endpoint/dist-src/version.js", "../node_modules/@octokit/endpoint/dist-src/defaults.js", "../node_modules/@octokit/endpoint/dist-src/index.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/deprecation/dist-node/index.js", "../node_modules/wrappy/wrappy.js", "../node_modules/once/once.js", "../node_modules/@octokit/request-error/dist-src/index.js", "../node_modules/@octokit/request/dist-src/version.js", "../node_modules/@octokit/request/dist-src/get-buffer-response.js", "../node_modules/@octokit/request/dist-src/fetch-wrapper.js", "../node_modules/@octokit/request/dist-src/with-defaults.js", "../node_modules/@octokit/request/dist-src/index.js", "../node_modules/@octokit/graphql/dist-src/version.js", "../node_modules/@octokit/graphql/dist-src/error.js", "../node_modules/@octokit/graphql/dist-src/graphql.js", "../node_modules/@octokit/graphql/dist-src/with-defaults.js", "../node_modules/@octokit/graphql/dist-src/index.js", "../node_modules/@octokit/auth-token/dist-src/auth.js", "../node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js", "../node_modules/@octokit/auth-token/dist-src/hook.js", "../node_modules/@octokit/auth-token/dist-src/index.js", "../node_modules/@octokit/core/dist-src/version.js", "../node_modules/@octokit/core/dist-src/index.js", "../src/run.ts", "../src/buf.ts", "../src/error.ts", "../src/main.ts"], - "sourcesContent": [null, null, null, null, null, null, "exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n", null, "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n", "'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n", "module.exports = require('./lib/tunnel');\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`,\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n", "// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n", "/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n", "var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n", null, null, null, null, "export function getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n return \"\";\n}\n", "module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n", "module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n", "module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n", "var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n", "export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n", "import { isPlainObject } from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n", "export function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n", "import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n // remove properties with undefined values before merging\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n", "export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map((name) => {\n if (name === \"q\") {\n return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n", "const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n", "export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter((option) => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n", "// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template),\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n", "import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\",\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter((option) => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map((preview) => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n", "import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n", "import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse,\n });\n}\n", "export const VERSION = \"6.0.11\";\n", "import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent,\n },\n mediaType: {\n format: \"\",\n previews: [],\n },\n};\n", "import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n", "// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n", "var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n", "import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n },\n });\n this.headers = options.headers || {};\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n}\n", "export const VERSION = \"5.4.14\";\n", "export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n", "import { isPlainObject } from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect,\n }, requestOptions.request))\n .then((response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requests\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n headers,\n request: requestOptions,\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions,\n });\n }\n if (status >= 400) {\n return response\n .text()\n .then((message) => {\n const error = new RequestError(message, status, {\n headers,\n request: requestOptions,\n });\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors;\n // Assumption `errors` would always be in Array format\n error.message =\n error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n }\n catch (e) {\n // ignore, see octokit/rest.js#684\n }\n throw error;\n });\n }\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n })\n .then((data) => {\n return {\n status,\n url,\n headers,\n data,\n };\n })\n .catch((error) => {\n if (error instanceof RequestError) {\n throw error;\n }\n throw new RequestError(error.message, 500, {\n headers,\n request: requestOptions,\n });\n });\n}\n", "import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n}\n", "import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`,\n },\n});\n", "export const VERSION = \"4.6.1\";\n", "export class GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n Object.assign(this, { headers: response.headers });\n this.name = \"GraphqlError\";\n this.request = request;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n", "import { GraphqlError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\",\n];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nexport function graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))\n continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlError(requestOptions, {\n headers,\n data: response.data,\n });\n }\n return response.data.data;\n });\n}\n", "import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint,\n });\n}\n", "import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`,\n },\n method: \"POST\",\n url: \"/graphql\",\n});\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\",\n });\n}\n", "export async function auth(token) {\n const tokenType = token.split(/\\./).length === 3\n ? \"app\"\n : /^v\\d+\\./.test(token)\n ? \"installation\"\n : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n", "/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nexport function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n", "import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nexport async function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n", "import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nexport const createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n", "export const VERSION = \"3.3.1\";\n", "import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version\";\nexport class Octokit {\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\"),\n }),\n mediaType: {\n previews: [],\n format: \"\",\n },\n };\n // prepend default user agent with `options.userAgent` if set\n requestDefaults.headers[\"user-agent\"] = [\n options.userAgent,\n `octokit-core.js/${VERSION} ${getUserAgent()}`,\n ]\n .filter(Boolean)\n .join(\" \");\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => { },\n info: () => { },\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n }, options.log);\n this.hook = hook;\n // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\",\n });\n }\n else {\n // (2)\n const auth = createTokenAuth(options.auth);\n // @ts-ignore \u00AF\\_(\u30C4)_/\u00AF\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n }\n else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions,\n }, options.auth));\n // @ts-ignore \u00AF\\_(\u30C4)_/\u00AF\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n // apply plugins\n // https://stackoverflow.com/a/16345172\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach((plugin) => {\n Object.assign(this, plugin(this, options));\n });\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent\n ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`,\n }\n : null));\n }\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n var _a;\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {\n },\n _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))),\n _a);\n return NewOctokit;\n }\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport cp from 'child_process';\nimport * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as io from '@actions/io';\nimport { getBuf } from './buf';\nimport { Error, isError } from './error';\n\nexport async function run(): Promise {\n try {\n const result = await runSetup()\n if (result !== null && isError(result)) {\n core.setFailed(result.message);\n }\n } catch (error) {\n // In case we ever fail to catch an error\n // in the call chain, we catch the error\n // and mark the build as a failure. The\n // user is otherwise prone to false positives.\n if (isError(error)) {\n core.setFailed(error.message);\n return;\n }\n core.setFailed('Internal error');\n }\n}\n\n// runSetup runs the buf-setup action, and returns\n// a non-empty error if it fails.\nasync function runSetup(): Promise {\n let version = core.getInput('version');\n if (version === '') {\n // If version is not provided, default to 'latest'.\n version = 'latest'\n }\n\n core.info(`Setting up buf version \"${version}\"`);\n const installDir = await getBuf(version);\n if (isError(installDir)) {\n return installDir\n }\n\n core.info('Adding buf binary to PATH');\n let binaryPath = '';\n if (os.platform() === 'win32') {\n core.addPath(installDir);\n } else {\n core.addPath(path.join(installDir, 'bin'));\n }\n binaryPath = await io.which('buf', true);\n if (binaryPath === '') {\n return {\n message: 'buf was not found on PATH'\n };\n }\n\n core.info(`Successfully setup buf version ${version}`);\n core.info(cp.execSync(`${binaryPath} --version`).toString());\n\n return null;\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport {Octokit} from '@octokit/core';\nimport { Error, isError } from './error';\n\n// versionPrefix is used in Github release names, and can\n// optionally be specified in the action's version parameter.\nconst versionPrefix = \"v\";\n\nexport async function getBuf(version: string): Promise {\n const binaryPath = tc.find('buf', version, os.arch());\n if (binaryPath !== '') {\n core.info(`Found in cache @ ${binaryPath}`);\n return binaryPath;\n }\n\n core.info(`Resolving the download URL for the current platform...`);\n const downloadURL = await getDownloadURL(version);\n if (isError(downloadURL)) {\n return downloadURL\n }\n\n let cacheDir = \"\";\n core.info(`Downloading buf version \"${version}\" from ${downloadURL}`);\n if (downloadURL.endsWith('.tar.gz')){\n const downloadPath = await tc.downloadTool(downloadURL);\n core.info(`Successfully downloaded buf version \"${version}\" from ${downloadURL}`);\n\n core.info('Extracting buf...');\n const extractPath = await tc.extractTar(downloadPath);\n core.info(`Successfully extracted buf to ${extractPath}`);\n\n core.info('Adding buf to the cache...');\n cacheDir = await tc.cacheDir(\n path.join(extractPath, 'buf'),\n 'buf',\n version,\n os.arch()\n );\n } else {\n // For Windows, we only download the .exe for `buf` CLI becasue we do not create `.tar.gz`\n // bundles for Windows releases.\n const downloadPath = await tc.downloadTool(downloadURL, 'C:\\\\Users\\\\runneradmin\\\\buf-download\\\\buf.exe');\n core.info(`Successfully downloaded buf version \"${version}\" from ${downloadURL} to ${downloadPath}`);\n\n core.info('Adding buf to the cache...');\n cacheDir = await tc.cacheDir(path.dirname(downloadPath), 'buf', version, os.arch());\n }\n core.info(`Successfully cached buf to ${cacheDir}`);\n return cacheDir;\n}\n\n// getDownloadURL resolves Buf's Github download URL for the\n// current architecture and platform.\nasync function getDownloadURL(version: string): Promise {\n let architecture = '';\n switch (os.arch()) {\n // The available architectures can be found at:\n // https://nodejs.org/api/process.html#process_process_arch\n case 'x64':\n architecture = 'x86_64';\n break;\n case 'arm64':\n architecture = 'arm64';\n break;\n default:\n return {\n message: `The \"${os.arch()}\" architecture is not supported with a Buf release.`\n };\n }\n let platform = '';\n switch (os.platform()) {\n // The available platforms can be found at:\n // https://nodejs.org/api/process.html#process_process_platform\n case 'linux':\n platform = 'Linux';\n break;\n case 'darwin':\n platform = 'Darwin';\n break;\n case 'win32':\n platform = 'Windows';\n break;\n default:\n return {\n message: `The \"${os.platform()}\" platform is not supported with a Buf release.`\n };\n }\n // The asset name is determined by the buf release structure found at:\n // https://github.com/bufbuild/buf/blob/8255257bd94c9f1b5faa27242211c5caad05be79/make/buf/scripts/release.bash#L102\n let assetName = '';\n // For Windows, we only download the .exe for `buf` CLI\n if (platform === 'Windows') {\n assetName = `buf-${platform}-${architecture}.exe`\n } else {\n assetName = `buf-${platform}-${architecture}.tar.gz`\n }\n const octokit = new Octokit();\n const {data: releases} = await octokit.request(\n 'GET /repos/{owner}/{repo}/releases',\n {\n owner: 'bufbuild',\n repo: 'buf',\n }\n );\n switch (version) {\n case 'latest':\n for (const asset of releases[0].assets) {\n if (assetName === asset.name) {\n return asset.browser_download_url;\n }\n }\n break;\n default:\n for (const release of releases) {\n if (releaseTagIsVersion(release.tag_name, version)) {\n for (const asset of release.assets) {\n if (assetName === asset.name) {\n return asset.browser_download_url;\n }\n }\n }\n }\n }\n return {\n message: `Unable to find Buf version \"${version}\" for platform \"${platform}\" and architecture \"${architecture}\".`\n };\n}\n\n// releaseTagIsVersion returns true if the given Github release tag is equivalent\n// to the user-specified version. Github releases include the 'v' prefix, but the\n// `buf --version` does not. Thus, we permit both versions, e.g. v0.38.0 and 0.38.0.\nfunction releaseTagIsVersion(releaseTag: string, version: string): boolean {\n if (releaseTag.indexOf(versionPrefix) === 0) {\n releaseTag = releaseTag.slice(versionPrefix.length)\n }\n if (version.indexOf(versionPrefix) === 0) {\n version = version.slice(versionPrefix.length)\n }\n return releaseTag === version\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Error is the built-in error type.\nexport interface Error {\n message: string;\n}\n\n// isError determines if the given value is an Error.\n// https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function isError(value: any): value is Error {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return (value as Error).message !== undefined;\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {run} from './run';\n\nvoid run();\n"], - "mappings": "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", + "sourcesContent": [null, null, null, null, null, null, "exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n", null, "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n", "'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n", "module.exports = require('./lib/tunnel');\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`,\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n", "// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n", "/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n", "var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n", null, null, null, null, "export function getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n return \"\";\n}\n", "module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n", "module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n", "module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n", "var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n", "export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n", "import { isPlainObject } from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n", "export function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n", "import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n // remove properties with undefined values before merging\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n", "export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map((name) => {\n if (name === \"q\") {\n return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n", "const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n", "export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter((option) => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n", "// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template),\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n", "import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\",\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter((option) => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map((preview) => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n", "import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n", "import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse,\n });\n}\n", "export const VERSION = \"6.0.11\";\n", "import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent,\n },\n mediaType: {\n format: \"\",\n previews: [],\n },\n};\n", "import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n", "// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n", "var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n", "import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n },\n });\n this.headers = options.headers || {};\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n}\n", "export const VERSION = \"5.4.14\";\n", "export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n", "import { isPlainObject } from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect,\n }, requestOptions.request))\n .then((response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requests\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n headers,\n request: requestOptions,\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions,\n });\n }\n if (status >= 400) {\n return response\n .text()\n .then((message) => {\n const error = new RequestError(message, status, {\n headers,\n request: requestOptions,\n });\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors;\n // Assumption `errors` would always be in Array format\n error.message =\n error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n }\n catch (e) {\n // ignore, see octokit/rest.js#684\n }\n throw error;\n });\n }\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n })\n .then((data) => {\n return {\n status,\n url,\n headers,\n data,\n };\n })\n .catch((error) => {\n if (error instanceof RequestError) {\n throw error;\n }\n throw new RequestError(error.message, 500, {\n headers,\n request: requestOptions,\n });\n });\n}\n", "import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n}\n", "import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`,\n },\n});\n", "export const VERSION = \"4.6.1\";\n", "export class GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n Object.assign(this, { headers: response.headers });\n this.name = \"GraphqlError\";\n this.request = request;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n", "import { GraphqlError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\",\n];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nexport function graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))\n continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlError(requestOptions, {\n headers,\n data: response.data,\n });\n }\n return response.data.data;\n });\n}\n", "import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint,\n });\n}\n", "import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`,\n },\n method: \"POST\",\n url: \"/graphql\",\n});\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\",\n });\n}\n", "export async function auth(token) {\n const tokenType = token.split(/\\./).length === 3\n ? \"app\"\n : /^v\\d+\\./.test(token)\n ? \"installation\"\n : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n", "/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nexport function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n", "import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nexport async function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n", "import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nexport const createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n", "export const VERSION = \"3.3.1\";\n", "import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version\";\nexport class Octokit {\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\"),\n }),\n mediaType: {\n previews: [],\n format: \"\",\n },\n };\n // prepend default user agent with `options.userAgent` if set\n requestDefaults.headers[\"user-agent\"] = [\n options.userAgent,\n `octokit-core.js/${VERSION} ${getUserAgent()}`,\n ]\n .filter(Boolean)\n .join(\" \");\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => { },\n info: () => { },\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n }, options.log);\n this.hook = hook;\n // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\",\n });\n }\n else {\n // (2)\n const auth = createTokenAuth(options.auth);\n // @ts-ignore \u00AF\\_(\u30C4)_/\u00AF\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n }\n else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions,\n }, options.auth));\n // @ts-ignore \u00AF\\_(\u30C4)_/\u00AF\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n // apply plugins\n // https://stackoverflow.com/a/16345172\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach((plugin) => {\n Object.assign(this, plugin(this, options));\n });\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent\n ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`,\n }\n : null));\n }\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n var _a;\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {\n },\n _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))),\n _a);\n return NewOctokit;\n }\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport cp from 'child_process';\nimport * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as io from '@actions/io';\nimport { getBuf } from './buf';\nimport { Error, isError } from './error';\n\nexport async function run(): Promise {\n try {\n const result = await runSetup()\n if (result !== null && isError(result)) {\n core.setFailed(result.message);\n }\n } catch (error) {\n // In case we ever fail to catch an error\n // in the call chain, we catch the error\n // and mark the build as a failure. The\n // user is otherwise prone to false positives.\n if (isError(error)) {\n core.setFailed(error.message);\n return;\n }\n core.setFailed('Internal error');\n }\n}\n\n// runSetup runs the buf-setup action, and returns\n// a non-empty error if it fails.\nasync function runSetup(): Promise {\n const version = core.getInput('version');\n if (version === '') {\n return {\n message: 'a version was not provided'\n };\n }\n\n core.info(`Setting up buf version \"${version}\"`);\n const installDir = await getBuf(version);\n if (isError(installDir)) {\n return installDir\n }\n\n core.info('Adding buf binary to PATH');\n let binaryPath = '';\n if (os.platform() === 'win32') {\n core.addPath(installDir);\n } else {\n core.addPath(path.join(installDir, 'bin'));\n }\n binaryPath = await io.which('buf', true);\n if (binaryPath === '') {\n return {\n message: 'buf was not found on PATH'\n };\n }\n\n core.info(`Successfully setup buf version ${version}`);\n core.info(cp.execSync(`${binaryPath} --version`).toString());\n\n return null;\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport {Octokit} from '@octokit/core';\nimport { Error, isError } from './error';\n\n// versionPrefix is used in Github release names, and can\n// optionally be specified in the action's version parameter.\nconst versionPrefix = \"v\";\n\nexport async function getBuf(version: string): Promise {\n const binaryPath = tc.find('buf', version, os.arch());\n if (binaryPath !== '') {\n core.info(`Found in cache @ ${binaryPath}`);\n return binaryPath;\n }\n\n core.info(`Resolving the download URL for the current platform...`);\n const downloadURL = await getDownloadURL(version);\n if (isError(downloadURL)) {\n return downloadURL\n }\n\n let cacheDir = \"\";\n core.info(`Downloading buf version \"${version}\" from ${downloadURL}`);\n if (downloadURL.endsWith('.tar.gz')){\n const downloadPath = await tc.downloadTool(downloadURL);\n core.info(`Successfully downloaded buf version \"${version}\" from ${downloadURL}`);\n\n core.info('Extracting buf...');\n const extractPath = await tc.extractTar(downloadPath);\n core.info(`Successfully extracted buf to ${extractPath}`);\n\n core.info('Adding buf to the cache...');\n cacheDir = await tc.cacheDir(\n path.join(extractPath, 'buf'),\n 'buf',\n version,\n os.arch()\n );\n } else {\n // For Windows, we only download the .exe for `buf` CLI becasue we do not create `.tar.gz`\n // bundles for Windows releases.\n const downloadPath = await tc.downloadTool(downloadURL, 'C:\\\\Users\\\\runneradmin\\\\buf-download\\\\buf.exe');\n core.info(`Successfully downloaded buf version \"${version}\" from ${downloadURL} to ${downloadPath}`);\n\n core.info('Adding buf to the cache...');\n cacheDir = await tc.cacheDir(path.dirname(downloadPath), 'buf', version, os.arch());\n }\n core.info(`Successfully cached buf to ${cacheDir}`);\n return cacheDir;\n}\n\n// getDownloadURL resolves Buf's Github download URL for the\n// current architecture and platform.\nasync function getDownloadURL(version: string): Promise {\n let architecture = '';\n switch (os.arch()) {\n // The available architectures can be found at:\n // https://nodejs.org/api/process.html#process_process_arch\n case 'x64':\n architecture = 'x86_64';\n break;\n case 'arm64':\n architecture = 'arm64';\n break;\n default:\n return {\n message: `The \"${os.arch()}\" architecture is not supported with a Buf release.`\n };\n }\n let platform = '';\n switch (os.platform()) {\n // The available platforms can be found at:\n // https://nodejs.org/api/process.html#process_process_platform\n case 'linux':\n platform = 'Linux';\n break;\n case 'darwin':\n platform = 'Darwin';\n break;\n case 'win32':\n platform = 'Windows';\n break;\n default:\n return {\n message: `The \"${os.platform()}\" platform is not supported with a Buf release.`\n };\n }\n // The asset name is determined by the buf release structure found at:\n // https://github.com/bufbuild/buf/blob/8255257bd94c9f1b5faa27242211c5caad05be79/make/buf/scripts/release.bash#L102\n let assetName = '';\n // For Windows, we only download the .exe for `buf` CLI\n if (platform === 'Windows') {\n assetName = `buf-${platform}-${architecture}.exe`\n } else {\n assetName = `buf-${platform}-${architecture}.tar.gz`\n }\n const octokit = new Octokit();\n const {data: releases} = await octokit.request(\n 'GET /repos/{owner}/{repo}/releases',\n {\n owner: 'bufbuild',\n repo: 'buf',\n }\n );\n switch (version) {\n case 'latest':\n for (const asset of releases[0].assets) {\n if (assetName === asset.name) {\n return asset.browser_download_url;\n }\n }\n break;\n default:\n for (const release of releases) {\n if (releaseTagIsVersion(release.tag_name, version)) {\n for (const asset of release.assets) {\n if (assetName === asset.name) {\n return asset.browser_download_url;\n }\n }\n }\n }\n }\n return {\n message: `Unable to find Buf version \"${version}\" for platform \"${platform}\" and architecture \"${architecture}\".`\n };\n}\n\n// releaseTagIsVersion returns true if the given Github release tag is equivalent\n// to the user-specified version. Github releases include the 'v' prefix, but the\n// `buf --version` does not. Thus, we permit both versions, e.g. v0.38.0 and 0.38.0.\nfunction releaseTagIsVersion(releaseTag: string, version: string): boolean {\n if (releaseTag.indexOf(versionPrefix) === 0) {\n releaseTag = releaseTag.slice(versionPrefix.length)\n }\n if (version.indexOf(versionPrefix) === 0) {\n version = version.slice(versionPrefix.length)\n }\n return releaseTag === version\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Error is the built-in error type.\nexport interface Error {\n message: string;\n}\n\n// isError determines if the given value is an Error.\n// https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function isError(value: any): value is Error {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return (value as Error).message !== undefined;\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {run} from './run';\n\nvoid run();\n"], + "mappings": "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", "names": [] } diff --git a/src/run.ts b/src/run.ts index a00e21b..c30945f 100644 --- a/src/run.ts +++ b/src/run.ts @@ -42,10 +42,11 @@ export async function run(): Promise { // runSetup runs the buf-setup action, and returns // a non-empty error if it fails. async function runSetup(): Promise { - let version = core.getInput('version'); + const version = core.getInput('version'); if (version === '') { - // If version is not provided, default to 'latest'. - version = 'latest' + return { + message: 'a version was not provided' + }; } core.info(`Setting up buf version "${version}"`); From 1523a7bed60d2801b9a6ccbfcaec533e836b7f1a Mon Sep 17 00:00:00 2001 From: Alex McKinney Date: Wed, 15 Sep 2021 08:59:52 -0700 Subject: [PATCH 2/2] Add note about 'latest' --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d6ef477..a515ab6 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Install and setup [buf](https://github.com/bufbuild/buf) for use in other action Refer to the [action.yml](https://github.com/bufbuild/buf-setup-action/blob/main/action.yml) to see all of the action parameters. -If `version` is unspecified, the default value is set to the latest `buf` version. +If `version` is unspecified, the default value is set to the latest `buf` version: ```yaml steps: @@ -27,6 +27,17 @@ steps: - run: buf --version ``` +If you want to explicitly set `buf` to its latest release, vou can set it like so: + +```yaml +steps: + - uses: actions/checkout@v2 + - uses: bufbuild/buf-setup-action@v0.4.0 + with: + version: 'latest' + - run: buf --version +``` + The `buf-setup` action is commonly used by the other `buf` actions, such as [buf-breaking][1], [buf-lint][2], and [buf-push][3].