diff --git a/action.yml b/action.yml index 02c696a..38cf51e 100644 --- a/action.yml +++ b/action.yml @@ -21,6 +21,8 @@ inputs: github_token: description: 'The Github authentication token.' required: true + buf_token: + description: 'The buf authentication token used for private inputs.' runs: using: 'node12' main: './dist/main.js' diff --git a/dist/main.js b/dist/main.js index b588a69..744748c 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1,8 +1,9 @@ -var bs=Object.create,De=Object.defineProperty,ys=Object.getPrototypeOf,_s=Object.prototype.hasOwnProperty,vs=Object.getOwnPropertyNames,Gs=Object.getOwnPropertyDescriptor;var ks=e=>De(e,"__esModule",{value:!0});var g=(e,r)=>()=>(r||(r={exports:{}},e(r.exports,r)),r.exports);var Os=(e,r,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of vs(r))!_s.call(e,s)&&s!=="default"&&De(e,s,{get:()=>r[s],enumerable:!(t=Gs(r,s))||t.enumerable});return e},pe=e=>Os(ks(De(e!=null?bs(ys(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var ve=g(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});function Ps(e){return e==null?"":typeof e=="string"||e instanceof String?e:JSON.stringify(e)}je.toCommandValue=Ps});var vr=g(ee=>{"use strict";var Ss=ee&&ee.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(ee,"__esModule",{value:!0});var As=Ss(require("os")),wr=ve();function yr(e,r,t){let s=new br(e,r,t);process.stdout.write(s.toString()+As.EOL)}ee.issueCommand=yr;function Rs(e,r=""){yr(e,{},r)}ee.issue=Rs;var _r="::",br=class{constructor(r,t,s){r||(r="missing.command"),this.command=r,this.properties=t,this.message=s}toString(){let r=_r+this.command;if(this.properties&&Object.keys(this.properties).length>0){r+=" ";let t=!0;for(let s in this.properties)if(this.properties.hasOwnProperty(s)){let o=this.properties[s];o&&(t?t=!1:r+=",",r+=`${s}=${Fs(o)}`)}}return r+=`${_r}${Us(this.message)}`,r}};function Us(e){return wr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function Fs(e){return wr.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}});var Or=g(de=>{"use strict";var Gr=de&&de.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(de,"__esModule",{value:!0});var kr=Gr(require("fs")),Cs=Gr(require("os")),qs=ve();function Ds(e,r){let t=process.env[`GITHUB_${e}`];if(!t)throw new Error(`Unable to find environment variable for file command ${e}`);if(!kr.existsSync(t))throw new Error(`Missing file at path: ${t}`);kr.appendFileSync(t,`${qs.toCommandValue(r)}${Cs.EOL}`,{encoding:"utf8"})}de.issueCommand=Ds});var Cr=g(T=>{"use strict";var js=T&&T.__awaiter||function(e,r,t,s){function o(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function a(l){try{u(s.next(l))}catch(p){i(p)}}function c(l){try{u(s.throw(l))}catch(p){i(p)}}function u(l){l.done?n(l.value):o(l.value).then(a,c)}u((s=s.apply(e,r||[])).next())})},Pr=T&&T.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(T,"__esModule",{value:!0});var F=vr(),Sr=Or(),xs=ve(),xe=Pr(require("os")),Ls=Pr(require("path")),Ar;(function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure"})(Ar=T.ExitCode||(T.ExitCode={}));function Is(e,r){let t=xs.toCommandValue(r);if(process.env[e]=t,process.env.GITHUB_ENV||""){let o="_GitHubActionsFileCommandDelimeter_",n=`${e}<<${o}${xe.EOL}${t}${xe.EOL}${o}`;Sr.issueCommand("ENV",n)}else F.issueCommand("set-env",{name:e},t)}T.exportVariable=Is;function Bs(e){F.issueCommand("add-mask",{},e)}T.setSecret=Bs;function Ns(e){process.env.GITHUB_PATH||""?Sr.issueCommand("PATH",e):F.issueCommand("add-path",{},e),process.env.PATH=`${e}${Ls.delimiter}${process.env.PATH}`}T.addPath=Ns;function $s(e,r){let t=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(r&&r.required&&!t)throw new Error(`Input required and not supplied: ${e}`);return t.trim()}T.getInput=$s;function Hs(e,r){F.issueCommand("set-output",{name:e},r)}T.setOutput=Hs;function Ms(e){F.issue("echo",e?"on":"off")}T.setCommandEcho=Ms;function zs(e){process.exitCode=Ar.Failure,Rr(e)}T.setFailed=zs;function Ws(){return process.env.RUNNER_DEBUG==="1"}T.isDebug=Ws;function Vs(e){F.issueCommand("debug",{},e)}T.debug=Vs;function Rr(e){F.issue("error",e instanceof Error?e.toString():e)}T.error=Rr;function Js(e){F.issue("warning",e instanceof Error?e.toString():e)}T.warning=Js;function Ks(e){process.stdout.write(e+xe.EOL)}T.info=Ks;function Ur(e){F.issue("group",e)}T.startGroup=Ur;function Fr(){F.issue("endgroup")}T.endGroup=Fr;function Ys(e,r){return js(this,void 0,void 0,function*(){Ur(e);let t;try{t=yield r()}finally{Fr()}return t})}T.group=Ys;function Zs(e,r){F.issueCommand("save-state",{name:e},r)}T.saveState=Zs;function Xs(e){return process.env[`STATE_${e}`]||""}T.getState=Xs});var Le=g(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.Context=void 0;var qr=require("fs"),Qs=require("os"),Dr=class{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(qr.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(qr.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{let r=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${r} does not exist${Qs.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){let r=this.payload;return Object.assign(Object.assign({},this.repo),{number:(r.issue||r.pull_request||r).number})}get repo(){if(process.env.GITHUB_REPOSITORY){let[r,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:r,repo:t}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};Ge.Context=Dr});var xr=g(ke=>{"use strict";Object.defineProperty(ke,"__esModule",{value:!0});function eo(e){let r=e.protocol==="https:",t;if(jr(e))return t;let s;return r?s=process.env.https_proxy||process.env.HTTPS_PROXY:s=process.env.http_proxy||process.env.HTTP_PROXY,s&&(t=new URL(s)),t}ke.getProxyUrl=eo;function jr(e){if(!e.hostname)return!1;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;let t;e.port?t=Number(e.port):e.protocol==="http:"?t=80:e.protocol==="https:"&&(t=443);let s=[e.hostname.toUpperCase()];typeof t=="number"&&s.push(`${s[0]}:${t}`);for(let o of r.split(",").map(n=>n.trim().toUpperCase()).filter(n=>n))if(s.some(n=>n===o))return!0;return!1}ke.checkBypass=jr});var Nr=g(re=>{"use strict";var Pi=require("net"),ro=require("tls"),Ie=require("http"),Lr=require("https"),to=require("events"),Si=require("assert"),so=require("util");re.httpOverHttp=oo;re.httpsOverHttp=no;re.httpOverHttps=io;re.httpsOverHttps=ao;function oo(e){var r=new j(e);return r.request=Ie.request,r}function no(e){var r=new j(e);return r.request=Ie.request,r.createSocket=Ir,r.defaultPort=443,r}function io(e){var r=new j(e);return r.request=Lr.request,r}function ao(e){var r=new j(e);return r.request=Lr.request,r.createSocket=Ir,r.defaultPort=443,r}function j(e){var r=this;r.options=e||{},r.proxyOptions=r.options.proxy||{},r.maxSockets=r.options.maxSockets||Ie.Agent.defaultMaxSockets,r.requests=[],r.sockets=[],r.on("free",function(s,o,n,i){for(var a=Br(o,n,i),c=0,u=r.requests.length;c=this.maxSockets){n.requests.push(i);return}n.createSocket(i,function(a){a.on("free",c),a.on("close",u),a.on("agentRemove",u),r.onSocket(a);function c(){n.emit("free",a,i)}function u(l){n.removeSocket(a),a.removeListener("free",c),a.removeListener("close",u),a.removeListener("agentRemove",u)}})};j.prototype.createSocket=function(r,t){var s=this,o={};s.sockets.push(o);var n=Be({},s.proxyOptions,{method:"CONNECT",path:r.host+":"+r.port,agent:!1,headers:{host:r.host+":"+r.port}});r.localAddress&&(n.localAddress=r.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),z("making CONNECT request");var i=s.request(n);i.useChunkedEncodingByDefault=!1,i.once("response",a),i.once("upgrade",c),i.once("connect",u),i.once("error",l),i.end();function a(p){p.upgrade=!0}function c(p,f,b){process.nextTick(function(){u(p,f,b)})}function u(p,f,b){if(i.removeAllListeners(),f.removeAllListeners(),p.statusCode!==200){z("tunneling socket could not be established, statusCode=%d",p.statusCode),f.destroy();var h=new Error("tunneling socket could not be established, statusCode="+p.statusCode);h.code="ECONNRESET",r.request.emit("error",h),s.removeSocket(o);return}if(b.length>0){z("got illegal response body from proxy"),f.destroy();var h=new Error("got illegal response body from proxy");h.code="ECONNRESET",r.request.emit("error",h),s.removeSocket(o);return}return z("tunneling connection has established"),s.sockets[s.sockets.indexOf(o)]=f,t(f)}function l(p){i.removeAllListeners(),z(`tunneling socket could not be established, cause=%s -`,p.message,p.stack);var f=new Error("tunneling socket could not be established, cause="+p.message);f.code="ECONNRESET",r.request.emit("error",f),s.removeSocket(o)}};j.prototype.removeSocket=function(r){var t=this.sockets.indexOf(r);if(t!==-1){this.sockets.splice(t,1);var s=this.requests.shift();s&&this.createSocket(s,function(o){s.request.onSocket(o)})}};function Ir(e,r){var t=this;j.prototype.createSocket.call(t,e,function(s){var o=e.request.getHeader("host"),n=Be({},t.options,{socket:s,servername:o?o.replace(/:.*$/,""):e.host}),i=ro.connect(0,n);t.sockets[t.sockets.indexOf(s)]=i,r(i)})}function Br(e,r,t){return typeof e=="string"?{host:e,port:r,localAddress:t}:e}function Be(e){for(var r=1,t=arguments.length;r{$r.exports=Nr()});var zr=g(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});var Oe=require("http"),Ne=require("https"),Mr=xr(),te,C;(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"})(C=O.HttpCodes||(O.HttpCodes={}));var _;(function(e){e.Accept="accept",e.ContentType="content-type"})(_=O.Headers||(O.Headers={}));var W;(function(e){e.ApplicationJson="application/json"})(W=O.MediaTypes||(O.MediaTypes={}));function co(e){let r=Mr.getProxyUrl(new URL(e));return r?r.href:""}O.getProxyUrl=co;var uo=[C.MovedPermanently,C.ResourceMoved,C.SeeOther,C.TemporaryRedirect,C.PermanentRedirect],lo=[C.BadGateway,C.ServiceUnavailable,C.GatewayTimeout],po=["OPTIONS","GET","DELETE","HEAD"],mo=10,go=5,me=class extends Error{constructor(r,t){super(r);this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,me.prototype)}};O.HttpClientError=me;var $e=class{constructor(r){this.message=r}readBody(){return new Promise(async(r,t)=>{let s=Buffer.alloc(0);this.message.on("data",o=>{s=Buffer.concat([s,o])}),this.message.on("end",()=>{r(s.toString())})})}};O.HttpClientResponse=$e;function fo(e){return new URL(e).protocol==="https:"}O.isHttps=fo;var Pe=class{constructor(r,t,s){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=r,this.handlers=t||[],this.requestOptions=s,s&&(s.ignoreSslError!=null&&(this._ignoreSslError=s.ignoreSslError),this._socketTimeout=s.socketTimeout,s.allowRedirects!=null&&(this._allowRedirects=s.allowRedirects),s.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=s.allowRedirectDowngrade),s.maxRedirects!=null&&(this._maxRedirects=Math.max(s.maxRedirects,0)),s.keepAlive!=null&&(this._keepAlive=s.keepAlive),s.allowRetries!=null&&(this._allowRetries=s.allowRetries),s.maxRetries!=null&&(this._maxRetries=s.maxRetries))}options(r,t){return this.request("OPTIONS",r,null,t||{})}get(r,t){return this.request("GET",r,null,t||{})}del(r,t){return this.request("DELETE",r,null,t||{})}post(r,t,s){return this.request("POST",r,t,s||{})}patch(r,t,s){return this.request("PATCH",r,t,s||{})}put(r,t,s){return this.request("PUT",r,t,s||{})}head(r,t){return this.request("HEAD",r,null,t||{})}sendStream(r,t,s,o){return this.request(r,t,s,o)}async getJson(r,t={}){t[_.Accept]=this._getExistingOrDefaultHeader(t,_.Accept,W.ApplicationJson);let s=await this.get(r,t);return this._processResponse(s,this.requestOptions)}async postJson(r,t,s={}){let o=JSON.stringify(t,null,2);s[_.Accept]=this._getExistingOrDefaultHeader(s,_.Accept,W.ApplicationJson),s[_.ContentType]=this._getExistingOrDefaultHeader(s,_.ContentType,W.ApplicationJson);let n=await this.post(r,o,s);return this._processResponse(n,this.requestOptions)}async putJson(r,t,s={}){let o=JSON.stringify(t,null,2);s[_.Accept]=this._getExistingOrDefaultHeader(s,_.Accept,W.ApplicationJson),s[_.ContentType]=this._getExistingOrDefaultHeader(s,_.ContentType,W.ApplicationJson);let n=await this.put(r,o,s);return this._processResponse(n,this.requestOptions)}async patchJson(r,t,s={}){let o=JSON.stringify(t,null,2);s[_.Accept]=this._getExistingOrDefaultHeader(s,_.Accept,W.ApplicationJson),s[_.ContentType]=this._getExistingOrDefaultHeader(s,_.ContentType,W.ApplicationJson);let n=await this.patch(r,o,s);return this._processResponse(n,this.requestOptions)}async request(r,t,s,o){if(this._disposed)throw new Error("Client has already been disposed.");let n=new URL(t),i=this._prepareRequest(r,n,o),a=this._allowRetries&&po.indexOf(r)!=-1?this._maxRetries+1:1,c=0,u;for(;c0;){let p=u.message.headers.location;if(!p)break;let f=new URL(p);if(n.protocol=="https:"&&n.protocol!=f.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 u.readBody(),f.hostname!==n.hostname)for(let b in o)b.toLowerCase()==="authorization"&&delete o[b];i=this._prepareRequest(r,f,o),u=await this.requestRaw(i,s),l--}if(lo.indexOf(u.message.statusCode)==-1)return u;c+=1,c{let n=function(i,a){i&&o(i),s(a)};this.requestRawWithCallback(r,t,n)})}requestRawWithCallback(r,t,s){let o;typeof t=="string"&&(r.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let n=!1,i=(c,u)=>{n||(n=!0,s(c,u))},a=r.httpModule.request(r.options,c=>{let u=new $e(c);i(null,u)});a.on("socket",c=>{o=c}),a.setTimeout(this._socketTimeout||3*6e4,()=>{o&&o.end(),i(new Error("Request timeout: "+r.options.path),null)}),a.on("error",function(c){i(c,null)}),t&&typeof t=="string"&&a.write(t,"utf8"),t&&typeof t!="string"?(t.on("close",function(){a.end()}),t.pipe(a)):a.end()}getAgent(r){let t=new URL(r);return this._getAgent(t)}_prepareRequest(r,t,s){let o={};o.parsedUrl=t;let n=o.parsedUrl.protocol==="https:";o.httpModule=n?Ne:Oe;let i=n?443:80;return o.options={},o.options.host=o.parsedUrl.hostname,o.options.port=o.parsedUrl.port?parseInt(o.parsedUrl.port):i,o.options.path=(o.parsedUrl.pathname||"")+(o.parsedUrl.search||""),o.options.method=r,o.options.headers=this._mergeHeaders(s),this.userAgent!=null&&(o.options.headers["user-agent"]=this.userAgent),o.options.agent=this._getAgent(o.parsedUrl),this.handlers&&this.handlers.forEach(a=>{a.prepareRequest(o.options)}),o}_mergeHeaders(r){let t=s=>Object.keys(s).reduce((o,n)=>(o[n.toLowerCase()]=s[n],o),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},t(this.requestOptions.headers),t(r)):t(r||{})}_getExistingOrDefaultHeader(r,t,s){let o=i=>Object.keys(i).reduce((a,c)=>(a[c.toLowerCase()]=i[c],a),{}),n;return this.requestOptions&&this.requestOptions.headers&&(n=o(this.requestOptions.headers)[t]),r[t]||n||s}_getAgent(r){let t,s=Mr.getProxyUrl(r),o=s&&s.hostname;if(this._keepAlive&&o&&(t=this._proxyAgent),this._keepAlive&&!o&&(t=this._agent),t)return t;let n=r.protocol==="https:",i=100;if(this.requestOptions&&(i=this.requestOptions.maxSockets||Oe.globalAgent.maxSockets),o){te||(te=Hr());let a={maxSockets:i,keepAlive:this._keepAlive,proxy:{proxyAuth:`${s.username}:${s.password}`,host:s.hostname,port:s.port}},c,u=s.protocol==="https:";n?c=u?te.httpsOverHttps:te.httpsOverHttp:c=u?te.httpOverHttps:te.httpOverHttp,t=c(a),this._proxyAgent=t}if(this._keepAlive&&!t){let a={keepAlive:this._keepAlive,maxSockets:i};t=n?new Ne.Agent(a):new Oe.Agent(a),this._agent=t}return t||(t=n?Ne.globalAgent:Oe.globalAgent),n&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t}_performExponentialBackoff(r){r=Math.min(mo,r);let t=go*Math.pow(2,r);return new Promise(s=>setTimeout(()=>s(),t))}static dateTimeDeserializer(r,t){if(typeof t=="string"){let s=new Date(t);if(!isNaN(s.valueOf()))return s}return t}async _processResponse(r,t){return new Promise(async(s,o)=>{let n=r.message.statusCode,i={statusCode:n,result:null,headers:{}};n==C.NotFound&&s(i);let a,c;try{c=await r.readBody(),c&&c.length>0&&(t&&t.deserializeDates?a=JSON.parse(c,Pe.dateTimeDeserializer):a=JSON.parse(c),i.result=a),i.headers=r.message.headers}catch(u){}if(n>299){let u;a&&a.message?u=a.message:c&&c.length>0?u=c:u="Failed request: ("+n+")";let l=new me(u,n);l.result=i.result,o(l)}else s(i)})}};O.HttpClient=Pe});var Wr=g(v=>{"use strict";var ho=v&&v.__createBinding||(Object.create?function(e,r,t,s){s===void 0&&(s=t),Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,s){s===void 0&&(s=t),e[s]=r[t]}),To=v&&v.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Eo=v&&v.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&ho(r,e,t);return To(r,e),r};Object.defineProperty(v,"__esModule",{value:!0});v.getApiBaseUrl=v.getProxyAgent=v.getAuthString=void 0;var wo=Eo(zr());function bo(e,r){if(!e&&!r.auth)throw new Error("Parameter token or opts.auth is required");if(e&&r.auth)throw new Error("Parameters token and opts.auth may not both be specified");return typeof r.auth=="string"?r.auth:`token ${e}`}v.getAuthString=bo;function yo(e){return new wo.HttpClient().getAgent(e)}v.getProxyAgent=yo;function _o(){return process.env.GITHUB_API_URL||"https://api.github.com"}v.getApiBaseUrl=_o});var ge=g(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});function vo(){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})`:""}He.getUserAgent=vo});var Kr=g((qi,Vr)=>{Vr.exports=Jr;function Jr(e,r,t,s){if(typeof t!="function")throw new Error("method for before hook must be a function");return s||(s={}),Array.isArray(r)?r.reverse().reduce(function(o,n){return Jr.bind(null,e,n,o,s)},t)():Promise.resolve().then(function(){return e.registry[r]?e.registry[r].reduce(function(o,n){return n.hook.bind(null,o,s)},t)():t(s)})}});var Zr=g((Di,Yr)=>{Yr.exports=Go;function Go(e,r,t,s){var o=s;e.registry[t]||(e.registry[t]=[]),r==="before"&&(s=function(n,i){return Promise.resolve().then(o.bind(null,i)).then(n.bind(null,i))}),r==="after"&&(s=function(n,i){var a;return Promise.resolve().then(n.bind(null,i)).then(function(c){return a=c,o(a,i)}).then(function(){return a})}),r==="error"&&(s=function(n,i){return Promise.resolve().then(n.bind(null,i)).catch(function(a){return o(a,i)})}),e.registry[t].push({hook:s,orig:o})}});var Qr=g((ji,Xr)=>{Xr.exports=ko;function ko(e,r,t){if(!!e.registry[r]){var s=e.registry[r].map(function(o){return o.orig}).indexOf(t);s!==-1&&e.registry[r].splice(s,1)}}});var it=g((xi,fe)=>{var et=Kr(),Oo=Zr(),Po=Qr(),rt=Function.bind,tt=rt.bind(rt);function st(e,r,t){var s=tt(Po,null).apply(null,t?[r,t]:[r]);e.api={remove:s},e.remove=s,["before","error","after","wrap"].forEach(function(o){var n=t?[r,o,t]:[r,o];e[o]=e.api[o]=tt(Oo,null).apply(null,n)})}function So(){var e="h",r={registry:{}},t=et.bind(null,r,e);return st(t,r,e),t}function ot(){var e={registry:{}},r=et.bind(null,e);return st(r,e),r}var nt=!1;function se(){return nt||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),nt=!0),ot()}se.Singular=So.bind();se.Collection=ot.bind();fe.exports=se;fe.exports.Hook=se;fe.exports.Singular=se.Singular;fe.exports.Collection=se.Collection});var ze=g(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});function at(e){return Object.prototype.toString.call(e)==="[object Object]"}function Ao(e){var r,t;return at(e)===!1?!1:(r=e.constructor,r===void 0?!0:(t=r.prototype,!(at(t)===!1||t.hasOwnProperty("isPrototypeOf")===!1)))}Me.isPlainObject=Ao});var gt=g(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});var Ro=ze(),Uo=ge();function Fo(e){return e?Object.keys(e).reduce((r,t)=>(r[t.toLowerCase()]=e[t],r),{}):{}}function ct(e,r){let t=Object.assign({},e);return Object.keys(r).forEach(s=>{Ro.isPlainObject(r[s])?s in e?t[s]=ct(e[s],r[s]):Object.assign(t,{[s]:r[s]}):Object.assign(t,{[s]:r[s]})}),t}function ut(e){for(let r in e)e[r]===void 0&&delete e[r];return e}function Ve(e,r,t){if(typeof r=="string"){let[o,n]=r.split(" ");t=Object.assign(n?{method:o,url:n}:{url:o},t)}else t=Object.assign({},r);t.headers=Fo(t.headers),ut(t),ut(t.headers);let s=ct(e||{},t);return e&&e.mediaType.previews.length&&(s.mediaType.previews=e.mediaType.previews.filter(o=>!s.mediaType.previews.includes(o)).concat(s.mediaType.previews)),s.mediaType.previews=s.mediaType.previews.map(o=>o.replace(/-preview/,"")),s}function Co(e,r){let t=/\?/.test(e)?"&":"?",s=Object.keys(r);return s.length===0?e:e+t+s.map(o=>o==="q"?"q="+r.q.split("+").map(encodeURIComponent).join("+"):`${o}=${encodeURIComponent(r[o])}`).join("&")}var qo=/\{[^}]+\}/g;function Do(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function jo(e){let r=e.match(qo);return r?r.map(Do).reduce((t,s)=>t.concat(s),[]):[]}function lt(e,r){return Object.keys(e).filter(t=>!r.includes(t)).reduce((t,s)=>(t[s]=e[s],t),{})}function pt(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(r){return/%[0-9A-Fa-f]/.test(r)||(r=encodeURI(r).replace(/%5B/g,"[").replace(/%5D/g,"]")),r}).join("")}function oe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(r){return"%"+r.charCodeAt(0).toString(16).toUpperCase()})}function he(e,r,t){return r=e==="+"||e==="#"?pt(r):oe(r),t?oe(t)+"="+r:r}function ne(e){return e!=null}function Je(e){return e===";"||e==="&"||e==="?"}function xo(e,r,t,s){var o=e[t],n=[];if(ne(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")o=o.toString(),s&&s!=="*"&&(o=o.substring(0,parseInt(s,10))),n.push(he(r,o,Je(r)?t:""));else if(s==="*")Array.isArray(o)?o.filter(ne).forEach(function(i){n.push(he(r,i,Je(r)?t:""))}):Object.keys(o).forEach(function(i){ne(o[i])&&n.push(he(r,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(ne).forEach(function(a){i.push(he(r,a))}):Object.keys(o).forEach(function(a){ne(o[a])&&(i.push(oe(a)),i.push(he(r,o[a].toString())))}),Je(r)?n.push(oe(t)+"="+i.join(",")):i.length!==0&&n.push(i.join(","))}else r===";"?ne(o)&&n.push(oe(t)):o===""&&(r==="&"||r==="?")?n.push(oe(t)+"="):o===""&&n.push("");return n}function Io(e){return{expand:Lo.bind(null,e)}}function Lo(e,r){var t=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(s,o,n){if(o){let a="",c=[];if(t.indexOf(o.charAt(0))!==-1&&(a=o.charAt(0),o=o.substr(1)),o.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(xo(r,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return pt(n)})}function dt(e){let r=e.method.toUpperCase(),t=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),s=Object.assign({},e.headers),o,n=lt(e,["method","baseUrl","url","headers","request","mediaType"]),i=jo(t);t=Io(t).expand(n),/^http/.test(t)||(t=e.baseUrl+t);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=lt(n,a);if(!/application\/octet-stream/i.test(s.accept)&&(e.mediaType.format&&(s.accept=s.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=s.accept.match(/[\w-]+(?=-preview)/g)||[];s.accept=l.concat(e.mediaType.previews).map(p=>{let f=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${p}-preview${f}`}).join(",")}return["GET","HEAD"].includes(r)?t=Co(t,c):"data"in c?o=c.data:Object.keys(c).length?o=c:s["content-length"]=0,!s["content-type"]&&typeof o!="undefined"&&(s["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(r)&&typeof o=="undefined"&&(o=""),Object.assign({method:r,url:t,headers:s},typeof o!="undefined"?{body:o}:null,e.request?{request:e.request}:null)}function Bo(e,r,t){return dt(Ve(e,r,t))}function mt(e,r){let t=Ve(e,r),s=Bo.bind(null,t);return Object.assign(s,{DEFAULTS:t,defaults:mt.bind(null,t),merge:Ve.bind(null,t),parse:dt})}var No="6.0.11",$o=`octokit-endpoint.js/${No} ${Uo.getUserAgent()}`,Ho={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":$o},mediaType:{format:"",previews:[]}},Mo=mt(null,Ho);We.endpoint=Mo});var kt=g((D,ft)=>{"use strict";Object.defineProperty(D,"__esModule",{value:!0});function Te(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var q=Te(require("stream")),ht=Te(require("http")),Ke=Te(require("url")),zo=Te(require("https")),K=Te(require("zlib")),Wo=q.Readable,x=Symbol("buffer"),Ye=Symbol("type"),Y=class{constructor(){this[Ye]="";let r=arguments[0],t=arguments[1],s=[],o=0;if(r){let i=r,a=Number(i.length);for(let c=0;c1&&arguments[1]!==void 0?arguments[1]:{},s=t.size;let o=s===void 0?0:s;var n=t.timeout;let i=n===void 0?0:n;e==null?e=null:Et(e)?e=Buffer.from(e.toString()):Ee(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 q||(e=Buffer.from(String(e)))),this[L]={body:e,disturbed:!1,error:null},this.size=o,this.timeout=i,e instanceof q&&e.on("error",function(a){let c=a.name==="AbortError"?a:new y(`Invalid response body while trying to fetch ${r.url}: ${a.message}`,"system",a);r[L].error=c})}w.prototype={get body(){return this[L].body},get bodyUsed(){return this[L].disturbed},arrayBuffer(){return ie.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 ie.call(this).then(function(r){return Object.assign(new Y([],{type:e.toLowerCase()}),{[x]:r})})},json(){var e=this;return ie.call(this).then(function(r){try{return JSON.parse(r.toString())}catch(t){return w.Promise.reject(new y(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return ie.call(this).then(function(e){return e.toString()})},buffer(){return ie.call(this)},textConverted(){var e=this;return ie.call(this).then(function(r){return Vo(r,e.headers)})}};Object.defineProperties(w.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});w.mixIn=function(e){for(let r of Object.getOwnPropertyNames(w.prototype))if(!(r in e)){let t=Object.getOwnPropertyDescriptor(w.prototype,r);Object.defineProperty(e,r,t)}};function ie(){var e=this;if(this[L].disturbed)return w.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[L].disturbed=!0,this[L].error)return w.Promise.reject(this[L].error);let r=this.body;if(r===null)return w.Promise.resolve(Buffer.alloc(0));if(Ee(r)&&(r=r.stream()),Buffer.isBuffer(r))return w.Promise.resolve(r);if(!(r instanceof q))return w.Promise.resolve(Buffer.alloc(0));let t=[],s=0,o=!1;return new w.Promise(function(n,i){let a;e.timeout&&(a=setTimeout(function(){o=!0,i(new y(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),r.on("error",function(c){c.name==="AbortError"?(o=!0,i(c)):i(new y(`Invalid response body while trying to fetch ${e.url}: ${c.message}`,"system",c))}),r.on("data",function(c){if(!(o||c===null)){if(e.size&&s+c.length>e.size){o=!0,i(new y(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}s+=c.length,t.push(c)}}),r.on("end",function(){if(!o){clearTimeout(a);try{n(Buffer.concat(t,s))}catch(c){i(new y(`Could not create Buffer from response body for ${e.url}: ${c.message}`,"system",c))}}})})}function Vo(e,r){if(typeof Ze!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=r.get("content-type"),s="utf-8",o,n;return t&&(o=/charset=([^;]*)/i.exec(t)),n=e.slice(0,1024).toString(),!o&&n&&(o=/0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[E]=Object.create(null),r instanceof P){let t=r.raw(),s=Object.keys(t);for(let o of s)for(let n of t[o])this.append(o,n);return}if(r!=null)if(typeof r=="object"){let t=r[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let s=[];for(let o of r){if(typeof o!="object"||typeof o[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");s.push(Array.from(o))}for(let o of s){if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(o[0],o[1])}}else for(let s of Object.keys(r)){let o=r[s];this.append(s,o)}}else throw new TypeError("Provided initializer must be an object")}get(r){r=`${r}`,we(r);let t=ae(this[E],r);return t===void 0?null:this[E][t].join(", ")}forEach(r){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,s=Qe(this),o=0;for(;o1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[E]).sort().map(r==="key"?function(s){return s.toLowerCase()}:r==="value"?function(s){return e[E][s].join(", ")}:function(s){return[s.toLowerCase(),e[E][s].join(", ")]})}var rr=Symbol("internal");function er(e,r){let t=Object.create(tr);return t[rr]={target:e,kind:r,index:0},t}var tr=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==tr)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[rr];let r=e.target,t=e.kind,s=e.index,o=Qe(r,t),n=o.length;return s>=n?{value:void 0,done:!0}:(this[rr].index=s+1,{value:o[s],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(tr,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function Ko(e){let r=Object.assign({__proto__:null},e[E]),t=ae(e[E],"Host");return t!==void 0&&(r[t]=r[t][0]),r}function Yo(e){let r=new P;for(let t of Object.keys(e))if(!_t.test(t))if(Array.isArray(e[t]))for(let s of e[t])Xe.test(s)||(r[E][t]===void 0?r[E][t]=[s]:r[E][t].push(s));else Xe.test(e[t])||(r[E][t]=[e[t]]);return r}var V=Symbol("Response internals"),Zo=ht.STATUS_CODES,S=class{constructor(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};w.call(this,r,t);let s=t.status||200,o=new P(t.headers);if(r!=null&&!o.has("Content-Type")){let n=bt(r);n&&o.append("Content-Type",n)}this[V]={url:t.url,status:s,statusText:t.statusText||Zo[s],headers:o,counter:t.counter}}get url(){return this[V].url||""}get status(){return this[V].status}get ok(){return this[V].status>=200&&this[V].status<300}get redirected(){return this[V].counter>0}get statusText(){return this[V].statusText}get headers(){return this[V].headers}clone(){return new S(wt(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};w.mixIn(S.prototype);Object.defineProperties(S.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(S.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var I=Symbol("Request internals"),sr=Ke.parse,Xo=Ke.format,Qo="destroy"in q.Readable.prototype;function Se(e){return typeof e=="object"&&typeof e[I]=="object"}function en(e){let r=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(r&&r.constructor.name==="AbortSignal")}var B=class{constructor(r){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s;Se(r)?s=sr(r.url):(r&&r.href?s=sr(r.href):s=sr(`${r}`),r={});let o=t.method||r.method||"GET";if(o=o.toUpperCase(),(t.body!=null||Se(r)&&r.body!==null)&&(o==="GET"||o==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let n=t.body!=null?t.body:Se(r)&&r.body!==null?wt(r):null;w.call(this,n,{timeout:t.timeout||r.timeout||0,size:t.size||r.size||0});let i=new P(t.headers||r.headers||{});if(n!=null&&!i.has("Content-Type")){let c=bt(n);c&&i.append("Content-Type",c)}let a=Se(r)?r.signal:null;if("signal"in t&&(a=t.signal),a!=null&&!en(a))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[I]={method:o,redirect:t.redirect||r.redirect||"follow",headers:i,parsedURL:s,signal:a},this.follow=t.follow!==void 0?t.follow:r.follow!==void 0?r.follow:20,this.compress=t.compress!==void 0?t.compress:r.compress!==void 0?r.compress:!0,this.counter=t.counter||r.counter||0,this.agent=t.agent||r.agent}get method(){return this[I].method}get url(){return Xo(this[I].parsedURL)}get headers(){return this[I].headers}get redirect(){return this[I].redirect}get signal(){return this[I].signal}clone(){return new B(this)}};w.mixIn(B.prototype);Object.defineProperty(B.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(B.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function rn(e){let r=e[I].parsedURL,t=new P(e[I].headers);if(t.has("Accept")||t.set("Accept","*/*"),!r.protocol||!r.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(r.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof q.Readable&&!Qo)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let s=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(s="0"),e.body!=null){let n=yt(e);typeof n=="number"&&(s=String(n))}s&&t.set("Content-Length",s),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let o=e.agent;return typeof o=="function"&&(o=o(r)),!t.has("Connection")&&!o&&t.set("Connection","close"),Object.assign({},r,{method:e.method,headers:Ko(t),agent:o})}function be(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}be.prototype=Object.create(Error.prototype);be.prototype.constructor=be;be.prototype.name="AbortError";var Gt=q.PassThrough,tn=Ke.resolve;function J(e,r){if(!J.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return w.Promise=J.Promise,new J.Promise(function(t,s){let o=new B(e,r),n=rn(o),i=(n.protocol==="https:"?zo:ht).request,a=o.signal,c=null,u=function(){let M=new be("The user aborted a request.");s(M),o.body&&o.body instanceof q.Readable&&o.body.destroy(M),!(!c||!c.body)&&c.body.emit("error",M)};if(a&&a.aborted){u();return}let l=function(){u(),b()},p=i(n),f;a&&a.addEventListener("abort",l);function b(){p.abort(),a&&a.removeEventListener("abort",l),clearTimeout(f)}o.timeout&&p.once("socket",function(h){f=setTimeout(function(){s(new y(`network timeout at: ${o.url}`,"request-timeout")),b()},o.timeout)}),p.on("error",function(h){s(new y(`request to ${o.url} failed, reason: ${h.message}`,"system",h)),b()}),p.on("response",function(h){clearTimeout(f);let M=Yo(h.headers);if(J.isRedirect(h.statusCode)){let qe=M.get("Location"),Q=qe===null?null:tn(o.url,qe);switch(o.redirect){case"error":s(new y(`uri requested responds with a redirect, redirect mode is set to error: ${o.url}`,"no-redirect")),b();return;case"manual":if(Q!==null)try{M.set("Location",Q)}catch(ws){s(ws)}break;case"follow":if(Q===null)break;if(o.counter>=o.follow){s(new y(`maximum redirect reached at: ${o.url}`,"max-redirect")),b();return}let _e={headers:new P(o.headers),follow:o.follow,counter:o.counter+1,agent:o.agent,compress:o.compress,method:o.method,body:o.body,signal:o.signal,timeout:o.timeout,size:o.size};if(h.statusCode!==303&&o.body&&yt(o)===null){s(new y("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}(h.statusCode===303||(h.statusCode===301||h.statusCode===302)&&o.method==="POST")&&(_e.method="GET",_e.body=void 0,_e.headers.delete("content-length")),t(J(new B(Q,_e))),b();return}}h.once("end",function(){a&&a.removeEventListener("abort",l)});let k=h.pipe(new Gt),le={url:o.url,status:h.statusCode,statusText:h.statusMessage,headers:M,size:o.size,timeout:o.timeout,counter:o.counter},X=M.get("Content-Encoding");if(!o.compress||o.method==="HEAD"||X===null||h.statusCode===204||h.statusCode===304){c=new S(k,le),t(c);return}let Es={flush:K.Z_SYNC_FLUSH,finishFlush:K.Z_SYNC_FLUSH};if(X=="gzip"||X=="x-gzip"){k=k.pipe(K.createGunzip(Es)),c=new S(k,le),t(c);return}if(X=="deflate"||X=="x-deflate"){h.pipe(new Gt).once("data",function(Q){(Q[0]&15)==8?k=k.pipe(K.createInflate()):k=k.pipe(K.createInflateRaw()),c=new S(k,le),t(c)});return}if(X=="br"&&typeof K.createBrotliDecompress=="function"){k=k.pipe(K.createBrotliDecompress()),c=new S(k,le),t(c);return}c=new S(k,le),t(c)}),Jo(p,o)})}J.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};J.Promise=global.Promise;ft.exports=D=J;Object.defineProperty(D,"__esModule",{value:!0});D.default=D;D.Headers=P;D.Request=B;D.Response=S;D.FetchError=y});var Pt=g(or=>{"use strict";Object.defineProperty(or,"__esModule",{value:!0});var Ot=class extends Error{constructor(r){super(r);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};or.Deprecation=Ot});var Rt=g((Ni,St)=>{St.exports=At;function At(e,r){if(e&&r)return At(e)(r);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(s){t[s]=e[s]}),t;function t(){for(var s=new Array(arguments.length),o=0;o{var Ut=Rt();nr.exports=Ut(Ae);nr.exports.strict=Ut(Ft);Ae.proto=Ae(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Ae(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Ft(this)},configurable:!0})});function Ae(e){var r=function(){return r.called?r.value:(r.called=!0,r.value=e.apply(this,arguments))};return r.called=!1,r}function Ft(e){var r=function(){if(r.called)throw new Error(r.onceError);return r.called=!0,r.value=e.apply(this,arguments)},t=e.name||"Function wrapped with `once`";return r.onceError=t+" shouldn't be called more than once",r.called=!1,r}});var Dt=g(ir=>{"use strict";Object.defineProperty(ir,"__esModule",{value:!0});function sn(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var on=Pt(),nn=sn(Ct()),an=nn(e=>console.warn(e)),qt=class extends Error{constructor(r,t,s){super(r);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t,Object.defineProperty(this,"code",{get(){return an(new on.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),this.headers=s.headers||{};let o=Object.assign({},s.request);s.request.headers.authorization&&(o.headers=Object.assign({},s.request.headers,{authorization:s.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};ir.RequestError=qt});var ur=g(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});function cn(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var un=gt(),ln=ge(),pn=ze(),dn=cn(kt()),ye=Dt(),mn="5.4.14";function gn(e){return e.arrayBuffer()}function jt(e){(pn.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let r={},t,s;return(e.request&&e.request.fetch||dn)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(n=>{s=n.url,t=n.status;for(let a of n.headers)r[a[0]]=a[1];if(t===204||t===205)return;if(e.method==="HEAD"){if(t<400)return;throw new ye.RequestError(n.statusText,t,{headers:r,request:e})}if(t===304)throw new ye.RequestError("Not modified",t,{headers:r,request:e});if(t>=400)return n.text().then(a=>{let c=new ye.RequestError(a,t,{headers:r,request:e});try{let u=JSON.parse(c.message);Object.assign(c,u);let l=u.errors;c.message=c.message+": "+l.map(JSON.stringify).join(", ")}catch(u){}throw c});let i=n.headers.get("content-type");return/application\/json/.test(i)?n.json():!i||/^text\/|charset=utf-8$/.test(i)?n.text():gn(n)}).then(n=>({status:t,url:s,headers:r,data:n})).catch(n=>{throw n instanceof ye.RequestError?n:new ye.RequestError(n.message,500,{headers:r,request:e})})}function cr(e,r){let t=e.defaults(r);return Object.assign(function(o,n){let i=t.merge(o,n);if(!i.request||!i.request.hook)return jt(t.parse(i));let a=(c,u)=>jt(t.parse(t.merge(c,u)));return Object.assign(a,{endpoint:t,defaults:cr.bind(null,t)}),i.request.hook(a,i)},{endpoint:t,defaults:cr.bind(null,t)})}var fn=cr(un.endpoint,{headers:{"user-agent":`octokit-request.js/${mn} ${ln.getUserAgent()}`}});ar.request=fn});var Bt=g(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});var xt=ur(),hn=ge(),Tn="4.6.1",Lt=class extends Error{constructor(r,t){let s=t.data.errors[0].message;super(s);Object.assign(this,t.data),Object.assign(this,{headers:t.headers}),this.name="GraphqlError",this.request=r,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},En=["method","baseUrl","url","headers","request","query","mediaType"],wn=["query","method","url"],It=/\/api\/v3\/?$/;function bn(e,r,t){if(t){if(typeof r=="string"&&"query"in t)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in t)if(!!wn.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let s=typeof r=="string"?Object.assign({query:r},t):r,o=Object.keys(s).reduce((i,a)=>En.includes(a)?(i[a]=s[a],i):(i.variables||(i.variables={}),i.variables[a]=s[a],i),{}),n=s.baseUrl||e.endpoint.DEFAULTS.baseUrl;return It.test(n)&&(o.url=n.replace(It,"/api/graphql")),e(o).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new Lt(o,{headers:a,data:i.data})}return i.data.data})}function lr(e,r){let t=e.defaults(r);return Object.assign((o,n)=>bn(t,o,n),{defaults:lr.bind(null,t),endpoint:xt.request.endpoint})}var yn=lr(xt.request,{headers:{"user-agent":`octokit-graphql.js/${Tn} ${hn.getUserAgent()}`},method:"POST",url:"/graphql"});function _n(e){return lr(e,{method:"POST",url:"/graphql"})}Re.graphql=yn;Re.withCustomRequest=_n});var Nt=g(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});async function vn(e){let r=e.split(/\./).length===3?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:r}}function Gn(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function kn(e,r,t,s){let o=r.endpoint.merge(t,s);return o.headers.authorization=Gn(e),r(o)}var On=function(r){if(!r)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof r!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return r=r.replace(/^(token|bearer) +/i,""),Object.assign(vn.bind(null,r),{hook:kn.bind(null,r)})};pr.createTokenAuth=On});var mr=g(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});var Pn=ge(),Sn=it(),$t=ur(),An=Bt(),Rn=Nt();function Un(e,r){if(e==null)return{};var t={},s=Object.keys(e),o,n;for(n=0;n=0)&&(t[o]=e[o]);return t}function Fn(e,r){if(e==null)return{};var t=Un(e,r),s,o;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}var Ht="3.3.1",Ue=class{constructor(r={}){let t=new Sn.Collection,s={baseUrl:$t.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},r.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};if(s.headers["user-agent"]=[r.userAgent,`octokit-core.js/${Ht} ${Pn.getUserAgent()}`].filter(Boolean).join(" "),r.baseUrl&&(s.baseUrl=r.baseUrl),r.previews&&(s.mediaType.previews=r.previews),r.timeZone&&(s.headers["time-zone"]=r.timeZone),this.request=$t.request.defaults(s),this.graphql=An.withCustomRequest(this.request).defaults(s),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},r.log),this.hook=t,r.authStrategy){let{authStrategy:n}=r,i=Fn(r,["authStrategy"]),a=n(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},r.auth));t.wrap("request",a.hook),this.auth=a}else if(!r.auth)this.auth=async()=>({type:"unauthenticated"});else{let n=Rn.createTokenAuth(r.auth);t.wrap("request",n.hook),this.auth=n}this.constructor.plugins.forEach(n=>{Object.assign(this,n(this,r))})}static defaults(r){return class extends this{constructor(...s){let o=s[0]||{};if(typeof r=="function"){super(r(o));return}super(Object.assign({},r,o,o.userAgent&&r.userAgent?{userAgent:`${o.userAgent} ${r.userAgent}`}:null))}}}static plugin(...r){var t;let s=this.plugins;return t=class extends this{},t.plugins=s.concat(r.filter(n=>!s.includes(n))),t}};Ue.VERSION=Ht;Ue.plugins=[];dr.Octokit=Ue});var zt=g(gr=>{"use strict";Object.defineProperty(gr,"__esModule",{value:!0});var Cn={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},qn="4.13.5";function jn(e,r){let t={};for(let[s,o]of Object.entries(r))for(let[n,i]of Object.entries(o)){let[a,c,u]=i,[l,p]=a.split(/ /),f=Object.assign({method:l,url:p},c);t[s]||(t[s]={});let b=t[s];if(u){b[n]=Dn(e,s,n,f,u);continue}b[n]=e.request.defaults(f)}return t}function Dn(e,r,t,s,o){let n=e.request.defaults(s);function i(...a){let c=n.endpoint.merge(...a);if(o.mapToData)return c=Object.assign({},c,{data:c[o.mapToData],[o.mapToData]:void 0}),n(c);if(o.renamed){let[u,l]=o.renamed;e.log.warn(`octokit.${r}.${t}() has been renamed to octokit.${u}.${l}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let u=n.endpoint.merge(...a);for(let[l,p]of Object.entries(o.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${r}.${t}()". Use "${p}" instead`),p in u||(u[p]=u[l]),delete u[l]);return n(u)}return n(...a)}return Object.assign(i,n)}function Mt(e){return jn(e,Cn)}Mt.VERSION=qn;gr.restEndpointMethods=Mt});var Yt=g(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});var xn="2.13.2";function Ln(e){if(!("total_count"in e.data&&!("url"in e.data)))return e;let t=e.data.incomplete_results,s=e.data.repository_selection,o=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let n=Object.keys(e.data)[0],i=e.data[n];return e.data=i,typeof t!="undefined"&&(e.data.incomplete_results=t),typeof s!="undefined"&&(e.data.repository_selection=s),e.data.total_count=o,e}function fr(e,r,t){let s=typeof r=="function"?r.endpoint(t):e.request.endpoint(r,t),o=typeof r=="function"?r:e.request,n=s.method,i=s.headers,a=s.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};let c=await o({method:n,url:a,headers:i}),u=Ln(c);return a=((u.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:u}}})}}function Vt(e,r,t,s){return typeof t=="function"&&(s=t,t=void 0),Wt(e,[],fr(e,r,t)[Symbol.asyncIterator](),s)}function Wt(e,r,t,s){return t.next().then(o=>{if(o.done)return r;let n=!1;function i(){n=!0}return r=r.concat(s?s(o.value,i):o.value.data),n?r:Wt(e,r,t,s)})}var In=Object.assign(Vt,{iterator:fr}),Jt=["GET /app/installations","GET /applications/grants","GET /authorizations","GET /enterprises/{enterprise}/actions/permissions/organizations","GET /enterprises/{enterprise}/actions/runner-groups","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners","GET /enterprises/{enterprise}/actions/runners","GET /enterprises/{enterprise}/actions/runners/downloads","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runner-groups","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/runners/downloads","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/credential-authorizations","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/projects","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/team-sync/groups","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runners/downloads","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/git/matching-refs/{ref}","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /scim/v2/enterprises/{enterprise}/Groups","GET /scim/v2/enterprises/{enterprise}/Users","GET /scim/v2/organizations/{org}/Users","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/team-sync/group-mappings","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function Bn(e){return typeof e=="string"?Jt.includes(e):!1}function Kt(e){return{paginate:Object.assign(Vt.bind(null,e),{iterator:fr.bind(null,e)})}}Kt.VERSION=xn;ce.composePaginateRest=In;ce.isPaginatingEndpoint=Bn;ce.paginateRest=Kt;ce.paginatingEndpoints=Jt});var Qt=g(G=>{"use strict";var Nn=G&&G.__createBinding||(Object.create?function(e,r,t,s){s===void 0&&(s=t),Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,s){s===void 0&&(s=t),e[s]=r[t]}),$n=G&&G.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Zt=G&&G.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&Nn(r,e,t);return $n(r,e),r};Object.defineProperty(G,"__esModule",{value:!0});G.getOctokitOptions=G.GitHub=G.context=void 0;var Hn=Zt(Le()),hr=Zt(Wr()),Mn=mr(),zn=zt(),Wn=Yt();G.context=new Hn.Context;var Xt=hr.getApiBaseUrl(),Vn={baseUrl:Xt,request:{agent:hr.getProxyAgent(Xt)}};G.GitHub=Mn.Octokit.plugin(zn.restEndpointMethods,Wn.paginateRest).defaults(Vn);function Jn(e,r){let t=Object.assign({},r||{}),s=hr.getAuthString(e,t);return s&&(t.auth=s),t}G.getOctokitOptions=Jn});var rs=g(A=>{"use strict";var Kn=A&&A.__createBinding||(Object.create?function(e,r,t,s){s===void 0&&(s=t),Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,s){s===void 0&&(s=t),e[s]=r[t]}),Yn=A&&A.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Zn=A&&A.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&Kn(r,e,t);return Yn(r,e),r};Object.defineProperty(A,"__esModule",{value:!0});A.getOctokit=A.context=void 0;var Xn=Zn(Le()),es=Qt();A.context=new Xn.Context;function Qn(e,r){return new es.GitHub(es.getOctokitOptions(e,r))}A.getOctokit=Qn});var os=g(d=>{"use strict";var Fe=d&&d.__awaiter||function(e,r,t,s){function o(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function a(l){try{u(s.next(l))}catch(p){i(p)}}function c(l){try{u(s.throw(l))}catch(p){i(p)}}function u(l){l.done?n(l.value):o(l.value).then(a,c)}u((s=s.apply(e,r||[])).next())})},R;Object.defineProperty(d,"__esModule",{value:!0});var ei=require("assert"),ri=require("fs"),ue=require("path");R=ri.promises,d.chmod=R.chmod,d.copyFile=R.copyFile,d.lstat=R.lstat,d.mkdir=R.mkdir,d.readdir=R.readdir,d.readlink=R.readlink,d.rename=R.rename,d.rmdir=R.rmdir,d.stat=R.stat,d.symlink=R.symlink,d.unlink=R.unlink;d.IS_WINDOWS=process.platform==="win32";function ti(e){return Fe(this,void 0,void 0,function*(){try{yield d.stat(e)}catch(r){if(r.code==="ENOENT")return!1;throw r}return!0})}d.exists=ti;function si(e,r=!1){return Fe(this,void 0,void 0,function*(){return(r?yield d.stat(e):yield d.lstat(e)).isDirectory()})}d.isDirectory=si;function ni(e){if(e=oi(e),!e)throw new Error('isRooted() parameter "p" cannot be empty');return d.IS_WINDOWS?e.startsWith("\\")||/^[A-Z]:/i.test(e):e.startsWith("/")}d.isRooted=ni;function ts(e,r=1e3,t=1){return Fe(this,void 0,void 0,function*(){if(ei.ok(e,"a path argument must be provided"),e=ue.resolve(e),t>=r)return d.mkdir(e);try{yield d.mkdir(e);return}catch(s){switch(s.code){case"ENOENT":{yield ts(ue.dirname(e),r,t+1),yield d.mkdir(e);return}default:{let o;try{o=yield d.stat(e)}catch(n){throw s}if(!o.isDirectory())throw s}}}})}d.mkdirP=ts;function ii(e,r){return Fe(this,void 0,void 0,function*(){let t;try{t=yield d.stat(e)}catch(o){o.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${o}`)}if(t&&t.isFile()){if(d.IS_WINDOWS){let o=ue.extname(e).toUpperCase();if(r.some(n=>n.toUpperCase()===o))return e}else if(ss(t))return e}let s=e;for(let o of r){e=s+o,t=void 0;try{t=yield d.stat(e)}catch(n){n.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${n}`)}if(t&&t.isFile()){if(d.IS_WINDOWS){try{let n=ue.dirname(e),i=ue.basename(e).toUpperCase();for(let a of yield d.readdir(n))if(i===a.toUpperCase()){e=ue.join(n,a);break}}catch(n){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${n}`)}return e}else if(ss(t))return e}}return""})}d.tryGetExecutablePath=ii;function oi(e){return e=e||"",d.IS_WINDOWS?(e=e.replace(/\//g,"\\"),e.replace(/\\\\+/g,"\\")):e.replace(/\/\/+/g,"/")}function ss(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}});var us=g(N=>{"use strict";var Z=N&&N.__awaiter||function(e,r,t,s){function o(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function a(l){try{u(s.next(l))}catch(p){i(p)}}function c(l){try{u(s.throw(l))}catch(p){i(p)}}function u(l){l.done?n(l.value):o(l.value).then(a,c)}u((s=s.apply(e,r||[])).next())})};Object.defineProperty(N,"__esModule",{value:!0});var ai=require("child_process"),$=require("path"),ci=require("util"),m=os(),Tr=ci.promisify(ai.exec);function li(e,r,t={}){return Z(this,void 0,void 0,function*(){let{force:s,recursive:o}=ui(t),n=(yield m.exists(r))?yield m.stat(r):null;if(n&&n.isFile()&&!s)return;let i=n&&n.isDirectory()?$.join(r,$.basename(e)):r;if(!(yield m.exists(e)))throw new Error(`no such file or directory: ${e}`);if((yield m.stat(e)).isDirectory())if(o)yield ns(e,i,0,s);else throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);else{if($.relative(e,i)==="")throw new Error(`'${i}' and '${e}' are the same file`);yield is(e,i,s)}})}N.cp=li;function pi(e,r,t={}){return Z(this,void 0,void 0,function*(){if(yield m.exists(r)){let s=!0;if((yield m.isDirectory(r))&&(r=$.join(r,$.basename(e)),s=yield m.exists(r)),s)if(t.force==null||t.force)yield as(r);else throw new Error("Destination already exists")}yield Er($.dirname(r)),yield m.rename(e,r)})}N.mv=pi;function as(e){return Z(this,void 0,void 0,function*(){if(m.IS_WINDOWS){try{(yield m.isDirectory(e,!0))?yield Tr(`rd /s /q "${e}"`):yield Tr(`del /f /a "${e}"`)}catch(r){if(r.code!=="ENOENT")throw r}try{yield m.unlink(e)}catch(r){if(r.code!=="ENOENT")throw r}}else{let r=!1;try{r=yield m.isDirectory(e)}catch(t){if(t.code!=="ENOENT")throw t;return}r?yield Tr(`rm -rf "${e}"`):yield m.unlink(e)}})}N.rmRF=as;function Er(e){return Z(this,void 0,void 0,function*(){yield m.mkdirP(e)})}N.mkdirP=Er;function cs(e,r){return Z(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");if(r&&!(yield cs(e,!1)))throw m.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 t=[];if(m.IS_WINDOWS&&process.env.PATHEXT)for(let o of process.env.PATHEXT.split($.delimiter))o&&t.push(o);if(m.isRooted(e)){let o=yield m.tryGetExecutablePath(e,t);return o||""}if(e.includes("/")||m.IS_WINDOWS&&e.includes("\\"))return"";let s=[];if(process.env.PATH)for(let o of process.env.PATH.split($.delimiter))o&&s.push(o);for(let o of s){let n=yield m.tryGetExecutablePath(o+$.sep+e,t);if(n)return n}return""}catch(t){throw new Error(`which failed with message ${t.message}`)}})}N.which=cs;function ui(e){let r=e.force==null?!0:e.force,t=Boolean(e.recursive);return{force:r,recursive:t}}function ns(e,r,t,s){return Z(this,void 0,void 0,function*(){if(t>=255)return;t++,yield Er(r);let o=yield m.readdir(e);for(let n of o){let i=`${e}/${n}`,a=`${r}/${n}`;(yield m.lstat(i)).isDirectory()?yield ns(i,a,t,s):yield is(i,a,s)}yield m.chmod(r,(yield m.stat(e)).mode)})}function is(e,r,t){return Z(this,void 0,void 0,function*(){if((yield m.lstat(e)).isSymbolicLink()){try{yield m.lstat(r),yield m.unlink(r)}catch(o){o.code==="EPERM"&&(yield m.chmod(r,"0666"),yield m.unlink(r))}let s=yield m.readlink(e);yield m.symlink(s,r,m.IS_WINDOWS?"junction":null)}else(!(yield m.exists(r))||t)&&(yield m.copyFile(e,r))})}});var U=pe(Cr()),Ce=pe(rs()),hs=pe(us());var ls=pe(require("child_process"));function H(e){return e.message!==void 0}function ds(e,r,t){let s=ps(`${e} breaking ${r} --against ${t}`);if(H(s))return s;let o=ps(`${e} breaking ${r} --against ${t} --error-format=json`);if(H(o))return o;let n=di(o.trim().split(` -`).filter(i=>i!==""));return H(n)?n:{raw:s,fileAnnotations:n}}function ps(e){let r="";try{ls.execSync(e)}catch(t){let s="";if(mi(t)?(r=t.stdout.toString(),s=t.stderr.toString()):s=`failed to run command: ${e}`,s!=="")return{message:s}}return r}function di(e){let r=[];for(let t=0;t{if(u.path===void 0||u.path===""){i.push(u.type+": "+u.message);return}n.push(Ei(u))});let a=hi;i.length!==0&&(i.unshift(a),a=i.join(` -`)),await new ms.Octokit({auth:e}).request("POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews",{owner:r,repo:t,pull_number:+s,body:a,event:Ti,comments:n})}function Ei(e){var s;let r;e.end_line!==void 0&&e.end_line!==0&&e.start_line!==void 0&&e.start_line!==0&&e.end_line>e.start_line&&(r=e.start_line);let t=e.end_line;return(t===void 0||t===0)&&(r===void 0||r===0)&&(t=1),{path:(s=e.path)!=null?s:"",body:fi+e.message,start_line:r,line:t,start_side:gs,side:gs}}async function Ts(){try{let e=await wi();e!=null&&H(e)&&U.setFailed(e.message)}catch(e){if(H(e)){U.setFailed(e.message);return}U.setFailed("Internal error")}}async function wi(){var c;let e=U.getInput("github_token");if(e==="")return{message:"a Github authentication token was not provided"};let r=U.getInput("input");if(r==="")return{message:"an input was not provided"};let t=U.getInput("against");if(t==="")return{message:"an against was not provided"};let s=Ce.context.repo.owner;if(s==="")return{message:"an owner was not provided"};let o=Ce.context.repo.repo;if(o==="")return{message:"a repository was not provided"};let n=await hs.which("buf",!0);if(n==="")return{message:'buf is not installed; please add the "bufbuild/setup-buf" step to your job'};let i=ds(n,r,t);if(H(i))return i;if(i.fileAnnotations.length===0)return U.info("No breaking errors were found."),null;let a=(c=Ce.context.payload.pull_request)==null?void 0:c.number;if(a!==void 0)try{await fs(e,s,o,a,i.fileAnnotations)}catch(u){H(u)?U.info(`Failed to write comments in-line: ${u.message}`):U.info("Failed to write comments in-line")}return{message:`buf found ${i.fileAnnotations.length} breaking failures. -${i.raw}`}}Ts(); +var Ii=Object.create,kr=Object.defineProperty,$i=Object.getPrototypeOf,Ci=Object.prototype.hasOwnProperty,Li=Object.getOwnPropertyNames,Ui=Object.getOwnPropertyDescriptor;var xi=e=>kr(e,"__esModule",{value:!0});var m=(e,r)=>()=>(r||(r={exports:{}},e(r.exports,r)),r.exports);var Di=(e,r,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Li(r))!Ci.call(e,s)&&s!=="default"&&kr(e,s,{get:()=>r[s],enumerable:!(t=Ui(r,s))||t.enumerable});return e},J=e=>Di(xi(kr(e!=null?Ii($i(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var ir=m(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});function Fi(e){return e==null?"":typeof e=="string"||e instanceof String?e:JSON.stringify(e)}qr.toCommandValue=Fi});var Pt=m(_e=>{"use strict";var Ni=_e&&_e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(_e,"__esModule",{value:!0});var ji=Ni(require("os")),Ot=ir();function At(e,r,t){let s=new Rt(e,r,t);process.stdout.write(s.toString()+ji.EOL)}_e.issueCommand=At;function Bi(e,r=""){At(e,{},r)}_e.issue=Bi;var St="::",Rt=class{constructor(r,t,s){r||(r="missing.command"),this.command=r,this.properties=t,this.message=s}toString(){let r=St+this.command;if(this.properties&&Object.keys(this.properties).length>0){r+=" ";let t=!0;for(let s in this.properties)if(this.properties.hasOwnProperty(s)){let o=this.properties[s];o&&(t?t=!1:r+=",",r+=`${s}=${Mi(o)}`)}}return r+=`${St}${Hi(this.message)}`,r}};function Hi(e){return Ot.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function Mi(e){return Ot.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}});var It=m(xe=>{"use strict";var kt=xe&&xe.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(xe,"__esModule",{value:!0});var qt=kt(require("fs")),zi=kt(require("os")),Vi=ir();function Wi(e,r){let t=process.env[`GITHUB_${e}`];if(!t)throw new Error(`Unable to find environment variable for file command ${e}`);if(!qt.existsSync(t))throw new Error(`Missing file at path: ${t}`);qt.appendFileSync(t,`${Vi.toCommandValue(r)}${zi.EOL}`,{encoding:"utf8"})}xe.issueCommand=Wi});var Ft=m(v=>{"use strict";var Xi=v&&v.__awaiter||function(e,r,t,s){function o(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function a(l){try{u(s.next(l))}catch(p){i(p)}}function c(l){try{u(s.throw(l))}catch(p){i(p)}}function u(l){l.done?n(l.value):o(l.value).then(a,c)}u((s=s.apply(e,r||[])).next())})},$t=v&&v.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(v,"__esModule",{value:!0});var z=Pt(),Ct=It(),Ki=ir(),Ir=$t(require("os")),Ji=$t(require("path")),Lt;(function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure"})(Lt=v.ExitCode||(v.ExitCode={}));function Yi(e,r){let t=Ki.toCommandValue(r);if(process.env[e]=t,process.env.GITHUB_ENV||""){let o="_GitHubActionsFileCommandDelimeter_",n=`${e}<<${o}${Ir.EOL}${t}${Ir.EOL}${o}`;Ct.issueCommand("ENV",n)}else z.issueCommand("set-env",{name:e},t)}v.exportVariable=Yi;function Zi(e){z.issueCommand("add-mask",{},e)}v.setSecret=Zi;function Qi(e){process.env.GITHUB_PATH||""?Ct.issueCommand("PATH",e):z.issueCommand("add-path",{},e),process.env.PATH=`${e}${Ji.delimiter}${process.env.PATH}`}v.addPath=Qi;function ea(e,r){let t=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(r&&r.required&&!t)throw new Error(`Input required and not supplied: ${e}`);return t.trim()}v.getInput=ea;function ra(e,r){z.issueCommand("set-output",{name:e},r)}v.setOutput=ra;function ta(e){z.issue("echo",e?"on":"off")}v.setCommandEcho=ta;function sa(e){process.exitCode=Lt.Failure,Ut(e)}v.setFailed=sa;function oa(){return process.env.RUNNER_DEBUG==="1"}v.isDebug=oa;function na(e){z.issueCommand("debug",{},e)}v.debug=na;function Ut(e){z.issue("error",e instanceof Error?e.toString():e)}v.error=Ut;function ia(e){z.issue("warning",e instanceof Error?e.toString():e)}v.warning=ia;function aa(e){process.stdout.write(e+Ir.EOL)}v.info=aa;function xt(e){z.issue("group",e)}v.startGroup=xt;function Dt(){z.issue("endgroup")}v.endGroup=Dt;function ca(e,r){return Xi(this,void 0,void 0,function*(){xt(e);let t;try{t=yield r()}finally{Dt()}return t})}v.group=ca;function ua(e,r){z.issueCommand("save-state",{name:e},r)}v.saveState=ua;function la(e){return process.env[`STATE_${e}`]||""}v.getState=la});var $r=m(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.Context=void 0;var Nt=require("fs"),pa=require("os"),jt=class{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(Nt.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(Nt.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{let r=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${r} does not exist${pa.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){let r=this.payload;return Object.assign(Object.assign({},this.repo),{number:(r.issue||r.pull_request||r).number})}get repo(){if(process.env.GITHUB_REPOSITORY){let[r,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:r,repo:t}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};ar.Context=jt});var Ht=m(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});function ma(e){let r=e.protocol==="https:",t;if(Bt(e))return t;let s;return r?s=process.env.https_proxy||process.env.HTTPS_PROXY:s=process.env.http_proxy||process.env.HTTP_PROXY,s&&(t=new URL(s)),t}cr.getProxyUrl=ma;function Bt(e){if(!e.hostname)return!1;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;let t;e.port?t=Number(e.port):e.protocol==="http:"?t=80:e.protocol==="https:"&&(t=443);let s=[e.hostname.toUpperCase()];typeof t=="number"&&s.push(`${s[0]}:${t}`);for(let o of r.split(",").map(n=>n.trim().toUpperCase()).filter(n=>n))if(s.some(n=>n===o))return!0;return!1}cr.checkBypass=Bt});var Wt=m(Ge=>{"use strict";var Vp=require("net"),da=require("tls"),Cr=require("http"),Mt=require("https"),fa=require("events"),Wp=require("assert"),ha=require("util");Ge.httpOverHttp=ga;Ge.httpsOverHttp=Ea;Ge.httpOverHttps=Ta;Ge.httpsOverHttps=wa;function ga(e){var r=new Y(e);return r.request=Cr.request,r}function Ea(e){var r=new Y(e);return r.request=Cr.request,r.createSocket=zt,r.defaultPort=443,r}function Ta(e){var r=new Y(e);return r.request=Mt.request,r}function wa(e){var r=new Y(e);return r.request=Mt.request,r.createSocket=zt,r.defaultPort=443,r}function Y(e){var r=this;r.options=e||{},r.proxyOptions=r.options.proxy||{},r.maxSockets=r.options.maxSockets||Cr.Agent.defaultMaxSockets,r.requests=[],r.sockets=[],r.on("free",function(s,o,n,i){for(var a=Vt(o,n,i),c=0,u=r.requests.length;c=this.maxSockets){n.requests.push(i);return}n.createSocket(i,function(a){a.on("free",c),a.on("close",u),a.on("agentRemove",u),r.onSocket(a);function c(){n.emit("free",a,i)}function u(l){n.removeSocket(a),a.removeListener("free",c),a.removeListener("close",u),a.removeListener("agentRemove",u)}})};Y.prototype.createSocket=function(r,t){var s=this,o={};s.sockets.push(o);var n=Lr({},s.proxyOptions,{method:"CONNECT",path:r.host+":"+r.port,agent:!1,headers:{host:r.host+":"+r.port}});r.localAddress&&(n.localAddress=r.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),ce("making CONNECT request");var i=s.request(n);i.useChunkedEncodingByDefault=!1,i.once("response",a),i.once("upgrade",c),i.once("connect",u),i.once("error",l),i.end();function a(p){p.upgrade=!0}function c(p,d,b){process.nextTick(function(){u(p,d,b)})}function u(p,d,b){if(i.removeAllListeners(),d.removeAllListeners(),p.statusCode!==200){ce("tunneling socket could not be established, statusCode=%d",p.statusCode),d.destroy();var y=new Error("tunneling socket could not be established, statusCode="+p.statusCode);y.code="ECONNRESET",r.request.emit("error",y),s.removeSocket(o);return}if(b.length>0){ce("got illegal response body from proxy"),d.destroy();var y=new Error("got illegal response body from proxy");y.code="ECONNRESET",r.request.emit("error",y),s.removeSocket(o);return}return ce("tunneling connection has established"),s.sockets[s.sockets.indexOf(o)]=d,t(d)}function l(p){i.removeAllListeners(),ce(`tunneling socket could not be established, cause=%s +`,p.message,p.stack);var d=new Error("tunneling socket could not be established, cause="+p.message);d.code="ECONNRESET",r.request.emit("error",d),s.removeSocket(o)}};Y.prototype.removeSocket=function(r){var t=this.sockets.indexOf(r);if(t!==-1){this.sockets.splice(t,1);var s=this.requests.shift();s&&this.createSocket(s,function(o){s.request.onSocket(o)})}};function zt(e,r){var t=this;Y.prototype.createSocket.call(t,e,function(s){var o=e.request.getHeader("host"),n=Lr({},t.options,{socket:s,servername:o?o.replace(/:.*$/,""):e.host}),i=da.connect(0,n);t.sockets[t.sockets.indexOf(s)]=i,r(i)})}function Vt(e,r,t){return typeof e=="string"?{host:e,port:r,localAddress:t}:e}function Lr(e){for(var r=1,t=arguments.length;r{Xt.exports=Wt()});var Yt=m(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});var ur=require("http"),Ur=require("https"),Jt=Ht(),Oe,V;(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"})(V=U.HttpCodes||(U.HttpCodes={}));var q;(function(e){e.Accept="accept",e.ContentType="content-type"})(q=U.Headers||(U.Headers={}));var ue;(function(e){e.ApplicationJson="application/json"})(ue=U.MediaTypes||(U.MediaTypes={}));function ba(e){let r=Jt.getProxyUrl(new URL(e));return r?r.href:""}U.getProxyUrl=ba;var ya=[V.MovedPermanently,V.ResourceMoved,V.SeeOther,V.TemporaryRedirect,V.PermanentRedirect],va=[V.BadGateway,V.ServiceUnavailable,V.GatewayTimeout],_a=["OPTIONS","GET","DELETE","HEAD"],Ga=10,Oa=5,De=class extends Error{constructor(r,t){super(r);this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,De.prototype)}};U.HttpClientError=De;var xr=class{constructor(r){this.message=r}readBody(){return new Promise(async(r,t)=>{let s=Buffer.alloc(0);this.message.on("data",o=>{s=Buffer.concat([s,o])}),this.message.on("end",()=>{r(s.toString())})})}};U.HttpClientResponse=xr;function Ra(e){return new URL(e).protocol==="https:"}U.isHttps=Ra;var lr=class{constructor(r,t,s){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=r,this.handlers=t||[],this.requestOptions=s,s&&(s.ignoreSslError!=null&&(this._ignoreSslError=s.ignoreSslError),this._socketTimeout=s.socketTimeout,s.allowRedirects!=null&&(this._allowRedirects=s.allowRedirects),s.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=s.allowRedirectDowngrade),s.maxRedirects!=null&&(this._maxRedirects=Math.max(s.maxRedirects,0)),s.keepAlive!=null&&(this._keepAlive=s.keepAlive),s.allowRetries!=null&&(this._allowRetries=s.allowRetries),s.maxRetries!=null&&(this._maxRetries=s.maxRetries))}options(r,t){return this.request("OPTIONS",r,null,t||{})}get(r,t){return this.request("GET",r,null,t||{})}del(r,t){return this.request("DELETE",r,null,t||{})}post(r,t,s){return this.request("POST",r,t,s||{})}patch(r,t,s){return this.request("PATCH",r,t,s||{})}put(r,t,s){return this.request("PUT",r,t,s||{})}head(r,t){return this.request("HEAD",r,null,t||{})}sendStream(r,t,s,o){return this.request(r,t,s,o)}async getJson(r,t={}){t[q.Accept]=this._getExistingOrDefaultHeader(t,q.Accept,ue.ApplicationJson);let s=await this.get(r,t);return this._processResponse(s,this.requestOptions)}async postJson(r,t,s={}){let o=JSON.stringify(t,null,2);s[q.Accept]=this._getExistingOrDefaultHeader(s,q.Accept,ue.ApplicationJson),s[q.ContentType]=this._getExistingOrDefaultHeader(s,q.ContentType,ue.ApplicationJson);let n=await this.post(r,o,s);return this._processResponse(n,this.requestOptions)}async putJson(r,t,s={}){let o=JSON.stringify(t,null,2);s[q.Accept]=this._getExistingOrDefaultHeader(s,q.Accept,ue.ApplicationJson),s[q.ContentType]=this._getExistingOrDefaultHeader(s,q.ContentType,ue.ApplicationJson);let n=await this.put(r,o,s);return this._processResponse(n,this.requestOptions)}async patchJson(r,t,s={}){let o=JSON.stringify(t,null,2);s[q.Accept]=this._getExistingOrDefaultHeader(s,q.Accept,ue.ApplicationJson),s[q.ContentType]=this._getExistingOrDefaultHeader(s,q.ContentType,ue.ApplicationJson);let n=await this.patch(r,o,s);return this._processResponse(n,this.requestOptions)}async request(r,t,s,o){if(this._disposed)throw new Error("Client has already been disposed.");let n=new URL(t),i=this._prepareRequest(r,n,o),a=this._allowRetries&&_a.indexOf(r)!=-1?this._maxRetries+1:1,c=0,u;for(;c0;){let p=u.message.headers.location;if(!p)break;let d=new URL(p);if(n.protocol=="https:"&&n.protocol!=d.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 u.readBody(),d.hostname!==n.hostname)for(let b in o)b.toLowerCase()==="authorization"&&delete o[b];i=this._prepareRequest(r,d,o),u=await this.requestRaw(i,s),l--}if(va.indexOf(u.message.statusCode)==-1)return u;c+=1,c{let n=function(i,a){i&&o(i),s(a)};this.requestRawWithCallback(r,t,n)})}requestRawWithCallback(r,t,s){let o;typeof t=="string"&&(r.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let n=!1,i=(c,u)=>{n||(n=!0,s(c,u))},a=r.httpModule.request(r.options,c=>{let u=new xr(c);i(null,u)});a.on("socket",c=>{o=c}),a.setTimeout(this._socketTimeout||3*6e4,()=>{o&&o.end(),i(new Error("Request timeout: "+r.options.path),null)}),a.on("error",function(c){i(c,null)}),t&&typeof t=="string"&&a.write(t,"utf8"),t&&typeof t!="string"?(t.on("close",function(){a.end()}),t.pipe(a)):a.end()}getAgent(r){let t=new URL(r);return this._getAgent(t)}_prepareRequest(r,t,s){let o={};o.parsedUrl=t;let n=o.parsedUrl.protocol==="https:";o.httpModule=n?Ur:ur;let i=n?443:80;return o.options={},o.options.host=o.parsedUrl.hostname,o.options.port=o.parsedUrl.port?parseInt(o.parsedUrl.port):i,o.options.path=(o.parsedUrl.pathname||"")+(o.parsedUrl.search||""),o.options.method=r,o.options.headers=this._mergeHeaders(s),this.userAgent!=null&&(o.options.headers["user-agent"]=this.userAgent),o.options.agent=this._getAgent(o.parsedUrl),this.handlers&&this.handlers.forEach(a=>{a.prepareRequest(o.options)}),o}_mergeHeaders(r){let t=s=>Object.keys(s).reduce((o,n)=>(o[n.toLowerCase()]=s[n],o),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},t(this.requestOptions.headers),t(r)):t(r||{})}_getExistingOrDefaultHeader(r,t,s){let o=i=>Object.keys(i).reduce((a,c)=>(a[c.toLowerCase()]=i[c],a),{}),n;return this.requestOptions&&this.requestOptions.headers&&(n=o(this.requestOptions.headers)[t]),r[t]||n||s}_getAgent(r){let t,s=Jt.getProxyUrl(r),o=s&&s.hostname;if(this._keepAlive&&o&&(t=this._proxyAgent),this._keepAlive&&!o&&(t=this._agent),t)return t;let n=r.protocol==="https:",i=100;if(this.requestOptions&&(i=this.requestOptions.maxSockets||ur.globalAgent.maxSockets),o){Oe||(Oe=Kt());let a={maxSockets:i,keepAlive:this._keepAlive,proxy:{proxyAuth:`${s.username}:${s.password}`,host:s.hostname,port:s.port}},c,u=s.protocol==="https:";n?c=u?Oe.httpsOverHttps:Oe.httpsOverHttp:c=u?Oe.httpOverHttps:Oe.httpOverHttp,t=c(a),this._proxyAgent=t}if(this._keepAlive&&!t){let a={keepAlive:this._keepAlive,maxSockets:i};t=n?new Ur.Agent(a):new ur.Agent(a),this._agent=t}return t||(t=n?Ur.globalAgent:ur.globalAgent),n&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t}_performExponentialBackoff(r){r=Math.min(Ga,r);let t=Oa*Math.pow(2,r);return new Promise(s=>setTimeout(()=>s(),t))}static dateTimeDeserializer(r,t){if(typeof t=="string"){let s=new Date(t);if(!isNaN(s.valueOf()))return s}return t}async _processResponse(r,t){return new Promise(async(s,o)=>{let n=r.message.statusCode,i={statusCode:n,result:null,headers:{}};n==V.NotFound&&s(i);let a,c;try{c=await r.readBody(),c&&c.length>0&&(t&&t.deserializeDates?a=JSON.parse(c,lr.dateTimeDeserializer):a=JSON.parse(c),i.result=a),i.headers=r.message.headers}catch(u){}if(n>299){let u;a&&a.message?u=a.message:c&&c.length>0?u=c:u="Failed request: ("+n+")";let l=new De(u,n);l.result=i.result,o(l)}else s(i)})}};U.HttpClient=lr});var Zt=m($=>{"use strict";var Aa=$&&$.__createBinding||(Object.create?function(e,r,t,s){s===void 0&&(s=t),Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,s){s===void 0&&(s=t),e[s]=r[t]}),Sa=$&&$.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Pa=$&&$.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&Aa(r,e,t);return Sa(r,e),r};Object.defineProperty($,"__esModule",{value:!0});$.getApiBaseUrl=$.getProxyAgent=$.getAuthString=void 0;var ka=Pa(Yt());function qa(e,r){if(!e&&!r.auth)throw new Error("Parameter token or opts.auth is required");if(e&&r.auth)throw new Error("Parameters token and opts.auth may not both be specified");return typeof r.auth=="string"?r.auth:`token ${e}`}$.getAuthString=qa;function Ia(e){return new ka.HttpClient().getAgent(e)}$.getProxyAgent=Ia;function $a(){return process.env.GITHUB_API_URL||"https://api.github.com"}$.getApiBaseUrl=$a});var Fe=m(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});function Ca(){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})`:""}Dr.getUserAgent=Ca});var rs=m((Qp,Qt)=>{Qt.exports=es;function es(e,r,t,s){if(typeof t!="function")throw new Error("method for before hook must be a function");return s||(s={}),Array.isArray(r)?r.reverse().reduce(function(o,n){return es.bind(null,e,n,o,s)},t)():Promise.resolve().then(function(){return e.registry[r]?e.registry[r].reduce(function(o,n){return n.hook.bind(null,o,s)},t)():t(s)})}});var ss=m((em,ts)=>{ts.exports=La;function La(e,r,t,s){var o=s;e.registry[t]||(e.registry[t]=[]),r==="before"&&(s=function(n,i){return Promise.resolve().then(o.bind(null,i)).then(n.bind(null,i))}),r==="after"&&(s=function(n,i){var a;return Promise.resolve().then(n.bind(null,i)).then(function(c){return a=c,o(a,i)}).then(function(){return a})}),r==="error"&&(s=function(n,i){return Promise.resolve().then(n.bind(null,i)).catch(function(a){return o(a,i)})}),e.registry[t].push({hook:s,orig:o})}});var ns=m((rm,os)=>{os.exports=Ua;function Ua(e,r,t){if(!!e.registry[r]){var s=e.registry[r].map(function(o){return o.orig}).indexOf(t);s!==-1&&e.registry[r].splice(s,1)}}});var ms=m((tm,Ne)=>{var is=rs(),xa=ss(),Da=ns(),as=Function.bind,cs=as.bind(as);function us(e,r,t){var s=cs(Da,null).apply(null,t?[r,t]:[r]);e.api={remove:s},e.remove=s,["before","error","after","wrap"].forEach(function(o){var n=t?[r,o,t]:[r,o];e[o]=e.api[o]=cs(xa,null).apply(null,n)})}function Fa(){var e="h",r={registry:{}},t=is.bind(null,r,e);return us(t,r,e),t}function ls(){var e={registry:{}},r=is.bind(null,e);return us(r,e),r}var ps=!1;function Re(){return ps||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),ps=!0),ls()}Re.Singular=Fa.bind();Re.Collection=ls.bind();Ne.exports=Re;Ne.exports.Hook=Re;Ne.exports.Singular=Re.Singular;Ne.exports.Collection=Re.Collection});var Nr=m(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});function ds(e){return Object.prototype.toString.call(e)==="[object Object]"}function Na(e){var r,t;return ds(e)===!1?!1:(r=e.constructor,r===void 0?!0:(t=r.prototype,!(ds(t)===!1||t.hasOwnProperty("isPrototypeOf")===!1)))}Fr.isPlainObject=Na});var bs=m(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});var ja=Nr(),Ba=Fe();function Ha(e){return e?Object.keys(e).reduce((r,t)=>(r[t.toLowerCase()]=e[t],r),{}):{}}function fs(e,r){let t=Object.assign({},e);return Object.keys(r).forEach(s=>{ja.isPlainObject(r[s])?s in e?t[s]=fs(e[s],r[s]):Object.assign(t,{[s]:r[s]}):Object.assign(t,{[s]:r[s]})}),t}function hs(e){for(let r in e)e[r]===void 0&&delete e[r];return e}function Br(e,r,t){if(typeof r=="string"){let[o,n]=r.split(" ");t=Object.assign(n?{method:o,url:n}:{url:o},t)}else t=Object.assign({},r);t.headers=Ha(t.headers),hs(t),hs(t.headers);let s=fs(e||{},t);return e&&e.mediaType.previews.length&&(s.mediaType.previews=e.mediaType.previews.filter(o=>!s.mediaType.previews.includes(o)).concat(s.mediaType.previews)),s.mediaType.previews=s.mediaType.previews.map(o=>o.replace(/-preview/,"")),s}function Ma(e,r){let t=/\?/.test(e)?"&":"?",s=Object.keys(r);return s.length===0?e:e+t+s.map(o=>o==="q"?"q="+r.q.split("+").map(encodeURIComponent).join("+"):`${o}=${encodeURIComponent(r[o])}`).join("&")}var za=/\{[^}]+\}/g;function Va(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function Wa(e){let r=e.match(za);return r?r.map(Va).reduce((t,s)=>t.concat(s),[]):[]}function gs(e,r){return Object.keys(e).filter(t=>!r.includes(t)).reduce((t,s)=>(t[s]=e[s],t),{})}function Es(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(r){return/%[0-9A-Fa-f]/.test(r)||(r=encodeURI(r).replace(/%5B/g,"[").replace(/%5D/g,"]")),r}).join("")}function Ae(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(r){return"%"+r.charCodeAt(0).toString(16).toUpperCase()})}function je(e,r,t){return r=e==="+"||e==="#"?Es(r):Ae(r),t?Ae(t)+"="+r:r}function Se(e){return e!=null}function Hr(e){return e===";"||e==="&"||e==="?"}function Xa(e,r,t,s){var o=e[t],n=[];if(Se(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")o=o.toString(),s&&s!=="*"&&(o=o.substring(0,parseInt(s,10))),n.push(je(r,o,Hr(r)?t:""));else if(s==="*")Array.isArray(o)?o.filter(Se).forEach(function(i){n.push(je(r,i,Hr(r)?t:""))}):Object.keys(o).forEach(function(i){Se(o[i])&&n.push(je(r,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Se).forEach(function(a){i.push(je(r,a))}):Object.keys(o).forEach(function(a){Se(o[a])&&(i.push(Ae(a)),i.push(je(r,o[a].toString())))}),Hr(r)?n.push(Ae(t)+"="+i.join(",")):i.length!==0&&n.push(i.join(","))}else r===";"?Se(o)&&n.push(Ae(t)):o===""&&(r==="&"||r==="?")?n.push(Ae(t)+"="):o===""&&n.push("");return n}function Ja(e){return{expand:Ka.bind(null,e)}}function Ka(e,r){var t=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(s,o,n){if(o){let a="",c=[];if(t.indexOf(o.charAt(0))!==-1&&(a=o.charAt(0),o=o.substr(1)),o.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(Xa(r,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return Es(n)})}function Ts(e){let r=e.method.toUpperCase(),t=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),s=Object.assign({},e.headers),o,n=gs(e,["method","baseUrl","url","headers","request","mediaType"]),i=Wa(t);t=Ja(t).expand(n),/^http/.test(t)||(t=e.baseUrl+t);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=gs(n,a);if(!/application\/octet-stream/i.test(s.accept)&&(e.mediaType.format&&(s.accept=s.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=s.accept.match(/[\w-]+(?=-preview)/g)||[];s.accept=l.concat(e.mediaType.previews).map(p=>{let d=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${p}-preview${d}`}).join(",")}return["GET","HEAD"].includes(r)?t=Ma(t,c):"data"in c?o=c.data:Object.keys(c).length?o=c:s["content-length"]=0,!s["content-type"]&&typeof o!="undefined"&&(s["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(r)&&typeof o=="undefined"&&(o=""),Object.assign({method:r,url:t,headers:s},typeof o!="undefined"?{body:o}:null,e.request?{request:e.request}:null)}function Ya(e,r,t){return Ts(Br(e,r,t))}function ws(e,r){let t=Br(e,r),s=Ya.bind(null,t);return Object.assign(s,{DEFAULTS:t,defaults:ws.bind(null,t),merge:Br.bind(null,t),parse:Ts})}var Za="6.0.11",Qa=`octokit-endpoint.js/${Za} ${Ba.getUserAgent()}`,ec={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Qa},mediaType:{format:"",previews:[]}},rc=ws(null,ec);jr.endpoint=rc});var qs=m((K,ys)=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});function Be(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var W=Be(require("stream")),vs=Be(require("http")),Mr=Be(require("url")),tc=Be(require("https")),de=Be(require("zlib")),sc=W.Readable,Z=Symbol("buffer"),zr=Symbol("type"),fe=class{constructor(){this[zr]="";let r=arguments[0],t=arguments[1],s=[],o=0;if(r){let i=r,a=Number(i.length);for(let c=0;c1&&arguments[1]!==void 0?arguments[1]:{},s=t.size;let o=s===void 0?0:s;var n=t.timeout;let i=n===void 0?0:n;e==null?e=null:Gs(e)?e=Buffer.from(e.toString()):He(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 W||(e=Buffer.from(String(e)))),this[Q]={body:e,disturbed:!1,error:null},this.size=o,this.timeout=i,e instanceof W&&e.on("error",function(a){let c=a.name==="AbortError"?a:new S(`Invalid response body while trying to fetch ${r.url}: ${a.message}`,"system",a);r[Q].error=c})}O.prototype={get body(){return this[Q].body},get bodyUsed(){return this[Q].disturbed},arrayBuffer(){return Pe.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 Pe.call(this).then(function(r){return Object.assign(new fe([],{type:e.toLowerCase()}),{[Z]:r})})},json(){var e=this;return Pe.call(this).then(function(r){try{return JSON.parse(r.toString())}catch(t){return O.Promise.reject(new S(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return Pe.call(this).then(function(e){return e.toString()})},buffer(){return Pe.call(this)},textConverted(){var e=this;return Pe.call(this).then(function(r){return oc(r,e.headers)})}};Object.defineProperties(O.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});O.mixIn=function(e){for(let r of Object.getOwnPropertyNames(O.prototype))if(!(r in e)){let t=Object.getOwnPropertyDescriptor(O.prototype,r);Object.defineProperty(e,r,t)}};function Pe(){var e=this;if(this[Q].disturbed)return O.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[Q].disturbed=!0,this[Q].error)return O.Promise.reject(this[Q].error);let r=this.body;if(r===null)return O.Promise.resolve(Buffer.alloc(0));if(He(r)&&(r=r.stream()),Buffer.isBuffer(r))return O.Promise.resolve(r);if(!(r instanceof W))return O.Promise.resolve(Buffer.alloc(0));let t=[],s=0,o=!1;return new O.Promise(function(n,i){let a;e.timeout&&(a=setTimeout(function(){o=!0,i(new S(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),r.on("error",function(c){c.name==="AbortError"?(o=!0,i(c)):i(new S(`Invalid response body while trying to fetch ${e.url}: ${c.message}`,"system",c))}),r.on("data",function(c){if(!(o||c===null)){if(e.size&&s+c.length>e.size){o=!0,i(new S(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}s+=c.length,t.push(c)}}),r.on("end",function(){if(!o){clearTimeout(a);try{n(Buffer.concat(t,s))}catch(c){i(new S(`Could not create Buffer from response body for ${e.url}: ${c.message}`,"system",c))}}})})}function oc(e,r){if(typeof Vr!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=r.get("content-type"),s="utf-8",o,n;return t&&(o=/charset=([^;]*)/i.exec(t)),n=e.slice(0,1024).toString(),!o&&n&&(o=/0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[_]=Object.create(null),r instanceof x){let t=r.raw(),s=Object.keys(t);for(let o of s)for(let n of t[o])this.append(o,n);return}if(r!=null)if(typeof r=="object"){let t=r[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let s=[];for(let o of r){if(typeof o!="object"||typeof o[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");s.push(Array.from(o))}for(let o of s){if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(o[0],o[1])}}else for(let s of Object.keys(r)){let o=r[s];this.append(s,o)}}else throw new TypeError("Provided initializer must be an object")}get(r){r=`${r}`,Me(r);let t=ke(this[_],r);return t===void 0?null:this[_][t].join(", ")}forEach(r){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,s=Xr(this),o=0;for(;o1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[_]).sort().map(r==="key"?function(s){return s.toLowerCase()}:r==="value"?function(s){return e[_][s].join(", ")}:function(s){return[s.toLowerCase(),e[_][s].join(", ")]})}var Jr=Symbol("internal");function Kr(e,r){let t=Object.create(Yr);return t[Jr]={target:e,kind:r,index:0},t}var Yr=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==Yr)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[Jr];let r=e.target,t=e.kind,s=e.index,o=Xr(r,t),n=o.length;return s>=n?{value:void 0,done:!0}:(this[Jr].index=s+1,{value:o[s],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(Yr,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function ic(e){let r=Object.assign({__proto__:null},e[_]),t=ke(e[_],"Host");return t!==void 0&&(r[t]=r[t][0]),r}function ac(e){let r=new x;for(let t of Object.keys(e))if(!Ss.test(t))if(Array.isArray(e[t]))for(let s of e[t])Wr.test(s)||(r[_][t]===void 0?r[_][t]=[s]:r[_][t].push(s));else Wr.test(e[t])||(r[_][t]=[e[t]]);return r}var le=Symbol("Response internals"),cc=vs.STATUS_CODES,F=class{constructor(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};O.call(this,r,t);let s=t.status||200,o=new x(t.headers);if(r!=null&&!o.has("Content-Type")){let n=Rs(r);n&&o.append("Content-Type",n)}this[le]={url:t.url,status:s,statusText:t.statusText||cc[s],headers:o,counter:t.counter}}get url(){return this[le].url||""}get status(){return this[le].status}get ok(){return this[le].status>=200&&this[le].status<300}get redirected(){return this[le].counter>0}get statusText(){return this[le].statusText}get headers(){return this[le].headers}clone(){return new F(Os(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};O.mixIn(F.prototype);Object.defineProperties(F.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(F.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var ee=Symbol("Request internals"),Zr=Mr.parse,uc=Mr.format,lc="destroy"in W.Readable.prototype;function pr(e){return typeof e=="object"&&typeof e[ee]=="object"}function pc(e){let r=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(r&&r.constructor.name==="AbortSignal")}var re=class{constructor(r){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s;pr(r)?s=Zr(r.url):(r&&r.href?s=Zr(r.href):s=Zr(`${r}`),r={});let o=t.method||r.method||"GET";if(o=o.toUpperCase(),(t.body!=null||pr(r)&&r.body!==null)&&(o==="GET"||o==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let n=t.body!=null?t.body:pr(r)&&r.body!==null?Os(r):null;O.call(this,n,{timeout:t.timeout||r.timeout||0,size:t.size||r.size||0});let i=new x(t.headers||r.headers||{});if(n!=null&&!i.has("Content-Type")){let c=Rs(n);c&&i.append("Content-Type",c)}let a=pr(r)?r.signal:null;if("signal"in t&&(a=t.signal),a!=null&&!pc(a))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[ee]={method:o,redirect:t.redirect||r.redirect||"follow",headers:i,parsedURL:s,signal:a},this.follow=t.follow!==void 0?t.follow:r.follow!==void 0?r.follow:20,this.compress=t.compress!==void 0?t.compress:r.compress!==void 0?r.compress:!0,this.counter=t.counter||r.counter||0,this.agent=t.agent||r.agent}get method(){return this[ee].method}get url(){return uc(this[ee].parsedURL)}get headers(){return this[ee].headers}get redirect(){return this[ee].redirect}get signal(){return this[ee].signal}clone(){return new re(this)}};O.mixIn(re.prototype);Object.defineProperty(re.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(re.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function mc(e){let r=e[ee].parsedURL,t=new x(e[ee].headers);if(t.has("Accept")||t.set("Accept","*/*"),!r.protocol||!r.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(r.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof W.Readable&&!lc)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let s=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(s="0"),e.body!=null){let n=As(e);typeof n=="number"&&(s=String(n))}s&&t.set("Content-Length",s),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let o=e.agent;return typeof o=="function"&&(o=o(r)),!t.has("Connection")&&!o&&t.set("Connection","close"),Object.assign({},r,{method:e.method,headers:ic(t),agent:o})}function ze(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}ze.prototype=Object.create(Error.prototype);ze.prototype.constructor=ze;ze.prototype.name="AbortError";var ks=W.PassThrough,dc=Mr.resolve;function pe(e,r){if(!pe.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return O.Promise=pe.Promise,new pe.Promise(function(t,s){let o=new re(e,r),n=mc(o),i=(n.protocol==="https:"?tc:vs).request,a=o.signal,c=null,u=function(){let ae=new ze("The user aborted a request.");s(ae),o.body&&o.body instanceof W.Readable&&o.body.destroy(ae),!(!c||!c.body)&&c.body.emit("error",ae)};if(a&&a.aborted){u();return}let l=function(){u(),b()},p=i(n),d;a&&a.addEventListener("abort",l);function b(){p.abort(),a&&a.removeEventListener("abort",l),clearTimeout(d)}o.timeout&&p.once("socket",function(y){d=setTimeout(function(){s(new S(`network timeout at: ${o.url}`,"request-timeout")),b()},o.timeout)}),p.on("error",function(y){s(new S(`request to ${o.url} failed, reason: ${y.message}`,"system",y)),b()}),p.on("response",function(y){clearTimeout(d);let ae=ac(y.headers);if(pe.isRedirect(y.statusCode)){let Pr=ae.get("Location"),ve=Pr===null?null:dc(o.url,Pr);switch(o.redirect){case"error":s(new S(`uri requested responds with a redirect, redirect mode is set to error: ${o.url}`,"no-redirect")),b();return;case"manual":if(ve!==null)try{ae.set("Location",ve)}catch(qi){s(qi)}break;case"follow":if(ve===null)break;if(o.counter>=o.follow){s(new S(`maximum redirect reached at: ${o.url}`,"max-redirect")),b();return}let nr={headers:new x(o.headers),follow:o.follow,counter:o.counter+1,agent:o.agent,compress:o.compress,method:o.method,body:o.body,signal:o.signal,timeout:o.timeout,size:o.size};if(y.statusCode!==303&&o.body&&As(o)===null){s(new S("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}(y.statusCode===303||(y.statusCode===301||y.statusCode===302)&&o.method==="POST")&&(nr.method="GET",nr.body=void 0,nr.headers.delete("content-length")),t(pe(new re(ve,nr))),b();return}}y.once("end",function(){a&&a.removeEventListener("abort",l)});let L=y.pipe(new ks),Ue={url:o.url,status:y.statusCode,statusText:y.statusMessage,headers:ae,size:o.size,timeout:o.timeout,counter:o.counter},ye=ae.get("Content-Encoding");if(!o.compress||o.method==="HEAD"||ye===null||y.statusCode===204||y.statusCode===304){c=new F(L,Ue),t(c);return}let ki={flush:de.Z_SYNC_FLUSH,finishFlush:de.Z_SYNC_FLUSH};if(ye=="gzip"||ye=="x-gzip"){L=L.pipe(de.createGunzip(ki)),c=new F(L,Ue),t(c);return}if(ye=="deflate"||ye=="x-deflate"){y.pipe(new ks).once("data",function(ve){(ve[0]&15)==8?L=L.pipe(de.createInflate()):L=L.pipe(de.createInflateRaw()),c=new F(L,Ue),t(c)});return}if(ye=="br"&&typeof de.createBrotliDecompress=="function"){L=L.pipe(de.createBrotliDecompress()),c=new F(L,Ue),t(c);return}c=new F(L,Ue),t(c)}),nc(p,o)})}pe.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};pe.Promise=global.Promise;ys.exports=K=pe;Object.defineProperty(K,"__esModule",{value:!0});K.default=K;K.Headers=x;K.Request=re;K.Response=F;K.FetchError=S});var $s=m(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});var Is=class extends Error{constructor(r){super(r);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};Qr.Deprecation=Is});var Us=m((im,Cs)=>{Cs.exports=Ls;function Ls(e,r){if(e&&r)return Ls(e)(r);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(s){t[s]=e[s]}),t;function t(){for(var s=new Array(arguments.length),o=0;o{var xs=Us();et.exports=xs(mr);et.exports.strict=xs(Ds);mr.proto=mr(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return mr(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Ds(this)},configurable:!0})});function mr(e){var r=function(){return r.called?r.value:(r.called=!0,r.value=e.apply(this,arguments))};return r.called=!1,r}function Ds(e){var r=function(){if(r.called)throw new Error(r.onceError);return r.called=!0,r.value=e.apply(this,arguments)},t=e.name||"Function wrapped with `once`";return r.onceError=t+" shouldn't be called more than once",r.called=!1,r}});var js=m(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});function fc(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var hc=$s(),gc=fc(Fs()),Ec=gc(e=>console.warn(e)),Ns=class extends Error{constructor(r,t,s){super(r);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t,Object.defineProperty(this,"code",{get(){return Ec(new hc.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),this.headers=s.headers||{};let o=Object.assign({},s.request);s.request.headers.authorization&&(o.headers=Object.assign({},s.request.headers,{authorization:s.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};rt.RequestError=Ns});var ot=m(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});function Tc(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var wc=bs(),bc=Fe(),yc=Nr(),vc=Tc(qs()),Ve=js(),_c="5.4.14";function Gc(e){return e.arrayBuffer()}function Bs(e){(yc.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let r={},t,s;return(e.request&&e.request.fetch||vc)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(n=>{s=n.url,t=n.status;for(let a of n.headers)r[a[0]]=a[1];if(t===204||t===205)return;if(e.method==="HEAD"){if(t<400)return;throw new Ve.RequestError(n.statusText,t,{headers:r,request:e})}if(t===304)throw new Ve.RequestError("Not modified",t,{headers:r,request:e});if(t>=400)return n.text().then(a=>{let c=new Ve.RequestError(a,t,{headers:r,request:e});try{let u=JSON.parse(c.message);Object.assign(c,u);let l=u.errors;c.message=c.message+": "+l.map(JSON.stringify).join(", ")}catch(u){}throw c});let i=n.headers.get("content-type");return/application\/json/.test(i)?n.json():!i||/^text\/|charset=utf-8$/.test(i)?n.text():Gc(n)}).then(n=>({status:t,url:s,headers:r,data:n})).catch(n=>{throw n instanceof Ve.RequestError?n:new Ve.RequestError(n.message,500,{headers:r,request:e})})}function st(e,r){let t=e.defaults(r);return Object.assign(function(o,n){let i=t.merge(o,n);if(!i.request||!i.request.hook)return Bs(t.parse(i));let a=(c,u)=>Bs(t.parse(t.merge(c,u)));return Object.assign(a,{endpoint:t,defaults:st.bind(null,t)}),i.request.hook(a,i)},{endpoint:t,defaults:st.bind(null,t)})}var Oc=st(wc.endpoint,{headers:{"user-agent":`octokit-request.js/${_c} ${bc.getUserAgent()}`}});tt.request=Oc});var Vs=m(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});var Hs=ot(),Rc=Fe(),Ac="4.6.1",Ms=class extends Error{constructor(r,t){let s=t.data.errors[0].message;super(s);Object.assign(this,t.data),Object.assign(this,{headers:t.headers}),this.name="GraphqlError",this.request=r,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},Sc=["method","baseUrl","url","headers","request","query","mediaType"],Pc=["query","method","url"],zs=/\/api\/v3\/?$/;function kc(e,r,t){if(t){if(typeof r=="string"&&"query"in t)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in t)if(!!Pc.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let s=typeof r=="string"?Object.assign({query:r},t):r,o=Object.keys(s).reduce((i,a)=>Sc.includes(a)?(i[a]=s[a],i):(i.variables||(i.variables={}),i.variables[a]=s[a],i),{}),n=s.baseUrl||e.endpoint.DEFAULTS.baseUrl;return zs.test(n)&&(o.url=n.replace(zs,"/api/graphql")),e(o).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new Ms(o,{headers:a,data:i.data})}return i.data.data})}function nt(e,r){let t=e.defaults(r);return Object.assign((o,n)=>kc(t,o,n),{defaults:nt.bind(null,t),endpoint:Hs.request.endpoint})}var qc=nt(Hs.request,{headers:{"user-agent":`octokit-graphql.js/${Ac} ${Rc.getUserAgent()}`},method:"POST",url:"/graphql"});function Ic(e){return nt(e,{method:"POST",url:"/graphql"})}dr.graphql=qc;dr.withCustomRequest=Ic});var Ws=m(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});async function $c(e){let r=e.split(/\./).length===3?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:r}}function Cc(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function Lc(e,r,t,s){let o=r.endpoint.merge(t,s);return o.headers.authorization=Cc(e),r(o)}var Uc=function(r){if(!r)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof r!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return r=r.replace(/^(token|bearer) +/i,""),Object.assign($c.bind(null,r),{hook:Lc.bind(null,r)})};it.createTokenAuth=Uc});var ct=m(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});var xc=Fe(),Dc=ms(),Xs=ot(),Fc=Vs(),Nc=Ws();function jc(e,r){if(e==null)return{};var t={},s=Object.keys(e),o,n;for(n=0;n=0)&&(t[o]=e[o]);return t}function Bc(e,r){if(e==null)return{};var t=jc(e,r),s,o;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}var Ks="3.3.1",fr=class{constructor(r={}){let t=new Dc.Collection,s={baseUrl:Xs.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},r.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};if(s.headers["user-agent"]=[r.userAgent,`octokit-core.js/${Ks} ${xc.getUserAgent()}`].filter(Boolean).join(" "),r.baseUrl&&(s.baseUrl=r.baseUrl),r.previews&&(s.mediaType.previews=r.previews),r.timeZone&&(s.headers["time-zone"]=r.timeZone),this.request=Xs.request.defaults(s),this.graphql=Fc.withCustomRequest(this.request).defaults(s),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},r.log),this.hook=t,r.authStrategy){let{authStrategy:n}=r,i=Bc(r,["authStrategy"]),a=n(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},r.auth));t.wrap("request",a.hook),this.auth=a}else if(!r.auth)this.auth=async()=>({type:"unauthenticated"});else{let n=Nc.createTokenAuth(r.auth);t.wrap("request",n.hook),this.auth=n}this.constructor.plugins.forEach(n=>{Object.assign(this,n(this,r))})}static defaults(r){return class extends this{constructor(...s){let o=s[0]||{};if(typeof r=="function"){super(r(o));return}super(Object.assign({},r,o,o.userAgent&&r.userAgent?{userAgent:`${o.userAgent} ${r.userAgent}`}:null))}}}static plugin(...r){var t;let s=this.plugins;return t=class extends this{},t.plugins=s.concat(r.filter(n=>!s.includes(n))),t}};fr.VERSION=Ks;fr.plugins=[];at.Octokit=fr});var Ys=m(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});var Hc={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Mc="4.13.5";function Vc(e,r){let t={};for(let[s,o]of Object.entries(r))for(let[n,i]of Object.entries(o)){let[a,c,u]=i,[l,p]=a.split(/ /),d=Object.assign({method:l,url:p},c);t[s]||(t[s]={});let b=t[s];if(u){b[n]=zc(e,s,n,d,u);continue}b[n]=e.request.defaults(d)}return t}function zc(e,r,t,s,o){let n=e.request.defaults(s);function i(...a){let c=n.endpoint.merge(...a);if(o.mapToData)return c=Object.assign({},c,{data:c[o.mapToData],[o.mapToData]:void 0}),n(c);if(o.renamed){let[u,l]=o.renamed;e.log.warn(`octokit.${r}.${t}() has been renamed to octokit.${u}.${l}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let u=n.endpoint.merge(...a);for(let[l,p]of Object.entries(o.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${r}.${t}()". Use "${p}" instead`),p in u||(u[p]=u[l]),delete u[l]);return n(u)}return n(...a)}return Object.assign(i,n)}function Js(e){return Vc(e,Hc)}Js.VERSION=Mc;ut.restEndpointMethods=Js});var to=m(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});var Wc="2.13.2";function Xc(e){if(!("total_count"in e.data&&!("url"in e.data)))return e;let t=e.data.incomplete_results,s=e.data.repository_selection,o=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let n=Object.keys(e.data)[0],i=e.data[n];return e.data=i,typeof t!="undefined"&&(e.data.incomplete_results=t),typeof s!="undefined"&&(e.data.repository_selection=s),e.data.total_count=o,e}function lt(e,r,t){let s=typeof r=="function"?r.endpoint(t):e.request.endpoint(r,t),o=typeof r=="function"?r:e.request,n=s.method,i=s.headers,a=s.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};let c=await o({method:n,url:a,headers:i}),u=Xc(c);return a=((u.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:u}}})}}function Qs(e,r,t,s){return typeof t=="function"&&(s=t,t=void 0),Zs(e,[],lt(e,r,t)[Symbol.asyncIterator](),s)}function Zs(e,r,t,s){return t.next().then(o=>{if(o.done)return r;let n=!1;function i(){n=!0}return r=r.concat(s?s(o.value,i):o.value.data),n?r:Zs(e,r,t,s)})}var Kc=Object.assign(Qs,{iterator:lt}),eo=["GET /app/installations","GET /applications/grants","GET /authorizations","GET /enterprises/{enterprise}/actions/permissions/organizations","GET /enterprises/{enterprise}/actions/runner-groups","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners","GET /enterprises/{enterprise}/actions/runners","GET /enterprises/{enterprise}/actions/runners/downloads","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runner-groups","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/runners/downloads","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/credential-authorizations","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/projects","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/team-sync/groups","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runners/downloads","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/git/matching-refs/{ref}","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /scim/v2/enterprises/{enterprise}/Groups","GET /scim/v2/enterprises/{enterprise}/Users","GET /scim/v2/organizations/{org}/Users","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/team-sync/group-mappings","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function Jc(e){return typeof e=="string"?eo.includes(e):!1}function ro(e){return{paginate:Object.assign(Qs.bind(null,e),{iterator:lt.bind(null,e)})}}ro.VERSION=Wc;qe.composePaginateRest=Kc;qe.isPaginatingEndpoint=Jc;qe.paginateRest=ro;qe.paginatingEndpoints=eo});var no=m(C=>{"use strict";var Yc=C&&C.__createBinding||(Object.create?function(e,r,t,s){s===void 0&&(s=t),Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,s){s===void 0&&(s=t),e[s]=r[t]}),Zc=C&&C.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),so=C&&C.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&Yc(r,e,t);return Zc(r,e),r};Object.defineProperty(C,"__esModule",{value:!0});C.getOctokitOptions=C.GitHub=C.context=void 0;var Qc=so($r()),pt=so(Zt()),eu=ct(),ru=Ys(),tu=to();C.context=new Qc.Context;var oo=pt.getApiBaseUrl(),su={baseUrl:oo,request:{agent:pt.getProxyAgent(oo)}};C.GitHub=eu.Octokit.plugin(ru.restEndpointMethods,tu.paginateRest).defaults(su);function ou(e,r){let t=Object.assign({},r||{}),s=pt.getAuthString(e,t);return s&&(t.auth=s),t}C.getOctokitOptions=ou});var ao=m(N=>{"use strict";var nu=N&&N.__createBinding||(Object.create?function(e,r,t,s){s===void 0&&(s=t),Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,s){s===void 0&&(s=t),e[s]=r[t]}),iu=N&&N.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),au=N&&N.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&nu(r,e,t);return iu(r,e),r};Object.defineProperty(N,"__esModule",{value:!0});N.getOctokit=N.context=void 0;var cu=au($r()),io=no();N.context=new cu.Context;function uu(e,r){return new io.GitHub(io.getOctokitOptions(e,r))}N.getOctokit=uu});var lo=m(E=>{"use strict";var hr=E&&E.__awaiter||function(e,r,t,s){function o(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function a(l){try{u(s.next(l))}catch(p){i(p)}}function c(l){try{u(s.throw(l))}catch(p){i(p)}}function u(l){l.done?n(l.value):o(l.value).then(a,c)}u((s=s.apply(e,r||[])).next())})},j;Object.defineProperty(E,"__esModule",{value:!0});var lu=require("assert"),pu=require("fs"),Ie=require("path");j=pu.promises,E.chmod=j.chmod,E.copyFile=j.copyFile,E.lstat=j.lstat,E.mkdir=j.mkdir,E.readdir=j.readdir,E.readlink=j.readlink,E.rename=j.rename,E.rmdir=j.rmdir,E.stat=j.stat,E.symlink=j.symlink,E.unlink=j.unlink;E.IS_WINDOWS=process.platform==="win32";function mu(e){return hr(this,void 0,void 0,function*(){try{yield E.stat(e)}catch(r){if(r.code==="ENOENT")return!1;throw r}return!0})}E.exists=mu;function du(e,r=!1){return hr(this,void 0,void 0,function*(){return(r?yield E.stat(e):yield E.lstat(e)).isDirectory()})}E.isDirectory=du;function hu(e){if(e=fu(e),!e)throw new Error('isRooted() parameter "p" cannot be empty');return E.IS_WINDOWS?e.startsWith("\\")||/^[A-Z]:/i.test(e):e.startsWith("/")}E.isRooted=hu;function co(e,r=1e3,t=1){return hr(this,void 0,void 0,function*(){if(lu.ok(e,"a path argument must be provided"),e=Ie.resolve(e),t>=r)return E.mkdir(e);try{yield E.mkdir(e);return}catch(s){switch(s.code){case"ENOENT":{yield co(Ie.dirname(e),r,t+1),yield E.mkdir(e);return}default:{let o;try{o=yield E.stat(e)}catch(n){throw s}if(!o.isDirectory())throw s}}}})}E.mkdirP=co;function gu(e,r){return hr(this,void 0,void 0,function*(){let t;try{t=yield E.stat(e)}catch(o){o.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${o}`)}if(t&&t.isFile()){if(E.IS_WINDOWS){let o=Ie.extname(e).toUpperCase();if(r.some(n=>n.toUpperCase()===o))return e}else if(uo(t))return e}let s=e;for(let o of r){e=s+o,t=void 0;try{t=yield E.stat(e)}catch(n){n.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${n}`)}if(t&&t.isFile()){if(E.IS_WINDOWS){try{let n=Ie.dirname(e),i=Ie.basename(e).toUpperCase();for(let a of yield E.readdir(n))if(i===a.toUpperCase()){e=Ie.join(n,a);break}}catch(n){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${n}`)}return e}else if(uo(t))return e}}return""})}E.tryGetExecutablePath=gu;function fu(e){return e=e||"",E.IS_WINDOWS?(e=e.replace(/\//g,"\\"),e.replace(/\\\\+/g,"\\")):e.replace(/\/\/+/g,"/")}function uo(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}});var go=m(te=>{"use strict";var he=te&&te.__awaiter||function(e,r,t,s){function o(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function a(l){try{u(s.next(l))}catch(p){i(p)}}function c(l){try{u(s.throw(l))}catch(p){i(p)}}function u(l){l.done?n(l.value):o(l.value).then(a,c)}u((s=s.apply(e,r||[])).next())})};Object.defineProperty(te,"__esModule",{value:!0});var Eu=require("child_process"),se=require("path"),Tu=require("util"),T=lo(),mt=Tu.promisify(Eu.exec);function bu(e,r,t={}){return he(this,void 0,void 0,function*(){let{force:s,recursive:o}=wu(t),n=(yield T.exists(r))?yield T.stat(r):null;if(n&&n.isFile()&&!s)return;let i=n&&n.isDirectory()?se.join(r,se.basename(e)):r;if(!(yield T.exists(e)))throw new Error(`no such file or directory: ${e}`);if((yield T.stat(e)).isDirectory())if(o)yield po(e,i,0,s);else throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);else{if(se.relative(e,i)==="")throw new Error(`'${i}' and '${e}' are the same file`);yield mo(e,i,s)}})}te.cp=bu;function yu(e,r,t={}){return he(this,void 0,void 0,function*(){if(yield T.exists(r)){let s=!0;if((yield T.isDirectory(r))&&(r=se.join(r,se.basename(e)),s=yield T.exists(r)),s)if(t.force==null||t.force)yield fo(r);else throw new Error("Destination already exists")}yield dt(se.dirname(r)),yield T.rename(e,r)})}te.mv=yu;function fo(e){return he(this,void 0,void 0,function*(){if(T.IS_WINDOWS){try{(yield T.isDirectory(e,!0))?yield mt(`rd /s /q "${e}"`):yield mt(`del /f /a "${e}"`)}catch(r){if(r.code!=="ENOENT")throw r}try{yield T.unlink(e)}catch(r){if(r.code!=="ENOENT")throw r}}else{let r=!1;try{r=yield T.isDirectory(e)}catch(t){if(t.code!=="ENOENT")throw t;return}r?yield mt(`rm -rf "${e}"`):yield T.unlink(e)}})}te.rmRF=fo;function dt(e){return he(this,void 0,void 0,function*(){yield T.mkdirP(e)})}te.mkdirP=dt;function ho(e,r){return he(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");if(r&&!(yield ho(e,!1)))throw T.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 t=[];if(T.IS_WINDOWS&&process.env.PATHEXT)for(let o of process.env.PATHEXT.split(se.delimiter))o&&t.push(o);if(T.isRooted(e)){let o=yield T.tryGetExecutablePath(e,t);return o||""}if(e.includes("/")||T.IS_WINDOWS&&e.includes("\\"))return"";let s=[];if(process.env.PATH)for(let o of process.env.PATH.split(se.delimiter))o&&s.push(o);for(let o of s){let n=yield T.tryGetExecutablePath(o+se.sep+e,t);if(n)return n}return""}catch(t){throw new Error(`which failed with message ${t.message}`)}})}te.which=ho;function wu(e){let r=e.force==null?!0:e.force,t=Boolean(e.recursive);return{force:r,recursive:t}}function po(e,r,t,s){return he(this,void 0,void 0,function*(){if(t>=255)return;t++,yield dt(r);let o=yield T.readdir(e);for(let n of o){let i=`${e}/${n}`,a=`${r}/${n}`;(yield T.lstat(i)).isDirectory()?yield po(i,a,t,s):yield mo(i,a,s)}yield T.chmod(r,(yield T.stat(e)).mode)})}function mo(e,r,t){return he(this,void 0,void 0,function*(){if((yield T.lstat(e)).isSymbolicLink()){try{yield T.lstat(r),yield T.unlink(r)}catch(o){o.code==="EPERM"&&(yield T.chmod(r,"0666"),yield T.unlink(r))}let s=yield T.readlink(e);yield T.symlink(s,r,T.IS_WINDOWS?"junction":null)}else(!(yield T.exists(r))||t)&&(yield T.copyFile(e,r))})}});var We=m((ym,Eo)=>{var vu="2.0.0",_u=256,Gu=Number.MAX_SAFE_INTEGER||9007199254740991,Ou=16;Eo.exports={SEMVER_SPEC_VERSION:vu,MAX_LENGTH:_u,MAX_SAFE_INTEGER:Gu,MAX_SAFE_COMPONENT_LENGTH:Ou}});var Xe=m((vm,To)=>{var Ru=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};To.exports=Ru});var ge=m((me,wo)=>{var{MAX_SAFE_COMPONENT_LENGTH:ft}=We(),Au=Xe();me=wo.exports={};var Su=me.re=[],f=me.src=[],h=me.t={},Pu=0,g=(e,r,t)=>{let s=Pu++;Au(s,r),h[e]=s,f[s]=r,Su[s]=new RegExp(r,t?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*");g("NUMERICIDENTIFIERLOOSE","[0-9]+");g("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");g("MAINVERSION",`(${f[h.NUMERICIDENTIFIER]})\\.(${f[h.NUMERICIDENTIFIER]})\\.(${f[h.NUMERICIDENTIFIER]})`);g("MAINVERSIONLOOSE",`(${f[h.NUMERICIDENTIFIERLOOSE]})\\.(${f[h.NUMERICIDENTIFIERLOOSE]})\\.(${f[h.NUMERICIDENTIFIERLOOSE]})`);g("PRERELEASEIDENTIFIER",`(?:${f[h.NUMERICIDENTIFIER]}|${f[h.NONNUMERICIDENTIFIER]})`);g("PRERELEASEIDENTIFIERLOOSE",`(?:${f[h.NUMERICIDENTIFIERLOOSE]}|${f[h.NONNUMERICIDENTIFIER]})`);g("PRERELEASE",`(?:-(${f[h.PRERELEASEIDENTIFIER]}(?:\\.${f[h.PRERELEASEIDENTIFIER]})*))`);g("PRERELEASELOOSE",`(?:-?(${f[h.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${f[h.PRERELEASEIDENTIFIERLOOSE]})*))`);g("BUILDIDENTIFIER","[0-9A-Za-z-]+");g("BUILD",`(?:\\+(${f[h.BUILDIDENTIFIER]}(?:\\.${f[h.BUILDIDENTIFIER]})*))`);g("FULLPLAIN",`v?${f[h.MAINVERSION]}${f[h.PRERELEASE]}?${f[h.BUILD]}?`);g("FULL",`^${f[h.FULLPLAIN]}$`);g("LOOSEPLAIN",`[v=\\s]*${f[h.MAINVERSIONLOOSE]}${f[h.PRERELEASELOOSE]}?${f[h.BUILD]}?`);g("LOOSE",`^${f[h.LOOSEPLAIN]}$`);g("GTLT","((?:<|>)?=?)");g("XRANGEIDENTIFIERLOOSE",`${f[h.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);g("XRANGEIDENTIFIER",`${f[h.NUMERICIDENTIFIER]}|x|X|\\*`);g("XRANGEPLAIN",`[v=\\s]*(${f[h.XRANGEIDENTIFIER]})(?:\\.(${f[h.XRANGEIDENTIFIER]})(?:\\.(${f[h.XRANGEIDENTIFIER]})(?:${f[h.PRERELEASE]})?${f[h.BUILD]}?)?)?`);g("XRANGEPLAINLOOSE",`[v=\\s]*(${f[h.XRANGEIDENTIFIERLOOSE]})(?:\\.(${f[h.XRANGEIDENTIFIERLOOSE]})(?:\\.(${f[h.XRANGEIDENTIFIERLOOSE]})(?:${f[h.PRERELEASELOOSE]})?${f[h.BUILD]}?)?)?`);g("XRANGE",`^${f[h.GTLT]}\\s*${f[h.XRANGEPLAIN]}$`);g("XRANGELOOSE",`^${f[h.GTLT]}\\s*${f[h.XRANGEPLAINLOOSE]}$`);g("COERCE",`(^|[^\\d])(\\d{1,${ft}})(?:\\.(\\d{1,${ft}}))?(?:\\.(\\d{1,${ft}}))?(?:$|[^\\d])`);g("COERCERTL",f[h.COERCE],!0);g("LONETILDE","(?:~>?)");g("TILDETRIM",`(\\s*)${f[h.LONETILDE]}\\s+`,!0);me.tildeTrimReplace="$1~";g("TILDE",`^${f[h.LONETILDE]}${f[h.XRANGEPLAIN]}$`);g("TILDELOOSE",`^${f[h.LONETILDE]}${f[h.XRANGEPLAINLOOSE]}$`);g("LONECARET","(?:\\^)");g("CARETTRIM",`(\\s*)${f[h.LONECARET]}\\s+`,!0);me.caretTrimReplace="$1^";g("CARET",`^${f[h.LONECARET]}${f[h.XRANGEPLAIN]}$`);g("CARETLOOSE",`^${f[h.LONECARET]}${f[h.XRANGEPLAINLOOSE]}$`);g("COMPARATORLOOSE",`^${f[h.GTLT]}\\s*(${f[h.LOOSEPLAIN]})$|^$`);g("COMPARATOR",`^${f[h.GTLT]}\\s*(${f[h.FULLPLAIN]})$|^$`);g("COMPARATORTRIM",`(\\s*)${f[h.GTLT]}\\s*(${f[h.LOOSEPLAIN]}|${f[h.XRANGEPLAIN]})`,!0);me.comparatorTrimReplace="$1$2$3";g("HYPHENRANGE",`^\\s*(${f[h.XRANGEPLAIN]})\\s+-\\s+(${f[h.XRANGEPLAIN]})\\s*$`);g("HYPHENRANGELOOSE",`^\\s*(${f[h.XRANGEPLAINLOOSE]})\\s+-\\s+(${f[h.XRANGEPLAINLOOSE]})\\s*$`);g("STAR","(<|>)?=?\\s*\\*");g("GTE0","^\\s*>=\\s*0.0.0\\s*$");g("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var Ke=m((_m,bo)=>{var ku=["includePrerelease","loose","rtl"],qu=e=>e?typeof e!="object"?{loose:!0}:ku.filter(r=>e[r]).reduce((r,t)=>(r[t]=!0,r),{}):{};bo.exports=qu});var gr=m((Gm,yo)=>{var vo=/^[0-9]+$/,_o=(e,r)=>{let t=vo.test(e),s=vo.test(r);return t&&s&&(e=+e,r=+r),e===r?0:t&&!s?-1:s&&!t?1:e_o(r,e);yo.exports={compareIdentifiers:_o,rcompareIdentifiers:Iu}});var P=m((Om,Go)=>{var Er=Xe(),{MAX_LENGTH:Oo,MAX_SAFE_INTEGER:Tr}=We(),{re:Ro,t:Ao}=ge(),$u=Ke(),{compareIdentifiers:Je}=gr(),B=class{constructor(r,t){if(t=$u(t),r instanceof B){if(r.loose===!!t.loose&&r.includePrerelease===!!t.includePrerelease)return r;r=r.version}else if(typeof r!="string")throw new TypeError(`Invalid Version: ${r}`);if(r.length>Oo)throw new TypeError(`version is longer than ${Oo} characters`);Er("SemVer",r,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let s=r.trim().match(t.loose?Ro[Ao.LOOSE]:Ro[Ao.FULL]);if(!s)throw new TypeError(`Invalid Version: ${r}`);if(this.raw=r,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>Tr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Tr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Tr||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let n=+o;if(n>=0&&n=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);s===-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: ${r}`)}return this.format(),this.raw=this.version,this}};Go.exports=B});var Ee=m((Rm,So)=>{var{MAX_LENGTH:Cu}=We(),{re:Po,t:ko}=ge(),qo=P(),Lu=Ke(),Uu=(e,r)=>{if(r=Lu(r),e instanceof qo)return e;if(typeof e!="string"||e.length>Cu||!(r.loose?Po[ko.LOOSE]:Po[ko.FULL]).test(e))return null;try{return new qo(e,r)}catch(s){return null}};So.exports=Uu});var $o=m((Am,Io)=>{var xu=Ee(),Du=(e,r)=>{let t=xu(e,r);return t?t.version:null};Io.exports=Du});var Lo=m((Sm,Co)=>{var Fu=Ee(),Nu=(e,r)=>{let t=Fu(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null};Co.exports=Nu});var xo=m((Pm,Uo)=>{var ju=P(),Bu=(e,r,t,s)=>{typeof t=="string"&&(s=t,t=void 0);try{return new ju(e,t).inc(r,s).version}catch(o){return null}};Uo.exports=Bu});var H=m((km,Do)=>{var Fo=P(),Hu=(e,r,t)=>new Fo(e,t).compare(new Fo(r,t));Do.exports=Hu});var wr=m((qm,No)=>{var Mu=H(),zu=(e,r,t)=>Mu(e,r,t)===0;No.exports=zu});var Ho=m((Im,jo)=>{var Bo=Ee(),Vu=wr(),Wu=(e,r)=>{if(Vu(e,r))return null;{let t=Bo(e),s=Bo(r),o=t.prerelease.length||s.prerelease.length,n=o?"pre":"",i=o?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==s[a])return n+a;return i}};jo.exports=Wu});var zo=m(($m,Mo)=>{var Xu=P(),Ku=(e,r)=>new Xu(e,r).major;Mo.exports=Ku});var Wo=m((Cm,Vo)=>{var Ju=P(),Yu=(e,r)=>new Ju(e,r).minor;Vo.exports=Yu});var Ko=m((Lm,Xo)=>{var Zu=P(),Qu=(e,r)=>new Zu(e,r).patch;Xo.exports=Qu});var Yo=m((Um,Jo)=>{var el=Ee(),rl=(e,r)=>{let t=el(e,r);return t&&t.prerelease.length?t.prerelease:null};Jo.exports=rl});var Qo=m((xm,Zo)=>{var tl=H(),sl=(e,r,t)=>tl(r,e,t);Zo.exports=sl});var rn=m((Dm,en)=>{var ol=H(),nl=(e,r)=>ol(e,r,!0);en.exports=nl});var br=m((Fm,tn)=>{var sn=P(),il=(e,r,t)=>{let s=new sn(e,t),o=new sn(r,t);return s.compare(o)||s.compareBuild(o)};tn.exports=il});var nn=m((Nm,on)=>{var al=br(),cl=(e,r)=>e.sort((t,s)=>al(t,s,r));on.exports=cl});var cn=m((jm,an)=>{var ul=br(),ll=(e,r)=>e.sort((t,s)=>ul(s,t,r));an.exports=ll});var Ye=m((Bm,un)=>{var pl=H(),ml=(e,r,t)=>pl(e,r,t)>0;un.exports=ml});var yr=m((Hm,ln)=>{var dl=H(),fl=(e,r,t)=>dl(e,r,t)<0;ln.exports=fl});var ht=m((Mm,pn)=>{var hl=H(),gl=(e,r,t)=>hl(e,r,t)!==0;pn.exports=gl});var vr=m((zm,mn)=>{var El=H(),Tl=(e,r,t)=>El(e,r,t)>=0;mn.exports=Tl});var _r=m((Vm,dn)=>{var wl=H(),bl=(e,r,t)=>wl(e,r,t)<=0;dn.exports=bl});var gt=m((Wm,fn)=>{var yl=wr(),vl=ht(),_l=Ye(),Gl=vr(),Ol=yr(),Rl=_r(),Al=(e,r,t,s)=>{switch(r){case"===":return typeof e=="object"&&(e=e.version),typeof t=="object"&&(t=t.version),e===t;case"!==":return typeof e=="object"&&(e=e.version),typeof t=="object"&&(t=t.version),e!==t;case"":case"=":case"==":return yl(e,t,s);case"!=":return vl(e,t,s);case">":return _l(e,t,s);case">=":return Gl(e,t,s);case"<":return Ol(e,t,s);case"<=":return Rl(e,t,s);default:throw new TypeError(`Invalid operator: ${r}`)}};fn.exports=Al});var gn=m((Xm,hn)=>{var Sl=P(),Pl=Ee(),{re:Gr,t:Or}=ge(),kl=(e,r)=>{if(e instanceof Sl)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;r=r||{};let t=null;if(!r.rtl)t=e.match(Gr[Or.COERCE]);else{let s;for(;(s=Gr[Or.COERCERTL].exec(e))&&(!t||t.index+t[0].length!==e.length);)(!t||s.index+s[0].length!==t.index+t[0].length)&&(t=s),Gr[Or.COERCERTL].lastIndex=s.index+s[1].length+s[2].length;Gr[Or.COERCERTL].lastIndex=-1}return t===null?null:Pl(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,r)};hn.exports=kl});var Tn=m((Km,En)=>{"use strict";En.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let r=this.head;r;r=r.next)yield r.value}}});var bn=m((Jm,wn)=>{"use strict";wn.exports=w;w.Node=Te;w.create=w;function w(e){var r=this;if(r instanceof w||(r=new w),r.tail=null,r.head=null,r.length=0,e&&typeof e.forEach=="function")e.forEach(function(o){r.push(o)});else if(arguments.length>0)for(var t=0,s=arguments.length;t1)t=r;else if(this.head)s=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var o=0;s!==null;o++)t=e(t,s.value,o),s=s.next;return t};w.prototype.reduceReverse=function(e,r){var t,s=this.tail;if(arguments.length>1)t=r;else if(this.tail)s=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var o=this.length-1;s!==null;o--)t=e(t,s.value,o),s=s.prev;return t};w.prototype.toArray=function(){for(var e=new Array(this.length),r=0,t=this.head;t!==null;r++)e[r]=t.value,t=t.next;return e};w.prototype.toArrayReverse=function(){for(var e=new Array(this.length),r=0,t=this.tail;t!==null;r++)e[r]=t.value,t=t.prev;return e};w.prototype.slice=function(e,r){r=r||this.length,r<0&&(r+=this.length),e=e||0,e<0&&(e+=this.length);var t=new w;if(rthis.length&&(r=this.length);for(var s=0,o=this.head;o!==null&&sthis.length&&(r=this.length);for(var s=this.length,o=this.tail;o!==null&&s>r;s--)o=o.prev;for(;o!==null&&s>e;s--,o=o.prev)t.push(o.value);return t};w.prototype.splice=function(e,r,...t){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var s=0,o=this.head;o!==null&&s{"use strict";var Cl=bn(),we=Symbol("max"),oe=Symbol("length"),$e=Symbol("lengthCalculator"),Ze=Symbol("allowStale"),be=Symbol("maxAge"),ne=Symbol("dispose"),vn=Symbol("noDisposeOnSet"),R=Symbol("lruList"),X=Symbol("cache"),_n=Symbol("updateAgeOnGet"),Et=()=>1,Gn=class{constructor(r){if(typeof r=="number"&&(r={max:r}),r||(r={}),r.max&&(typeof r.max!="number"||r.max<0))throw new TypeError("max must be a non-negative number");let t=this[we]=r.max||Infinity,s=r.length||Et;if(this[$e]=typeof s!="function"?Et:s,this[Ze]=r.stale||!1,r.maxAge&&typeof r.maxAge!="number")throw new TypeError("maxAge must be a number");this[be]=r.maxAge||0,this[ne]=r.dispose,this[vn]=r.noDisposeOnSet||!1,this[_n]=r.updateAgeOnGet||!1,this.reset()}set max(r){if(typeof r!="number"||r<0)throw new TypeError("max must be a non-negative number");this[we]=r||Infinity,Qe(this)}get max(){return this[we]}set allowStale(r){this[Ze]=!!r}get allowStale(){return this[Ze]}set maxAge(r){if(typeof r!="number")throw new TypeError("maxAge must be a non-negative number");this[be]=r,Qe(this)}get maxAge(){return this[be]}set lengthCalculator(r){typeof r!="function"&&(r=Et),r!==this[$e]&&(this[$e]=r,this[oe]=0,this[R].forEach(t=>{t.length=this[$e](t.value,t.key),this[oe]+=t.length})),Qe(this)}get lengthCalculator(){return this[$e]}get length(){return this[oe]}get itemCount(){return this[R].length}rforEach(r,t){t=t||this;for(let s=this[R].tail;s!==null;){let o=s.prev;Rn(this,r,s,t),s=o}}forEach(r,t){t=t||this;for(let s=this[R].head;s!==null;){let o=s.next;Rn(this,r,s,t),s=o}}keys(){return this[R].toArray().map(r=>r.key)}values(){return this[R].toArray().map(r=>r.value)}reset(){this[ne]&&this[R]&&this[R].length&&this[R].forEach(r=>this[ne](r.key,r.value)),this[X]=new Map,this[R]=new Cl,this[oe]=0}dump(){return this[R].map(r=>Rr(this,r)?!1:{k:r.key,v:r.value,e:r.now+(r.maxAge||0)}).toArray().filter(r=>r)}dumpLru(){return this[R]}set(r,t,s){if(s=s||this[be],s&&typeof s!="number")throw new TypeError("maxAge must be a number");let o=s?Date.now():0,n=this[$e](t,r);if(this[X].has(r)){if(n>this[we])return Ce(this,this[X].get(r)),!1;let c=this[X].get(r).value;return this[ne]&&(this[vn]||this[ne](r,c.value)),c.now=o,c.maxAge=s,c.value=t,this[oe]+=n-c.length,c.length=n,this.get(r),Qe(this),!0}let i=new On(r,t,n,o,s);return i.length>this[we]?(this[ne]&&this[ne](r,t),!1):(this[oe]+=i.length,this[R].unshift(i),this[X].set(r,this[R].head),Qe(this),!0)}has(r){if(!this[X].has(r))return!1;let t=this[X].get(r).value;return!Rr(this,t)}get(r){return Tt(this,r,!0)}peek(r){return Tt(this,r,!1)}pop(){let r=this[R].tail;return r?(Ce(this,r),r.value):null}del(r){Ce(this,this[X].get(r))}load(r){this.reset();let t=Date.now();for(let s=r.length-1;s>=0;s--){let o=r[s],n=o.e||0;if(n===0)this.set(o.k,o.v);else{let i=n-t;i>0&&this.set(o.k,o.v,i)}}}prune(){this[X].forEach((r,t)=>Tt(this,t,!1))}},Tt=(e,r,t)=>{let s=e[X].get(r);if(s){let o=s.value;if(Rr(e,o)){if(Ce(e,s),!e[Ze])return}else t&&(e[_n]&&(s.value.now=Date.now()),e[R].unshiftNode(s));return o.value}},Rr=(e,r)=>{if(!r||!r.maxAge&&!e[be])return!1;let t=Date.now()-r.now;return r.maxAge?t>r.maxAge:e[be]&&t>e[be]},Qe=e=>{if(e[oe]>e[we])for(let r=e[R].tail;e[oe]>e[we]&&r!==null;){let t=r.prev;Ce(e,r),r=t}},Ce=(e,r)=>{if(r){let t=r.value;e[ne]&&e[ne](t.key,t.value),e[oe]-=t.length,e[X].delete(t.key),e[R].removeNode(r)}},On=class{constructor(r,t,s,o,n){this.key=r,this.value=t,this.length=s,this.now=o,this.maxAge=n||0}},Rn=(e,r,t,s)=>{let o=t.value;Rr(e,o)&&(Ce(e,t),e[Ze]||(o=void 0)),o&&r.call(s,o.value,o.key,e)};yn.exports=Gn});var M=m((Zm,Sn)=>{var Le=class{constructor(r,t){if(t=Ll(t),r instanceof Le)return r.loose===!!t.loose&&r.includePrerelease===!!t.includePrerelease?r:new Le(r.raw,t);if(r instanceof wt)return this.raw=r.value,this.set=[[r]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=r,this.set=r.split(/\s*\|\|\s*/).map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${r}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(o=>!kn(o[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&Nl(o[0])){this.set=[o];break}}}this.format()}format(){return this.range=this.set.map(r=>r.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(r){r=r.trim();let s=`parseRange:${Object.keys(this.options).join(",")}:${r}`,o=Pn.get(s);if(o)return o;let n=this.options.loose,i=n?k[A.HYPHENRANGELOOSE]:k[A.HYPHENRANGE];r=r.replace(i,Hl(this.options.includePrerelease)),G("hyphen replace",r),r=r.replace(k[A.COMPARATORTRIM],xl),G("comparator trim",r,k[A.COMPARATORTRIM]),r=r.replace(k[A.TILDETRIM],Dl),r=r.replace(k[A.CARETTRIM],Fl),r=r.split(/\s+/).join(" ");let a=n?k[A.COMPARATORLOOSE]:k[A.COMPARATOR],c=r.split(" ").map(d=>jl(d,this.options)).join(" ").split(/\s+/).map(d=>Bl(d,this.options)).filter(this.options.loose?d=>!!d.match(a):()=>!0).map(d=>new wt(d,this.options)),u=c.length,l=new Map;for(let d of c){if(kn(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let p=[...l.values()];return Pn.set(s,p),p}intersects(r,t){if(!(r instanceof Le))throw new TypeError("a Range is required");return this.set.some(s=>qn(s,t)&&r.set.some(o=>qn(o,t)&&s.every(n=>o.every(i=>n.intersects(i,t)))))}test(r){if(!r)return!1;if(typeof r=="string")try{r=new Ul(r,this.options)}catch(t){return!1}for(let t=0;te.value==="<0.0.0-0",Nl=e=>e.value==="",qn=(e,r)=>{let t=!0,s=e.slice(),o=s.pop();for(;t&&s.length;)t=s.every(n=>o.intersects(n,r)),o=s.pop();return t},jl=(e,r)=>(G("comp",e,r),e=Wl(e,r),G("caret",e),e=Vl(e,r),G("tildes",e),e=Xl(e,r),G("xrange",e),e=Kl(e,r),G("stars",e),e),I=e=>!e||e.toLowerCase()==="x"||e==="*",Vl=(e,r)=>e.trim().split(/\s+/).map(t=>Jl(t,r)).join(" "),Jl=(e,r)=>{let t=r.loose?k[A.TILDELOOSE]:k[A.TILDE];return e.replace(t,(s,o,n,i,a)=>{G("tilde",e,s,o,n,i,a);let c;return I(o)?c="":I(n)?c=`>=${o}.0.0 <${+o+1}.0.0-0`:I(i)?c=`>=${o}.${n}.0 <${o}.${+n+1}.0-0`:a?(G("replaceTilde pr",a),c=`>=${o}.${n}.${i}-${a} <${o}.${+n+1}.0-0`):c=`>=${o}.${n}.${i} <${o}.${+n+1}.0-0`,G("tilde return",c),c})},Wl=(e,r)=>e.trim().split(/\s+/).map(t=>Yl(t,r)).join(" "),Yl=(e,r)=>{G("caret",e,r);let t=r.loose?k[A.CARETLOOSE]:k[A.CARET],s=r.includePrerelease?"-0":"";return e.replace(t,(o,n,i,a,c)=>{G("caret",e,o,n,i,a,c);let u;return I(n)?u="":I(i)?u=`>=${n}.0.0${s} <${+n+1}.0.0-0`:I(a)?n==="0"?u=`>=${n}.${i}.0${s} <${n}.${+i+1}.0-0`:u=`>=${n}.${i}.0${s} <${+n+1}.0.0-0`:c?(G("replaceCaret pr",c),n==="0"?i==="0"?u=`>=${n}.${i}.${a}-${c} <${n}.${i}.${+a+1}-0`:u=`>=${n}.${i}.${a}-${c} <${n}.${+i+1}.0-0`:u=`>=${n}.${i}.${a}-${c} <${+n+1}.0.0-0`):(G("no pr"),n==="0"?i==="0"?u=`>=${n}.${i}.${a}${s} <${n}.${i}.${+a+1}-0`:u=`>=${n}.${i}.${a}${s} <${n}.${+i+1}.0-0`:u=`>=${n}.${i}.${a} <${+n+1}.0.0-0`),G("caret return",u),u})},Xl=(e,r)=>(G("replaceXRanges",e,r),e.split(/\s+/).map(t=>Zl(t,r)).join(" ")),Zl=(e,r)=>{e=e.trim();let t=r.loose?k[A.XRANGELOOSE]:k[A.XRANGE];return e.replace(t,(s,o,n,i,a,c)=>{G("xRange",e,s,o,n,i,a,c);let u=I(n),l=u||I(i),p=l||I(a),d=p;return o==="="&&d&&(o=""),c=r.includePrerelease?"-0":"",u?o===">"||o==="<"?s="<0.0.0-0":s="*":o&&d?(l&&(i=0),a=0,o===">"?(o=">=",l?(n=+n+1,i=0,a=0):(i=+i+1,a=0)):o==="<="&&(o="<",l?n=+n+1:i=+i+1),o==="<"&&(c="-0"),s=`${o+n}.${i}.${a}${c}`):l?s=`>=${n}.0.0${c} <${+n+1}.0.0-0`:p&&(s=`>=${n}.${i}.0${c} <${n}.${+i+1}.0-0`),G("xRange return",s),s})},Kl=(e,r)=>(G("replaceStars",e,r),e.trim().replace(k[A.STAR],"")),Bl=(e,r)=>(G("replaceGTE0",e,r),e.trim().replace(k[r.includePrerelease?A.GTE0PRE:A.GTE0],"")),Hl=e=>(r,t,s,o,n,i,a,c,u,l,p,d,b)=>(I(s)?t="":I(o)?t=`>=${s}.0.0${e?"-0":""}`:I(n)?t=`>=${s}.${o}.0${e?"-0":""}`:i?t=`>=${t}`:t=`>=${t}${e?"-0":""}`,I(u)?c="":I(l)?c=`<${+u+1}.0.0-0`:I(p)?c=`<${u}.${+l+1}.0-0`:d?c=`<=${u}.${l}.${p}-${d}`:e?c=`<${u}.${l}.${+p+1}-0`:c=`<=${c}`,`${t} ${c}`.trim()),Ml=(e,r,t)=>{for(let s=0;s0){let o=e[s].semver;if(o.major===r.major&&o.minor===r.minor&&o.patch===r.patch)return!0}return!1}return!0}});var er=m((Qm,In)=>{var rr=Symbol("SemVer ANY"),tr=class{static get ANY(){return rr}constructor(r,t){if(t=Ql(t),r instanceof tr){if(r.loose===!!t.loose)return r;r=r.value}yt("comparator",r,t),this.options=t,this.loose=!!t.loose,this.parse(r),this.semver===rr?this.value="":this.value=this.operator+this.semver.version,yt("comp",this)}parse(r){let t=this.options.loose?$n[Cn.COMPARATORLOOSE]:$n[Cn.COMPARATOR],s=r.match(t);if(!s)throw new TypeError(`Invalid comparator: ${r}`);this.operator=s[1]!==void 0?s[1]:"",this.operator==="="&&(this.operator=""),s[2]?this.semver=new Ln(s[2],this.options.loose):this.semver=rr}toString(){return this.value}test(r){if(yt("Comparator.test",r,this.options.loose),this.semver===rr||r===rr)return!0;if(typeof r=="string")try{r=new Ln(r,this.options)}catch(t){return!1}return bt(r,this.operator,this.semver,this.options)}intersects(r,t){if(!(r instanceof tr))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new Un(r.value,t).test(this.value);if(r.operator==="")return r.value===""?!0:new Un(this.value,t).test(r.semver);let s=(this.operator===">="||this.operator===">")&&(r.operator===">="||r.operator===">"),o=(this.operator==="<="||this.operator==="<")&&(r.operator==="<="||r.operator==="<"),n=this.semver.version===r.semver.version,i=(this.operator===">="||this.operator==="<=")&&(r.operator===">="||r.operator==="<="),a=bt(this.semver,"<",r.semver,t)&&(this.operator===">="||this.operator===">")&&(r.operator==="<="||r.operator==="<"),c=bt(this.semver,">",r.semver,t)&&(this.operator==="<="||this.operator==="<")&&(r.operator===">="||r.operator===">");return s||o||n&&i||a||c}};In.exports=tr;var Ql=Ke(),{re:$n,t:Cn}=ge(),bt=gt(),yt=Xe(),Ln=P(),Un=M()});var sr=m((ed,xn)=>{var ep=M(),rp=(e,r,t)=>{try{r=new ep(r,t)}catch(s){return!1}return r.test(e)};xn.exports=rp});var Fn=m((rd,Dn)=>{var tp=M(),sp=(e,r)=>new tp(e,r).set.map(t=>t.map(s=>s.value).join(" ").trim().split(" "));Dn.exports=sp});var jn=m((td,Nn)=>{var op=P(),np=M(),ip=(e,r,t)=>{let s=null,o=null,n=null;try{n=new np(r,t)}catch(i){return null}return e.forEach(i=>{n.test(i)&&(!s||o.compare(i)===-1)&&(s=i,o=new op(s,t))}),s};Nn.exports=ip});var Hn=m((sd,Bn)=>{var ap=P(),cp=M(),up=(e,r,t)=>{let s=null,o=null,n=null;try{n=new cp(r,t)}catch(i){return null}return e.forEach(i=>{n.test(i)&&(!s||o.compare(i)===1)&&(s=i,o=new ap(s,t))}),s};Bn.exports=up});var Vn=m((od,Mn)=>{var vt=P(),lp=M(),zn=Ye(),pp=(e,r)=>{e=new lp(e,r);let t=new vt("0.0.0");if(e.test(t)||(t=new vt("0.0.0-0"),e.test(t)))return t;t=null;for(let s=0;s{let a=new vt(i.semver.version);switch(i.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!n||zn(a,n))&&(n=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),n&&(!t||zn(t,n))&&(t=n)}return t&&e.test(t)?t:null};Mn.exports=pp});var Xn=m((nd,Wn)=>{var mp=M(),dp=(e,r)=>{try{return new mp(e,r).range||"*"}catch(t){return null}};Wn.exports=dp});var Ar=m((id,Kn)=>{var fp=P(),Jn=er(),{ANY:hp}=Jn,gp=M(),Ep=sr(),Yn=Ye(),Zn=yr(),Tp=_r(),wp=vr(),bp=(e,r,t,s)=>{e=new fp(e,s),r=new gp(r,s);let o,n,i,a,c;switch(t){case">":o=Yn,n=Tp,i=Zn,a=">",c=">=";break;case"<":o=Zn,n=wp,i=Yn,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ep(e,r,s))return!1;for(let u=0;u{b.semver===hp&&(b=new Jn(">=0.0.0")),p=p||b,d=d||b,o(b.semver,p.semver,s)?p=b:i(b.semver,d.semver,s)&&(d=b)}),p.operator===a||p.operator===c||(!d.operator||d.operator===a)&&n(e,d.semver))return!1;if(d.operator===c&&i(e,d.semver))return!1}return!0};Kn.exports=bp});var ei=m((ad,Qn)=>{var yp=Ar(),vp=(e,r,t)=>yp(e,r,">",t);Qn.exports=vp});var ti=m((cd,ri)=>{var _p=Ar(),Gp=(e,r,t)=>_p(e,r,"<",t);ri.exports=Gp});var ni=m((ud,si)=>{var oi=M(),Op=(e,r,t)=>(e=new oi(e,t),r=new oi(r,t),e.intersects(r));si.exports=Op});var ai=m((ld,ii)=>{var Rp=sr(),Ap=H();ii.exports=(e,r,t)=>{let s=[],o=null,n=null,i=e.sort((l,p)=>Ap(l,p,t));for(let l of i)Rp(l,r,t)?(n=l,o||(o=l)):(n&&s.push([o,n]),n=null,o=null);o&&s.push([o,null]);let a=[];for(let[l,p]of s)l===p?a.push(l):!p&&l===i[0]?a.push("*"):p?l===i[0]?a.push(`<=${p}`):a.push(`${l} - ${p}`):a.push(`>=${l}`);let c=a.join(" || "),u=typeof r.raw=="string"?r.raw:String(r);return c.length{var ui=M(),{ANY:li}=er(),or=sr(),_t=H(),Pp=(e,r,t)=>{if(e===r)return!0;e=new ui(e,t),r=new ui(r,t);let s=!1;e:for(let o of e.set){for(let n of r.set){let i=Sp(o,n,t);if(s=s||i!==null,i)continue e}if(s)return!1}return!0},Sp=(e,r,t)=>{if(e===r)return!0;if(e.length===1&&e[0].semver===li)return r.length===1&&r[0].semver===li;let s=new Set,o,n;for(let p of e)p.operator===">"||p.operator===">="?o=pi(o,p,t):p.operator==="<"||p.operator==="<="?n=mi(n,p,t):s.add(p.semver);if(s.size>1)return null;let i;if(o&&n){if(i=_t(o.semver,n.semver,t),i>0)return null;if(i===0&&(o.operator!==">="||n.operator!=="<="))return null}for(let p of s){if(o&&!or(p,String(o),t)||n&&!or(p,String(n),t))return null;for(let d of r)if(!or(p,String(d),t))return!1;return!0}let a,c,u,l;for(let p of r){if(l=l||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",o){if(p.operator===">"||p.operator===">="){if(a=pi(o,p,t),a===p&&a!==o)return!1}else if(o.operator===">="&&!or(o.semver,String(p),t))return!1}if(n){if(p.operator==="<"||p.operator==="<="){if(c=mi(n,p,t),c===p&&c!==n)return!1}else if(n.operator==="<="&&!or(n.semver,String(p),t))return!1}if(!p.operator&&(n||o)&&i!==0)return!1}return!(o&&u&&!n&&i!==0||n&&l&&!o&&i!==0)},pi=(e,r,t)=>{if(!e)return r;let s=_t(e.semver,r.semver,t);return s>0?e:s<0||r.operator===">"&&e.operator===">="?r:e},mi=(e,r,t)=>{if(!e)return r;let s=_t(e.semver,r.semver,t);return s<0?e:s>0||r.operator==="<"&&e.operator==="<="?r:e};ci.exports=Pp});var hi=m((md,fi)=>{var Gt=ge();fi.exports={re:Gt.re,src:Gt.src,tokens:Gt.t,SEMVER_SPEC_VERSION:We().SEMVER_SPEC_VERSION,SemVer:P(),compareIdentifiers:gr().compareIdentifiers,rcompareIdentifiers:gr().rcompareIdentifiers,parse:Ee(),valid:$o(),clean:Lo(),inc:xo(),diff:Ho(),major:zo(),minor:Wo(),patch:Ko(),prerelease:Yo(),compare:H(),rcompare:Qo(),compareLoose:rn(),compareBuild:br(),sort:nn(),rsort:cn(),gt:Ye(),lt:yr(),eq:wr(),neq:ht(),gte:vr(),lte:_r(),cmp:gt(),coerce:gn(),Comparator:er(),Range:M(),satisfies:sr(),toComparators:Fn(),maxSatisfying:jn(),minSatisfying:Hn(),minVersion:Vn(),validRange:Xn(),outside:Ar(),gtr:ei(),ltr:ti(),intersects:ni(),simplifyRange:ai(),subset:di()}});var D=J(Ft()),Sr=J(ao()),vi=J(go()),_i=J(require("child_process")),Gi=J(require("fs")),Oi=J(require("path")),Ri=J(hi());var gi=J(require("child_process"));function ie(e){return e.message!==void 0}var kp=100;function Ti(e,r,t){let s=Ei(`${e} breaking ${r} --against ${t}`);if(ie(s))return s;let o=Ei(`${e} breaking ${r} --against ${t} --error-format=json`);if(ie(o))return o;let n=qp(o.trim().split(` +`).filter(i=>i!==""));return ie(n)?n:{raw:s,fileAnnotations:n}}function Ei(e){try{gi.execSync(e)}catch(r){return Ip(r)?r.status==kp?r.stdout.toString():{message:r.stderr.toString()}:{message:`failed to run command: ${e}`}}return""}function qp(e){let r=[];for(let t=0;t{if(u.path===void 0||u.path===""){i.push(u.type+": "+u.message);return}n.push(xp(u))});let a=Lp;i.length!==0&&(i.unshift(a),a=i.join(` +`)),await new wi.Octokit({auth:e}).request("POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews",{owner:r,repo:t,pull_number:+s,body:a,event:Up,comments:n})}function xp(e){var s;let r;e.end_line!==void 0&&e.end_line!==0&&e.start_line!==void 0&&e.start_line!==0&&e.end_line>e.start_line&&(r=e.start_line);let t=e.end_line;return(t===void 0||t===0)&&(r===void 0||r===0)&&(t=1),{path:(s=e.path)!=null?s:"",body:Cp+e.message,start_line:r,line:t,start_side:bi,side:bi}}var Ai="0.41.0",Si="RUNNER_TEMP";async function Pi(){try{let e=await Dp();e!=null&&ie(e)&&D.setFailed(e.message)}catch(e){if(ie(e)){D.setFailed(e.message);return}D.setFailed("Internal error")}}async function Dp(){var l,p;let e=D.getInput("github_token");if(e==="")return{message:"a Github authentication token was not provided"};let r=D.getInput("input");if(r==="")return{message:"an input was not provided"};let t=D.getInput("against");if(t==="")return{message:"an against was not provided"};let s=Sr.context.repo.owner;if(s==="")return{message:"an owner was not provided"};let o=Sr.context.repo.repo;if(o==="")return{message:"a repository was not provided"};let n=await vi.which("buf",!0);if(n==="")return{message:'buf is not installed; please add the "bufbuild/buf-setup-action" step to your job found at https://github.com/bufbuild/buf-setup-action'};let i=_i.execSync(`${n} --version 2>&1`).toString();if(Ri.lt(i,Ai))return{message:`buf must be at least version ${Ai}, but found ${i}`};let a=D.getInput("buf_token");if(a!==""){let d=(l=process.env[Si])!=null?l:"";if(d==="")return{message:`expected ${Si} to be defined`};let b=Oi.join(d,".netrc");Gi.writeFileSync(b,`machine buf.build +password ${a}`,{flag:"w"}),process.env.NETRC=b}let c=Ti(n,r,t);if(ie(c))return c;if(c.fileAnnotations.length===0)return D.info("No breaking errors were found."),null;let u=(p=Sr.context.payload.pull_request)==null?void 0:p.number;if(u!==void 0)try{await yi(e,s,o,u,c.fileAnnotations)}catch(d){ie(d)?D.info(`Failed to write comments in-line: ${d.message}`):D.info("Failed to write comments in-line")}return{message:`buf found ${c.fileAnnotations.length} breaking failures. +${c.raw}`}}Pi(); /*! * is-plain-object * diff --git a/dist/main.js.map b/dist/main.js.map index 868e18d..9ad57e2 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/github/src/context.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/@actions/github/src/internal/utils.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", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/version.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/index.js", "../node_modules/@actions/github/src/utils.ts", "../node_modules/@actions/github/src/github.ts", "../node_modules/@actions/io/src/io-util.ts", "../node_modules/@actions/io/src/io.ts", "../src/run.ts", "../src/buf.ts", "../src/error.ts", "../src/github.ts", "../src/main.ts"], - "sourcesContent": [null, null, null, null, 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", 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", "const Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\",\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\",\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\",\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\",\n ],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\",\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\",\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\",\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\",\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\",\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\",\n ],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\",\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\",\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\",\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] },\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\",\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\",\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\",\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\",\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\",\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\",\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\",\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\",\n ],\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\",\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\",\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\",\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\",\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\",\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\",\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"],\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\n \"POST /content_references/{content_reference_id}/attachments\",\n { mediaType: { previews: [\"corsair\"] } },\n ],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\",\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\",\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\",\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\",\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\",\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\",\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"],\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\",\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\",\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\",\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\",\n ],\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\",\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\",\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } },\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\",\n ],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"],\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\n \"GET /codes_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getConductCode: [\n \"GET /codes_of_conduct/{key}\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getForRepo: [\n \"GET /repos/{owner}/{repo}/community/code_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n },\n emojis: { get: [\"GET /emojis\"] },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\n \"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n enableSelectedOrganizationGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n getAllowedActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n getGithubActionsPermissionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions\",\n ],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n setAllowedActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions\",\n ],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"],\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"],\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"],\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] },\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\",\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] },\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] },\n ],\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\",\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n { mediaType: { previews: [\"mockingbird\"] } },\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\",\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"],\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } },\n ],\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"],\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getStatusForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForAuthenticatedUser: [\n \"GET /user/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"],\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\",\n ],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\",\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\",\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\",\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\",\n ],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"],\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\",\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\",\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\",\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\",\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore\",\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore\",\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n },\n projects: {\n addCollaborator: [\n \"PUT /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createCard: [\n \"POST /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createColumn: [\n \"POST /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForAuthenticatedUser: [\n \"POST /user/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForOrg: [\n \"POST /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForRepo: [\n \"POST /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n delete: [\n \"DELETE /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteCard: [\n \"DELETE /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteColumn: [\n \"DELETE /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n get: [\n \"GET /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getCard: [\n \"GET /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getColumn: [\n \"GET /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCards: [\n \"GET /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCollaborators: [\n \"GET /projects/{project_id}/collaborators\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listColumns: [\n \"GET /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForRepo: [\n \"GET /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForUser: [\n \"GET /users/{username}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveCard: [\n \"POST /projects/columns/cards/{card_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveColumn: [\n \"POST /projects/columns/{column_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n update: [\n \"PATCH /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateCard: [\n \"PATCH /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateColumn: [\n \"PATCH /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\",\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\",\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\",\n { mediaType: { previews: [\"lydian\"] } },\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteLegacy: [\n \"DELETE /reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n {\n deprecated: \"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy\",\n },\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\n \"POST /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\",\n { mediaType: { previews: [\"baptiste\"] } },\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\",\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n deletePagesSite: [\n \"DELETE /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] },\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n ],\n getAllTopics: [\n \"GET /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n ],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\",\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\",\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\",\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\n \"PUT /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] },\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" },\n ],\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", { mediaType: { previews: [\"cloak\"] } }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", { mediaType: { previews: [\"mercy\"] } }],\n users: [\"GET /search/users\"],\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n ],\n listProjectsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"],\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"],\n },\n};\nexport default Endpoints;\n", "export const VERSION = \"4.13.5\";\n", "export function endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({ method, url }, defaults);\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n const scopeMethods = newMethods[scope];\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args);\n // There are currently no other decorations than `.mapToData`\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined,\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n delete options[name];\n }\n }\n return requestWithDefaults(options);\n }\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n", "import ENDPOINTS from \"./generated/endpoints\";\nimport { VERSION } from \"./version\";\nimport { endpointsToMethods } from \"./endpoints-to-methods\";\nexport function restEndpointMethods(octokit) {\n return endpointsToMethods(octokit, ENDPOINTS);\n}\nrestEndpointMethods.VERSION = VERSION;\n", "export const VERSION = \"2.13.2\";\n", "/**\n * Some \u201Clist\u201D response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nexport function normalizePaginatedListResponse(response) {\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n", "import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response\";\nexport function iterator(octokit, route, parameters) {\n const options = typeof route === \"function\"\n ? route.endpoint(parameters)\n : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return { value: normalizedResponse };\n },\n }),\n };\n}\n", "import { iterator } from \"./iterator\";\nexport function paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator, mapFn);\n });\n}\n", "import { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport const composePaginateRest = Object.assign(paginate, {\n iterator,\n});\n", "export const paginatingEndpoints = [\n \"GET /app/installations\",\n \"GET /applications/grants\",\n \"GET /authorizations\",\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /enterprises/{enterprise}/actions/runners\",\n \"GET /enterprises/{enterprise}/actions/runners/downloads\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runner-groups\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/runners/downloads\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/credential-authorizations\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/team-sync/groups\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /scim/v2/enterprises/{enterprise}/Groups\",\n \"GET /scim/v2/enterprises/{enterprise}/Users\",\n \"GET /scim/v2/organizations/{org}/Users\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/team-sync/group-mappings\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\",\n];\n", "import { paginatingEndpoints, } from \"./generated/paginating-endpoints\";\nexport { paginatingEndpoints } from \"./generated/paginating-endpoints\";\nexport function isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n }\n else {\n return false;\n }\n}\n", "import { VERSION } from \"./version\";\nimport { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport { composePaginateRest } from \"./compose-paginate\";\nexport { isPaginatingEndpoint, paginatingEndpoints, } from \"./paginating-endpoints\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit),\n }),\n };\n}\npaginateRest.VERSION = VERSION;\n", null, null, null, null, "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\n\nimport * as core from '@actions/core';\nimport * as github from '@actions/github'\nimport * as io from '@actions/io';\nimport { breaking } from './buf';\nimport { Error, isError } from './error';\nimport { postComments } from './github';\n\nexport async function run(): Promise {\n try {\n const result = await runBreaking();\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// runBreaking runs the buf-breaking action, and returns\n// a non-empty error if it fails.\nasync function runBreaking(): Promise {\n const authenticationToken = core.getInput('github_token');\n if (authenticationToken === '') {\n return {\n message: 'a Github authentication token was not provided'\n };\n }\n const input = core.getInput('input');\n if (input === '') {\n return {\n message: 'an input was not provided'\n };\n }\n const against = core.getInput('against');\n if (against === '') {\n return {\n message: 'an against was not provided'\n };\n }\n const owner = github.context.repo.owner;\n if (owner === '') {\n return {\n message: 'an owner was not provided'\n };\n }\n const repository = github.context.repo.repo;\n if (repository === '') {\n return {\n message: 'a repository was not provided'\n };\n }\n const binaryPath = await io.which('buf', true);\n if (binaryPath === '') {\n // TODO: Update this reference to a link once it's available.\n return {\n message: 'buf is not installed; please add the \"bufbuild/setup-buf\" step to your job'\n };\n }\n\n const result = breaking(binaryPath, input, against);\n if (isError(result)) {\n return result\n }\n if (result.fileAnnotations.length === 0) {\n core.info('No breaking errors were found.');\n return null;\n }\n\n const pullRequestNumber = github.context.payload.pull_request?.number;\n if (pullRequestNumber !== undefined) {\n // If this action was configured for pull requests, we post the\n // FileAnnotations as comments.\n try {\n await postComments(\n authenticationToken,\n owner,\n repository,\n pullRequestNumber,\n result.fileAnnotations,\n );\n } catch (error) {\n // Log the error, but continue so that we still write\n // out the raw output to the user.\n if (isError(error)) {\n core.info(`Failed to write comments in-line: ${error.message}`);\n } else {\n core.info(`Failed to write comments in-line`);\n }\n }\n }\n\n // Include the raw output so that the console includes sufficient context.\n return {\n message: `buf found ${result.fileAnnotations.length} breaking failures.\\n${result.raw}`\n };\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\n\nimport * as child from 'child_process';\nimport { Error, isError } from './error';\n\n// BreakingResult includes both the raw and formatted FileAnnotation\n// output of a 'buf breaking` command execution. We include both so\n// that we preserve the same content users would see on the command line.\nexport interface BreakingResult {\n raw: string;\n fileAnnotations: FileAnnotation[];\n}\n\n// FileAnnotation conforms the buf FileAnnotation definition\n// referenced from the following:\n// https://github.com/bufbuild/buf/blob/8255257bd94c9f1b5faa27242211c5caad05be79/internal/buf/bufanalysis/bufanalysis.go#L102\nexport interface FileAnnotation {\n type: string;\n message: string;\n path?: string;\n start_line?: number;\n end_line?: number;\n}\n\n// ExecException is a subset of the child.ExecException interface.\ninterface ExecException {\n stdout: Buffer | string;\n stderr: Buffer | string;\n}\n\n// breaking runs 'buf breaking' with the given command line arguments.\n// Note that we run the same 'buf breaking' command twice so that we\n// can write out the raw content that users see on the command line.\n// We do NOT attempt to reformat the structured FileAnnotation because\n// this approach is prone to differentiate from the raw output.\nexport function breaking(\n binaryPath: string,\n input: string,\n against: string,\n): BreakingResult | Error {\n const rawOutput = runCommand(`${binaryPath} breaking ${input} --against ${against}`);\n if (isError(rawOutput)) {\n return rawOutput\n }\n const jsonOutput = runCommand(`${binaryPath} breaking ${input} --against ${against} --error-format=json`);\n if (isError(jsonOutput)) {\n return jsonOutput\n }\n const fileAnnotations = parseLines(jsonOutput.trim().split('\\n').filter(elem => {\n return elem !== ''\n }))\n if (isError(fileAnnotations)) {\n return fileAnnotations\n }\n return {\n raw: rawOutput,\n fileAnnotations: fileAnnotations,\n };\n}\n\n// runCommand runs the given command and maps its output into an\n// array of FileAnnotations.\nfunction runCommand(cmd: string): string | Error {\n let output = '';\n try {\n child.execSync(cmd);\n } catch (error) {\n let commandError = '';\n if (isExecException(error)) {\n output = error.stdout.toString();\n commandError = error.stderr.toString();\n } else {\n commandError = `failed to run command: ${cmd}`\n }\n if (commandError !== '') {\n return {\n message: commandError,\n };\n }\n }\n return output\n}\n\n// parseLines parses the given output lines into an array\n// of FileAnnotations.\nfunction parseLines(lines: string[]): FileAnnotation[] | Error {\n const fileAnnotations: FileAnnotation[] = [];\n for (let index = 0; index < lines.length; index++) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const fileAnnotation = JSON.parse(lines[index]);\n if (!isFileAnnotation(fileAnnotation)) {\n return {\n message: `failed to parse \"${lines[index]}\" as file annotation`,\n };\n }\n fileAnnotations.push(fileAnnotation);\n } catch (error) {\n return {\n message: `failed to parse \"${lines[index]}\" as file annotation`,\n };\n }\n }\n return fileAnnotations;\n}\n\n// isFileAnnotation returns true if the given object is\n// a FileAnnotation according to the minimal fields that\n// must be present.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isFileAnnotation(o: any): o is FileAnnotation {\n return (\n 'type' in o &&\n 'message' in o\n );\n}\n\n// isExecException returns true if the given object is\n// a ExecException according to the minimal fields that\n// are used in this module.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isExecException(o: any): o is ExecException {\n return (\n 'stdout' in o &&\n 'stderr' in o\n );\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\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// All rights reserved.\n\nimport { Octokit } from '@octokit/core';\nimport { FileAnnotation } from './buf';\n\n// bufMessagePrefix is the prefix used for the in-line comments.\nconst bufMessagePrefix = 'buf-breaking: '\n\n// rightSide is the enum used to inform Github to place the\n// in-line comment on the right-side (i.e. the latest version)\n// of the diff. This is referenced from the following:\n// https://docs.github.com/en/rest/reference/pulls#list-review-comments-in-a-repository\nconst rightSide = 'RIGHT'\n\n// defaultReviewBody is the default message used in the body text of\n// the pull request review. This is required.\nconst defaultReviewBody = 'buf-breaking: Please resolve all failures to proceed.'\n\n// commentEvent is the Github pull request comment event.\n// This is referenced from the following:\n// https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request\nconst commentEvent = 'COMMENT'\n\n// Comment conforms to the Github comment parameters referenced\n// from the following:\n// https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request\ninterface Comment {\n path: string;\n body: string;\n start_line?: number;\n line?: number;\n start_side?: string;\n side?: string;\n}\n\n// postComments maps the given FileAnnotations into Comments\n// and posts them to the given pull request.\nexport async function postComments(\n authenticationToken: string,\n owner: string,\n repository: string,\n pullRequestNumber: number,\n fileAnnotations: FileAnnotation[],\n): Promise {\n const inLineComments: Comment[] = [];\n const reviewComments: string[] = [];\n fileAnnotations.forEach((fileAnnotation: FileAnnotation) => {\n if (fileAnnotation.path === undefined || fileAnnotation.path === '') {\n // The FileAnnotation doesn't include a filepath, so we capture this\n // context in the top-level review comment.\n reviewComments.push(fileAnnotation.type + ': ' + fileAnnotation.message);\n return;\n }\n inLineComments.push(fileAnnotationToComment(fileAnnotation));\n })\n\n let reviewBody = defaultReviewBody;\n if (reviewComments.length !== 0) {\n // If we have review-level comments to report, prepend\n // the default comment to the set and split them by\n // newlines.\n reviewComments.unshift(reviewBody)\n reviewBody = reviewComments.join('\\n')\n }\n\n const octokit = new Octokit({\n auth: authenticationToken,\n });\n // https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request\n await octokit.request(\n 'POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews',\n {\n owner: owner,\n repo: repository,\n pull_number: +pullRequestNumber,\n body: reviewBody,\n event: commentEvent,\n comments: inLineComments,\n },\n );\n}\n\n// fileAnnotation maps the given FileAnnotation into a Github comment.\nfunction fileAnnotationToComment(fileAnnotation: FileAnnotation): Comment {\n let startLine; // This can either be a string or undefined, so we initialize it without a type.\n if (\n fileAnnotation.end_line !== undefined && fileAnnotation.end_line !== 0 &&\n fileAnnotation.start_line !== undefined && fileAnnotation.start_line !== 0 &&\n fileAnnotation.end_line > fileAnnotation.start_line\n ) {\n // Some FileAnnotations will not include the start_line and end_line,\n // such as breaking changes that remove a file. We also don't include\n // the start_line if it's the same as the end_line in order to satisfy\n // the Github API.\n startLine = fileAnnotation.start_line;\n }\n let line = fileAnnotation.end_line;\n if (\n (line === undefined || line === 0) &&\n (startLine === undefined || startLine === 0)\n ) {\n // If neither a start_line or end_line was provided, we must default\n // to the first line of the file. This is relevant for some FileAnnotations,\n // such as lint errors that complain about a missing package declaration.\n line = 1;\n }\n return {\n path: fileAnnotation.path ?? '',\n body: bufMessagePrefix + fileAnnotation.message, // Prepend the message with a prefix so it's clear it's coming from buf.\n start_line: startLine,\n line: line,\n start_side: rightSide,\n side: rightSide,\n }\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\n\nimport {run} from './run';\n\nvoid run();\n"], - "mappings": "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,wCACA,2BACA,iCACA,wBACA,mCACA,wBACA,gDACA,6EACA,wGACA,8EACA,gDACA,4CACA,6CACA,0CACA,6DACA,0CACA,0CACA,2CACA,qCACA,8CACA,4CACA,sDACA,yCACA,4DACA,uDACA,4CACA,8CACA,iEACA,sCACA,qCACA,kEACA,qEACA,iDACA,0EACA,mDACA,0CACA,qCACA,4DACA,oCACA,qEACA,0DACA,uDACA,qDACA,uDACA,mDACA,yCACA,wCACA,iEACA,mCACA,kCACA,oDACA,kCACA,wCACA,mCACA,4CACA,mEACA,0CACA,2DACA,yDACA,yDACA,4DACA,2DACA,iCACA,mCACA,uCACA,iEACA,0CACA,yCACA,qCACA,kCACA,2CACA,kEACA,yDACA,wDACA,sDACA,oEACA,wDACA,6EACA,qCACA,yDACA,mDACA,uCACA,wCACA,iCACA,kCACA,oBACA,4EACA,+CACA,8CACA,yCACA,mBACA,sBACA,qBACA,qBACA,2BACA,qBACA,oBACA,mCACA,gEACA,2FACA,iEACA,mCACA,+BACA,gCACA,6BACA,gDACA,6BACA,mBACA,mBACA,sBACA,sBACA,qBACA,0BACA,yDACA,mBACA,iBACA,kCACA,0CACA,6BACA,uBACA,mDACA,iBACA,0BACA,kBACA,mCACA,oBACA,0BACA,kBACA,aACA,+BACA,0CACA,sCACA,kCACA,kCACA,8BACA,iCACA,6BACA,6BACA,iCACA,wCACA,+CACA,8BACA,gCACA,uCC3LG,YAA8B,EAAK,CACtC,MAAI,OAAO,IAAQ,SACR,GAAoB,SAAS,GAG7B,GCER,YAAsB,EAAS,CAClC,MAAO,CACH,SAAU,OAAO,OAAO,GAAS,KAAK,KAAM,GAAU,CAClD,SAAU,GAAS,KAAK,KAAM,MAI1C,GAAa,QAAU,utBChBvB,GAAA,IAAA,GAAA,MACA,GAAA,GAAA,MAGA,GAAA,KAEA,GAAA,KACA,GAAA,KAEa,EAAA,QAAU,GAAI,IAAQ,QAEnC,GAAM,IAAU,GAAM,gBAChB,GAAW,CACf,WACA,QAAS,CACP,MAAO,GAAM,cAAc,MAIlB,EAAA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", + "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/github/src/context.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/@actions/github/src/internal/utils.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", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js", "../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/version.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js", "../node_modules/@octokit/plugin-paginate-rest/dist-src/index.js", "../node_modules/@actions/github/src/utils.ts", "../node_modules/@actions/github/src/github.ts", "../node_modules/@actions/io/src/io-util.ts", "../node_modules/@actions/io/src/io.ts", "../node_modules/semver/internal/constants.js", "../node_modules/semver/internal/debug.js", "../node_modules/semver/internal/re.js", "../node_modules/semver/internal/parse-options.js", "../node_modules/semver/internal/identifiers.js", "../node_modules/semver/classes/semver.js", "../node_modules/semver/functions/parse.js", "../node_modules/semver/functions/valid.js", "../node_modules/semver/functions/clean.js", "../node_modules/semver/functions/inc.js", "../node_modules/semver/functions/compare.js", "../node_modules/semver/functions/eq.js", "../node_modules/semver/functions/diff.js", "../node_modules/semver/functions/major.js", "../node_modules/semver/functions/minor.js", "../node_modules/semver/functions/patch.js", "../node_modules/semver/functions/prerelease.js", "../node_modules/semver/functions/rcompare.js", "../node_modules/semver/functions/compare-loose.js", "../node_modules/semver/functions/compare-build.js", "../node_modules/semver/functions/sort.js", "../node_modules/semver/functions/rsort.js", "../node_modules/semver/functions/gt.js", "../node_modules/semver/functions/lt.js", "../node_modules/semver/functions/neq.js", "../node_modules/semver/functions/gte.js", "../node_modules/semver/functions/lte.js", "../node_modules/semver/functions/cmp.js", "../node_modules/semver/functions/coerce.js", "../node_modules/yallist/iterator.js", "../node_modules/yallist/yallist.js", "../node_modules/lru-cache/index.js", "../node_modules/semver/classes/range.js", "../node_modules/semver/classes/comparator.js", "../node_modules/semver/functions/satisfies.js", "../node_modules/semver/ranges/to-comparators.js", "../node_modules/semver/ranges/max-satisfying.js", "../node_modules/semver/ranges/min-satisfying.js", "../node_modules/semver/ranges/min-version.js", "../node_modules/semver/ranges/valid.js", "../node_modules/semver/ranges/outside.js", "../node_modules/semver/ranges/gtr.js", "../node_modules/semver/ranges/ltr.js", "../node_modules/semver/ranges/intersects.js", "../node_modules/semver/ranges/simplify.js", "../node_modules/semver/ranges/subset.js", "../node_modules/semver/index.js", "../src/run.ts", "../src/buf.ts", "../src/error.ts", "../src/github.ts", "../src/main.ts"], + "sourcesContent": [null, null, null, null, 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", 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", "const Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\",\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\",\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\",\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\",\n ],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\",\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\",\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\",\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\",\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\",\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\",\n ],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\",\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\",\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\",\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] },\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\",\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\",\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\",\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\",\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\",\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\",\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\",\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\",\n ],\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\",\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\",\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\",\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\",\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\",\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\",\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"],\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\n \"POST /content_references/{content_reference_id}/attachments\",\n { mediaType: { previews: [\"corsair\"] } },\n ],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\",\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\",\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\",\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\",\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\",\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\",\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"],\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\",\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\",\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\",\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\",\n ],\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\",\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\",\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } },\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\",\n ],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"],\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\n \"GET /codes_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getConductCode: [\n \"GET /codes_of_conduct/{key}\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getForRepo: [\n \"GET /repos/{owner}/{repo}/community/code_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n },\n emojis: { get: [\"GET /emojis\"] },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\n \"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n enableSelectedOrganizationGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n getAllowedActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n getGithubActionsPermissionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions\",\n ],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n setAllowedActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions\",\n ],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"],\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"],\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"],\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] },\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\",\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] },\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] },\n ],\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\",\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n { mediaType: { previews: [\"mockingbird\"] } },\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\",\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"],\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } },\n ],\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"],\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getStatusForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForAuthenticatedUser: [\n \"GET /user/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"],\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\",\n ],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\",\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\",\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\",\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\",\n ],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"],\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\",\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\",\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\",\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\",\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore\",\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore\",\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n },\n projects: {\n addCollaborator: [\n \"PUT /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createCard: [\n \"POST /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createColumn: [\n \"POST /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForAuthenticatedUser: [\n \"POST /user/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForOrg: [\n \"POST /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForRepo: [\n \"POST /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n delete: [\n \"DELETE /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteCard: [\n \"DELETE /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteColumn: [\n \"DELETE /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n get: [\n \"GET /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getCard: [\n \"GET /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getColumn: [\n \"GET /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCards: [\n \"GET /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCollaborators: [\n \"GET /projects/{project_id}/collaborators\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listColumns: [\n \"GET /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForRepo: [\n \"GET /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForUser: [\n \"GET /users/{username}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveCard: [\n \"POST /projects/columns/cards/{card_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveColumn: [\n \"POST /projects/columns/{column_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n update: [\n \"PATCH /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateCard: [\n \"PATCH /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateColumn: [\n \"PATCH /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\",\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\",\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\",\n { mediaType: { previews: [\"lydian\"] } },\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteLegacy: [\n \"DELETE /reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n {\n deprecated: \"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy\",\n },\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\n \"POST /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\",\n { mediaType: { previews: [\"baptiste\"] } },\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\",\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n deletePagesSite: [\n \"DELETE /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] },\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n ],\n getAllTopics: [\n \"GET /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n ],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\",\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\",\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\",\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\n \"PUT /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] },\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" },\n ],\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", { mediaType: { previews: [\"cloak\"] } }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", { mediaType: { previews: [\"mercy\"] } }],\n users: [\"GET /search/users\"],\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n ],\n listProjectsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"],\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"],\n },\n};\nexport default Endpoints;\n", "export const VERSION = \"4.13.5\";\n", "export function endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({ method, url }, defaults);\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n const scopeMethods = newMethods[scope];\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args);\n // There are currently no other decorations than `.mapToData`\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined,\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n delete options[name];\n }\n }\n return requestWithDefaults(options);\n }\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n", "import ENDPOINTS from \"./generated/endpoints\";\nimport { VERSION } from \"./version\";\nimport { endpointsToMethods } from \"./endpoints-to-methods\";\nexport function restEndpointMethods(octokit) {\n return endpointsToMethods(octokit, ENDPOINTS);\n}\nrestEndpointMethods.VERSION = VERSION;\n", "export const VERSION = \"2.13.2\";\n", "/**\n * Some \u201Clist\u201D response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nexport function normalizePaginatedListResponse(response) {\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n", "import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response\";\nexport function iterator(octokit, route, parameters) {\n const options = typeof route === \"function\"\n ? route.endpoint(parameters)\n : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return { value: normalizedResponse };\n },\n }),\n };\n}\n", "import { iterator } from \"./iterator\";\nexport function paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator, mapFn);\n });\n}\n", "import { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport const composePaginateRest = Object.assign(paginate, {\n iterator,\n});\n", "export const paginatingEndpoints = [\n \"GET /app/installations\",\n \"GET /applications/grants\",\n \"GET /authorizations\",\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /enterprises/{enterprise}/actions/runners\",\n \"GET /enterprises/{enterprise}/actions/runners/downloads\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runner-groups\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/runners/downloads\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/credential-authorizations\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/team-sync/groups\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /scim/v2/enterprises/{enterprise}/Groups\",\n \"GET /scim/v2/enterprises/{enterprise}/Users\",\n \"GET /scim/v2/organizations/{org}/Users\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/team-sync/group-mappings\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\",\n];\n", "import { paginatingEndpoints, } from \"./generated/paginating-endpoints\";\nexport { paginatingEndpoints } from \"./generated/paginating-endpoints\";\nexport function isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n }\n else {\n return false;\n }\n}\n", "import { VERSION } from \"./version\";\nimport { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport { composePaginateRest } from \"./compose-paginate\";\nexport { isPaginatingEndpoint, paginatingEndpoints, } from \"./paginating-endpoints\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit),\n }),\n };\n}\npaginateRest.VERSION = VERSION;\n", null, null, null, null, "// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n", "const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n", "const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\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\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('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\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('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\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('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\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('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\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('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.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('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.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('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])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('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`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.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.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n", "// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n", "const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const 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\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n", "const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\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(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const 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((id) => {\n if (/^[0-9]+$/.test(id)) {\n const 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\n format () {\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\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (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 let i = 0\n do {\n const a = this.prerelease[i]\n const 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\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const 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.\n inc (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 (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\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 let 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}\n\nmodule.exports = SemVer\n", "const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\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 const 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\nmodule.exports = parse\n", "const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n", "const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n", "const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n", "const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const 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}\nmodule.exports = diff\n", "const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n", "const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n", "const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n", "const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n", "const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n", "const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n", "const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n", "const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n", "const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n", "const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst 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}\nmodule.exports = cmp\n", "const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst 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 let 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 let 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 return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n", "'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n", "'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n", "'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n", "// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\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\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0)\n this.set = [first]\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached)\n return cached\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\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 const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const l = rangeList.length\n const rangeMap = new Map()\n for (const comp of rangeList) {\n if (isNullSet(comp))\n return [comp]\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has(''))\n rangeMap.delete('')\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (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 (let 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}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\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.\nconst 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\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-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-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.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}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const 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 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 if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\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.\nconst 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\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\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-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($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${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let 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 (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const 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", "const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n options = parseOptions(options)\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 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\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const 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\n toString () {\n return this.value\n }\n\n test (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\n intersects (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 if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "const Range = require('../classes/range')\nconst 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}\nmodule.exports = satisfies\n", "const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((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}\nmodule.exports = maxSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((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}\nmodule.exports = minSatisfying\n", "const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let 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 (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const 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 (!setMin || gt(compver, setMin)) {\n setMin = 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 if (setMin && (!minver || gt(minver, setMin)))\n minver = setMin\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n", "const Range = require('../classes/range')\nconst 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}\nmodule.exports = validRange\n", "const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let 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 satisfies 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 (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((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\nmodule.exports = outside\n", "// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n", "const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n", "const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n", "// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n", "const Range = require('../classes/range.js')\nconst { ANY } = require('../classes/comparator.js')\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else return false\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If any C is a = range, and GT or LT are set, return false\n// - Else return true\n\nconst subset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n if (sub.length === 1 && sub[0].semver === ANY)\n return dom.length === 1 && dom[0].semver === ANY\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n", "// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\n\nimport * as core from '@actions/core';\nimport * as github from '@actions/github'\nimport * as io from '@actions/io';\nimport * as child from 'child_process';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\nimport { breaking } from './buf';\nimport { Error, isError } from './error';\nimport { postComments } from './github';\n\n// minimumBufVersion is the minimum buf version required to\n// run this action. At least this version is required because\n// the implementation uses the FileAnnotation exit code introduced\n// in the following release:\n// https://github.com/bufbuild/buf/releases/tag/v0.41.0\nconst minimumBufVersion = '0.41.0'\n\n// runnerTempEnvKey is the environment variable key\n// used to access a temporary directory. Although\n// undocumented in the Github Actions documentation,\n// this can be found in the @actions/tools-cache module.\n// https://github.com/actions/toolkit/blob/4bf916289e5e32bb7d1bd7f21842c3afeab3b25a/packages/tool-cache/src/tool-cache.ts#L701\nconst runnerTempEnvKey = 'RUNNER_TEMP'\n\nexport async function run(): Promise {\n try {\n const result = await runBreaking();\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// runBreaking runs the buf-breaking action, and returns\n// a non-empty error if it fails.\nasync function runBreaking(): Promise {\n const authenticationToken = core.getInput('github_token');\n if (authenticationToken === '') {\n return {\n message: 'a Github authentication token was not provided'\n };\n }\n const input = core.getInput('input');\n if (input === '') {\n return {\n message: 'an input was not provided'\n };\n }\n const against = core.getInput('against');\n if (against === '') {\n return {\n message: 'an against was not provided'\n };\n }\n const owner = github.context.repo.owner;\n if (owner === '') {\n return {\n message: 'an owner was not provided'\n };\n }\n const repository = github.context.repo.repo;\n if (repository === '') {\n return {\n message: 'a repository was not provided'\n };\n }\n const binaryPath = await io.which('buf', true);\n if (binaryPath === '') {\n return {\n message: 'buf is not installed; please add the \"bufbuild/buf-setup-action\" step to your job found at https://github.com/bufbuild/buf-setup-action'\n };\n }\n const version = child.execSync(`${binaryPath} --version 2>&1`).toString();\n if (semver.lt(version, minimumBufVersion)) {\n return {\n message: `buf must be at least version ${minimumBufVersion}, but found ${version}`\n };\n }\n\n const bufToken = core.getInput('buf_token');\n if (bufToken !== '') {\n // If the BUF_TOKEN is set, add it to the runner's .netrc.\n const tempDir = process.env[runnerTempEnvKey] ?? '';\n if (tempDir === '') {\n return {\n message: `expected ${runnerTempEnvKey} to be defined`\n };\n }\n\n // TODO: For now, we hard-code the 'buf.build' remote. This will\n // need to be refactored once we support federation between other\n // BSR remotes.\n const netrcPath = path.join(tempDir, '.netrc');\n fs.writeFileSync(netrcPath, `machine buf.build\\npassword ${bufToken}`, { flag: 'w' });\n process.env.NETRC = netrcPath;\n }\n\n const result = breaking(binaryPath, input, against);\n if (isError(result)) {\n return result\n }\n if (result.fileAnnotations.length === 0) {\n core.info('No breaking errors were found.');\n return null;\n }\n\n const pullRequestNumber = github.context.payload.pull_request?.number;\n if (pullRequestNumber !== undefined) {\n // If this action was configured for pull requests, we post the\n // FileAnnotations as comments.\n try {\n await postComments(\n authenticationToken,\n owner,\n repository,\n pullRequestNumber,\n result.fileAnnotations,\n );\n } catch (error) {\n // Log the error, but continue so that we still write\n // out the raw output to the user.\n if (isError(error)) {\n core.info(`Failed to write comments in-line: ${error.message}`);\n } else {\n core.info(`Failed to write comments in-line`);\n }\n }\n }\n\n // Include the raw output so that the console includes sufficient context.\n return {\n message: `buf found ${result.fileAnnotations.length} breaking failures.\\n${result.raw}`\n };\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\n\nimport * as child from 'child_process';\nimport { Error, isError } from './error';\n\n// breakingExitCode is the exit code used to signal that buf\n// successfully found incompatible changes.\nconst breakingExitCode = 100\n\n// BreakingResult includes both the raw and formatted FileAnnotation\n// output of a 'buf breaking` command execution. We include both so\n// that we preserve the same content users would see on the command line.\nexport interface BreakingResult {\n raw: string;\n fileAnnotations: FileAnnotation[];\n}\n\n// FileAnnotation conforms the buf FileAnnotation definition\n// referenced from the following:\n// https://github.com/bufbuild/buf/blob/8255257bd94c9f1b5faa27242211c5caad05be79/internal/buf/bufanalysis/bufanalysis.go#L102\nexport interface FileAnnotation {\n type: string;\n message: string;\n path?: string;\n start_line?: number;\n end_line?: number;\n}\n\n// ExecException is a subset of the child.ExecException interface.\ninterface ExecException {\n status: number;\n stdout: Buffer | string;\n stderr: Buffer | string;\n}\n\n// breaking runs 'buf breaking' with the given command line arguments.\n// Note that we run the same 'buf breaking' command twice so that we\n// can write out the raw content that users see on the command line.\n// We do NOT attempt to reformat the structured FileAnnotation because\n// this approach is prone to differentiate from the raw output.\nexport function breaking(\n binaryPath: string,\n input: string,\n against: string,\n): BreakingResult | Error {\n const rawOutput = runBreakingCommand(`${binaryPath} breaking ${input} --against ${against}`);\n if (isError(rawOutput)) {\n return rawOutput\n }\n const jsonOutput = runBreakingCommand(`${binaryPath} breaking ${input} --against ${against} --error-format=json`);\n if (isError(jsonOutput)) {\n return jsonOutput\n }\n const fileAnnotations = parseLines(jsonOutput.trim().split('\\n').filter(elem => {\n return elem !== ''\n }))\n if (isError(fileAnnotations)) {\n return fileAnnotations\n }\n return {\n raw: rawOutput,\n fileAnnotations: fileAnnotations,\n };\n}\n\n// runBreakingCommand runs the given command. Note that this function assumes\n// the given command is 'buf breaking', and handles its exit code as such.\nfunction runBreakingCommand(cmd: string): string | Error {\n try {\n child.execSync(cmd);\n } catch (error) {\n if (isExecException(error)) {\n if (error.status == breakingExitCode) {\n // The command found warnings to report.\n return error.stdout.toString();\n }\n return {\n message: error.stderr.toString(),\n };\n }\n return {\n message: `failed to run command: ${cmd}`\n };\n }\n return ''\n}\n\n// parseLines parses the given output lines into an array\n// of FileAnnotations.\nfunction parseLines(lines: string[]): FileAnnotation[] | Error {\n const fileAnnotations: FileAnnotation[] = [];\n for (let index = 0; index < lines.length; index++) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const fileAnnotation = JSON.parse(lines[index]);\n if (!isFileAnnotation(fileAnnotation)) {\n return {\n message: `failed to parse \"${lines[index]}\" as file annotation`,\n };\n }\n fileAnnotations.push(fileAnnotation);\n } catch (error) {\n return {\n message: `failed to parse \"${lines[index]}\" as file annotation`,\n };\n }\n }\n return fileAnnotations;\n}\n\n// isFileAnnotation returns true if the given object is\n// a FileAnnotation according to the minimal fields that\n// must be present.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isFileAnnotation(o: any): o is FileAnnotation {\n return (\n 'type' in o &&\n 'message' in o\n );\n}\n\n// isExecException returns true if the given object is\n// a ExecException according to the minimal fields that\n// are used in this module.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isExecException(o: any): o is ExecException {\n return (\n 'status' in o &&\n 'stdout' in o &&\n 'stderr' in o\n );\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\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// All rights reserved.\n\nimport { Octokit } from '@octokit/core';\nimport { FileAnnotation } from './buf';\n\n// bufMessagePrefix is the prefix used for the in-line comments.\nconst bufMessagePrefix = 'buf-breaking: '\n\n// rightSide is the enum used to inform Github to place the\n// in-line comment on the right-side (i.e. the latest version)\n// of the diff. This is referenced from the following:\n// https://docs.github.com/en/rest/reference/pulls#list-review-comments-in-a-repository\nconst rightSide = 'RIGHT'\n\n// defaultReviewBody is the default message used in the body text of\n// the pull request review. This is required.\nconst defaultReviewBody = 'buf-breaking: Please resolve all failures to proceed.'\n\n// commentEvent is the Github pull request comment event.\n// This is referenced from the following:\n// https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request\nconst commentEvent = 'COMMENT'\n\n// Comment conforms to the Github comment parameters referenced\n// from the following:\n// https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request\ninterface Comment {\n path: string;\n body: string;\n start_line?: number;\n line?: number;\n start_side?: string;\n side?: string;\n}\n\n// postComments maps the given FileAnnotations into Comments\n// and posts them to the given pull request.\nexport async function postComments(\n authenticationToken: string,\n owner: string,\n repository: string,\n pullRequestNumber: number,\n fileAnnotations: FileAnnotation[],\n): Promise {\n const inLineComments: Comment[] = [];\n const reviewComments: string[] = [];\n fileAnnotations.forEach((fileAnnotation: FileAnnotation) => {\n if (fileAnnotation.path === undefined || fileAnnotation.path === '') {\n // The FileAnnotation doesn't include a filepath, so we capture this\n // context in the top-level review comment.\n reviewComments.push(fileAnnotation.type + ': ' + fileAnnotation.message);\n return;\n }\n inLineComments.push(fileAnnotationToComment(fileAnnotation));\n })\n\n let reviewBody = defaultReviewBody;\n if (reviewComments.length !== 0) {\n // If we have review-level comments to report, prepend\n // the default comment to the set and split them by\n // newlines.\n reviewComments.unshift(reviewBody)\n reviewBody = reviewComments.join('\\n')\n }\n\n const octokit = new Octokit({\n auth: authenticationToken,\n });\n // https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request\n await octokit.request(\n 'POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews',\n {\n owner: owner,\n repo: repository,\n pull_number: +pullRequestNumber,\n body: reviewBody,\n event: commentEvent,\n comments: inLineComments,\n },\n );\n}\n\n// fileAnnotation maps the given FileAnnotation into a Github comment.\nfunction fileAnnotationToComment(fileAnnotation: FileAnnotation): Comment {\n let startLine; // This can either be a string or undefined, so we initialize it without a type.\n if (\n fileAnnotation.end_line !== undefined && fileAnnotation.end_line !== 0 &&\n fileAnnotation.start_line !== undefined && fileAnnotation.start_line !== 0 &&\n fileAnnotation.end_line > fileAnnotation.start_line\n ) {\n // Some FileAnnotations will not include the start_line and end_line,\n // such as breaking changes that remove a file. We also don't include\n // the start_line if it's the same as the end_line in order to satisfy\n // the Github API.\n startLine = fileAnnotation.start_line;\n }\n let line = fileAnnotation.end_line;\n if (\n (line === undefined || line === 0) &&\n (startLine === undefined || startLine === 0)\n ) {\n // If neither a start_line or end_line was provided, we must default\n // to the first line of the file. This is relevant for some FileAnnotations,\n // such as lint errors that complain about a missing package declaration.\n line = 1;\n }\n return {\n path: fileAnnotation.path ?? '',\n body: bufMessagePrefix + fileAnnotation.message, // Prepend the message with a prefix so it's clear it's coming from buf.\n start_line: startLine,\n line: line,\n start_side: rightSide,\n side: rightSide,\n }\n}\n", "// Copyright 2020-2021 Buf Technologies, Inc.\n//\n// All rights reserved.\n\nimport {run} from './run';\n\nvoid run();\n"], + "mappings": "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,wCACA,2BACA,iCACA,wBACA,mCACA,wBACA,gDACA,6EACA,wGACA,8EACA,gDACA,4CACA,6CACA,0CACA,6DACA,0CACA,0CACA,2CACA,qCACA,8CACA,4CACA,sDACA,yCACA,4DACA,uDACA,4CACA,8CACA,iEACA,sCACA,qCACA,kEACA,qEACA,iDACA,0EACA,mDACA,0CACA,qCACA,4DACA,oCACA,qEACA,0DACA,uDACA,qDACA,uDACA,mDACA,yCACA,wCACA,iEACA,mCACA,kCACA,oDACA,kCACA,wCACA,mCACA,4CACA,mEACA,0CACA,2DACA,yDACA,yDACA,4DACA,2DACA,iCACA,mCACA,uCACA,iEACA,0CACA,yCACA,qCACA,kCACA,2CACA,kEACA,yDACA,wDACA,sDACA,oEACA,wDACA,6EACA,qCACA,yDACA,mDACA,uCACA,wCACA,iCACA,kCACA,oBACA,4EACA,+CACA,8CACA,yCACA,mBACA,sBACA,qBACA,qBACA,2BACA,qBACA,oBACA,mCACA,gEACA,2FACA,iEACA,mCACA,+BACA,gCACA,6BACA,gDACA,6BACA,mBACA,mBACA,sBACA,sBACA,qBACA,0BACA,yDACA,mBACA,iBACA,kCACA,0CACA,6BACA,uBACA,mDACA,iBACA,0BACA,kBACA,mCACA,oBACA,0BACA,kBACA,aACA,+BACA,0CACA,sCACA,kCACA,kCACA,8BACA,iCACA,6BACA,6BACA,iCACA,wCACA,+CACA,8BACA,gCACA,uCC3LG,YAA8B,EAAK,CACtC,MAAI,OAAO,IAAQ,SACR,GAAoB,SAAS,GAG7B,GCER,YAAsB,EAAS,CAClC,MAAO,CACH,SAAU,OAAO,OAAO,GAAS,KAAK,KAAM,GAAU,CAClD,SAAU,GAAS,KAAK,KAAM,MAI1C,GAAa,QAAU,utBChBvB,GAAA,IAAA,GAAA,MACA,GAAA,GAAA,MAGA,GAAA,KAEA,GAAA,KACA,GAAA,KAEa,EAAA,QAAU,GAAI,IAAQ,QAEnC,GAAM,IAAU,GAAM,gBAChB,GAAW,CACf,WACA,QAAS,CACP,MAAO,GAAM,cAAc,MAIlB,EAAA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", "names": [] } diff --git a/package-lock.json b/package-lock.json index 63f17fc..2c83d22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@actions/github": "^4.0.0", "@actions/io": "^1.0.2", "@types/node": "^14.14.35", + "@types/semver": "^7.3.4", "child_process": "^1.0.2" }, "devDependencies": { @@ -340,6 +341,11 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" }, + "node_modules/@types/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "4.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz", @@ -2239,6 +2245,11 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" }, + "@types/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + }, "@typescript-eslint/eslint-plugin": { "version": "4.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz", diff --git a/package.json b/package.json index f5776c6..78fdb0c 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@actions/github": "^4.0.0", "@actions/io": "^1.0.2", "@types/node": "^14.14.35", + "@types/semver": "^7.3.4", "child_process": "^1.0.2" }, "devDependencies": { diff --git a/src/buf.ts b/src/buf.ts index 38c355d..1c1d559 100644 --- a/src/buf.ts +++ b/src/buf.ts @@ -5,6 +5,10 @@ import * as child from 'child_process'; import { Error, isError } from './error'; +// breakingExitCode is the exit code used to signal that buf +// successfully found incompatible changes. +const breakingExitCode = 100 + // BreakingResult includes both the raw and formatted FileAnnotation // output of a 'buf breaking` command execution. We include both so // that we preserve the same content users would see on the command line. @@ -26,6 +30,7 @@ export interface FileAnnotation { // ExecException is a subset of the child.ExecException interface. interface ExecException { + status: number; stdout: Buffer | string; stderr: Buffer | string; } @@ -40,11 +45,11 @@ export function breaking( input: string, against: string, ): BreakingResult | Error { - const rawOutput = runCommand(`${binaryPath} breaking ${input} --against ${against}`); + const rawOutput = runBreakingCommand(`${binaryPath} breaking ${input} --against ${against}`); if (isError(rawOutput)) { return rawOutput } - const jsonOutput = runCommand(`${binaryPath} breaking ${input} --against ${against} --error-format=json`); + const jsonOutput = runBreakingCommand(`${binaryPath} breaking ${input} --against ${against} --error-format=json`); if (isError(jsonOutput)) { return jsonOutput } @@ -60,27 +65,26 @@ export function breaking( }; } -// runCommand runs the given command and maps its output into an -// array of FileAnnotations. -function runCommand(cmd: string): string | Error { - let output = ''; +// runBreakingCommand runs the given command. Note that this function assumes +// the given command is 'buf breaking', and handles its exit code as such. +function runBreakingCommand(cmd: string): string | Error { try { child.execSync(cmd); } catch (error) { - let commandError = ''; if (isExecException(error)) { - output = error.stdout.toString(); - commandError = error.stderr.toString(); - } else { - commandError = `failed to run command: ${cmd}` - } - if (commandError !== '') { + if (error.status == breakingExitCode) { + // The command found warnings to report. + return error.stdout.toString(); + } return { - message: commandError, + message: error.stderr.toString(), }; } + return { + message: `failed to run command: ${cmd}` + }; } - return output + return '' } // parseLines parses the given output lines into an array @@ -123,6 +127,7 @@ function isFileAnnotation(o: any): o is FileAnnotation { // eslint-disable-next-line @typescript-eslint/no-explicit-any function isExecException(o: any): o is ExecException { return ( + 'status' in o && 'stdout' in o && 'stderr' in o ); diff --git a/src/run.ts b/src/run.ts index ea6c9b7..5654200 100644 --- a/src/run.ts +++ b/src/run.ts @@ -5,10 +5,28 @@ import * as core from '@actions/core'; import * as github from '@actions/github' import * as io from '@actions/io'; +import * as child from 'child_process'; +import * as fs from 'fs'; +import * as path from 'path'; +import * as semver from 'semver'; import { breaking } from './buf'; import { Error, isError } from './error'; import { postComments } from './github'; +// minimumBufVersion is the minimum buf version required to +// run this action. At least this version is required because +// the implementation uses the FileAnnotation exit code introduced +// in the following release: +// https://github.com/bufbuild/buf/releases/tag/v0.41.0 +const minimumBufVersion = '0.41.0' + +// runnerTempEnvKey is the environment variable key +// used to access a temporary directory. Although +// undocumented in the Github Actions documentation, +// this can be found in the @actions/tools-cache module. +// https://github.com/actions/toolkit/blob/4bf916289e5e32bb7d1bd7f21842c3afeab3b25a/packages/tool-cache/src/tool-cache.ts#L701 +const runnerTempEnvKey = 'RUNNER_TEMP' + export async function run(): Promise { try { const result = await runBreaking(); @@ -63,12 +81,35 @@ async function runBreaking(): Promise { } const binaryPath = await io.which('buf', true); if (binaryPath === '') { - // TODO: Update this reference to a link once it's available. return { - message: 'buf is not installed; please add the "bufbuild/setup-buf" step to your job' + message: 'buf is not installed; please add the "bufbuild/buf-setup-action" step to your job found at https://github.com/bufbuild/buf-setup-action' + }; + } + const version = child.execSync(`${binaryPath} --version 2>&1`).toString(); + if (semver.lt(version, minimumBufVersion)) { + return { + message: `buf must be at least version ${minimumBufVersion}, but found ${version}` }; } + const bufToken = core.getInput('buf_token'); + if (bufToken !== '') { + // If the BUF_TOKEN is set, add it to the runner's .netrc. + const tempDir = process.env[runnerTempEnvKey] ?? ''; + if (tempDir === '') { + return { + message: `expected ${runnerTempEnvKey} to be defined` + }; + } + + // TODO: For now, we hard-code the 'buf.build' remote. This will + // need to be refactored once we support federation between other + // BSR remotes. + const netrcPath = path.join(tempDir, '.netrc'); + fs.writeFileSync(netrcPath, `machine buf.build\npassword ${bufToken}`, { flag: 'w' }); + process.env.NETRC = netrcPath; + } + const result = breaking(binaryPath, input, against); if (isError(result)) { return result