@gitkraken/provider-apis 0.14.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var dt=Object.create;var Y=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var gt=Object.getOwnPropertyNames;var mt=Object.getPrototypeOf,ht=Object.prototype.hasOwnProperty;var T=(t,s)=>{for(var e in s)Y(t,e,{get:s[e],enumerable:!0})},ze=(t,s,e,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of gt(s))!ht.call(t,n)&&n!==e&&Y(t,n,{get:()=>s[n],enumerable:!(r=ct(s,n))||r.enumerable});return t};var ft=(t,s,e)=>(e=t!=null?dt(mt(t)):{},ze(s||!t||!t.__esModule?Y(e,"default",{value:t,enumerable:!0}):e,t)),Rt=t=>ze(Y({},"__esModule",{value:!0}),t);var $s={};T($s,{AzureDevOps:()=>j,AzureDevopsUtils:()=>ce,Bitbucket:()=>Q,BitbucketServer:()=>B,BitbucketServerUtils:()=>me,BitbucketUtils:()=>ge,GitHub:()=>F,GitHubUtils:()=>he,GitLab:()=>W,GitLabUtils:()=>fe,Jira:()=>K,JiraServer:()=>V,JiraUtils:()=>Re,Trello:()=>X,TrelloUtils:()=>Ie,Utils:()=>Ss,default:()=>Ds});module.exports=Rt($s);var Ye=require("js-base64");var C=100;var We=ft(require("node-fetch")),He=globalThis.fetch||We.default;var Je=t=>t.name==="fetch";var It=async t=>{let s=t.headers.get("content-type")||"",e=null;if(s.startsWith("application/json")){let n=await t.text();e=n.trim().length>0?JSON.parse(n):null}else if(s.startsWith("text/")||s==="")e=await t.text();else throw new Error(`Unsupported content-type: ${s}`);let r={body:e,headers:Object.fromEntries(t.headers.entries()),status:t.status,statusText:t.statusText};if(!t.ok){let n=new Error(t.statusText);throw Object.assign(n,{response:r}),n}return r},be=t=>Je(t)?async({url:s,...e})=>{let r=await t(s,e);return It(r)}:t;var E=class{constructor(s){this.config={...s,request:be((s==null?void 0:s.request)||He)}}updateConfig(s){this.config={...this.config,...s,request:s.request?be(s.request):this.config.request}}},v=class extends E{};var m=(t,s)=>{let e={};return t&&(e.Authorization=`${s?"Basic":"Bearer"} ${t}`),e};var w=(t,s={})=>m(s.token||t.token,s.isPAT||t.isPAT),Ke=t=>t.url.replace("/_apis/git/repositories/","/_git/").replace(`/${t.repository.project.id}/`,`/${encodeURIComponent(t.repository.project.name)}/`).replace(`/${t.repository.id}/`,`/${encodeURIComponent(t.repository.name)}/`).replace("/pullRequests/","/pullrequest/");var Ve={APPROVED:0,COMMENTED:1,REVIEW_REQUESTED:2,CHANGES_REQUESTED:3},N=t=>!t||t.length===0?null:t.reduce((s,e)=>Ve[e.state]>Ve[s]?e.state:s,"APPROVED");var Xe="https://app.vssps.visualstudio.com/_apis",q="https://dev.azure.com",bt={active:"OPEN",completed:"MERGED",abandoned:"CLOSED"},yt={10:"APPROVED",5:"APPROVED",0:"REVIEW_REQUESTED",[-5]:"CHANGES_REQUESTED",[-10]:"CHANGES_REQUESTED"},ye=t=>({id:t.id,name:t.displayName,username:t.uniqueName||t.displayName,email:null,avatarUrl:t.imageUrl,url:null}),se=t=>t.startsWith("refs/heads/")?t.replace("refs/heads/",""):t,te=t=>{var e;let s=t.reviewers.filter(r=>r.vote!==0).map(r=>({reviewer:ye(r),state:yt[r.vote]||"REVIEW_REQUESTED"}));return{id:t.pullRequestId.toString(),title:t.title,number:t.codeReviewId,state:bt[t.status],isDraft:t.isDraft,commentCount:null,upvoteCount:null,author:ye(t.createdBy),createdDate:new Date(t.creationDate),updatedDate:new Date(t.closedDate||t.creationDate),closedDate:t.closedDate?new Date(t.closedDate):null,mergedDate:t.closedDate&&t.status==="completed"?new Date(t.closedDate):null,repository:{name:t.repository.name,project:t.repository.project.name,owner:{login:void 0},remoteInfo:null},headCommit:{buildStatuses:null},baseRef:{name:se(t.targetRefName),oid:t.lastMergeTargetCommit.commitId},headRef:{name:se(t.sourceRefName),oid:t.lastMergeSourceCommit.commitId},url:Ke(t),assignees:t.reviewers.map(ye),reviews:s,reviewDecision:N(s),additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN",labels:((e=t.labels)==null?void 0:e.map(r=>({color:null,description:null,id:r.id,name:r.name})))??[]}},Ze=(t,s)=>({id:s.id,name:s.name,namespace:t,project:s.project.name,webUrl:s.webUrl,httpsUrl:s.remoteUrl,sshUrl:s.sshUrl,defaultBranch:s.defaultBranch?{name:se(s.defaultBranch)}:null,permission:null}),Pt=(t,s)=>{var i,u;let e=t.fields,r=e["System.AssignedTo"],n=e["System.State"],a=e["System.WorkItemType"],o;return n&&a&&(o=(i=s[a])==null?void 0:i[n]),{id:t.id.toString(),number:t.id.toString(),title:e["System.Title"],commentCount:e["System.CommentCount"],author:{avatarUrl:e["System.CreatedBy"]._links.avatar.href,email:null,id:e["System.CreatedBy"].id,name:e["System.CreatedBy"].uniqueName,username:e["System.CreatedBy"].displayName,url:null},closedDate:e["Microsoft.VSTS.Common.ClosedDate"]?new Date(e["Microsoft.VSTS.Common.ClosedDate"]):null,createdDate:new Date(e["System.CreatedDate"]),updatedDate:new Date(e["System.ChangedDate"]),url:t._links.html.href,assignees:r?[{avatarUrl:r._links.avatar.href,email:null,id:r.id,name:r.uniqueName,username:r.displayName,url:null}]:[],description:null,state:{name:(o==null?void 0:o.title)||n,color:null},type:e["System.WorkItemType"],repository:null,upvoteCount:0,labels:((u=t.fields["System.Tags"])==null?void 0:u.split(";").map(l=>({color:null,description:null,id:null,name:l.trim()})))??[]}},j=class extends E{async getCurrentUser(s={}){if(s.isPAT||this.config.isPAT)throw new Error("Azure DevOps does not support PATs for this function.");let e=await this.config.request({url:`${Xe}/profile/profiles/me`,headers:w(this.config,s)});return{data:{id:e.body.id,name:e.body.displayName,username:e.body.displayName,email:e.body.emailAddress,avatarUrl:null,url:null}}}async getCurrentUserForInstance(s,e={}){let n=(await this.config.request({url:`${q}/${encodeURIComponent(s.namespace)}/_apis/ConnectionData`,headers:w(this.config,e)})).body.authorizedUser;if(n.providerDisplayName==="Anonymous")throw new Error("Current user not found.");return{data:{id:n.id,name:n.providerDisplayName,username:n.providerDisplayName,email:n.properties.Account.$value,avatarUrl:null}}}async getUserForCommit(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let n=(await this.config.request({url:`${q}/${encodeURIComponent(s.repo.namespace)}/${encodeURIComponent(s.repo.project)}/_apis/git/repositories/${encodeURIComponent(s.repo.name)}/commits/${s.oid}`,headers:w(this.config,e)})).body.author;return{data:{name:n.name,email:n.email,avatarUrl:n.imageUrl}}}async getOrgsForUser(s,e={}){return{data:(await this.config.request({url:`${Xe}/accounts?memberId=${s.userId}&api-version=6.0`,headers:w(this.config,e)})).body.value.map(n=>({id:n.accountId,name:n.accountName}))}}async getAzureProjects(s,e={}){let r=new URL(`${q}/${encodeURIComponent(s.namespace)}/_apis/projects`);r.searchParams.set("$top",C.toString()),s.cursor&&r.searchParams.set("$skip",s.cursor);let n=await this.config.request({url:r.toString(),headers:w(this.config,e)}),a=n.headers["x-ms-continuationtoken"];return{pageInfo:{hasNextPage:!!a,endCursor:a||null},data:n.body.value.map(o=>({id:o.id,name:o.name,namespace:s.namespace}))}}async getAzureProjectScopeDescriptor(s,e={}){let{namespace:r,projectId:n}=s;return{data:{scope:(await this.config.request({url:`https://vssps.dev.azure.com/${encodeURIComponent(r)}/_apis/graph/descriptors/${n}?api-version=6.0`,headers:w(this.config,e)})).body.value}}}async getAccountsForAzureProject(s,e={}){let{namespace:r,projectScopeDescriptor:n}=s,a=new URL(`https://vssps.dev.azure.com/${encodeURIComponent(r)}/_apis/graph/users`);return n&&a.searchParams.set("scopeDescriptor",n),{data:(await this.config.request({url:a.toString(),headers:w(this.config,e)})).body.value.map(i=>{var u;return{id:Ye.Base64.decode(i.descriptor.replace(/.+?\./,"")),name:i.displayName,username:i.displayName,email:i.mailAddress,avatarUrl:(u=i._links.avatar)==null?void 0:u.href}})}}async getRepo(s,e={}){if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let r=await this.config.request({url:`${q}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/git/repositories/${encodeURIComponent(s.name)}`,headers:w(this.config,e)});return{data:Ze(s.namespace,r.body)}}async getRepos(s,e={}){let r=[],n=[];return await Promise.all(s.map(async a=>{try{let o=await this.getRepo(a,e);r.push(o.data)}catch(o){n.push({input:a,error:o})}})),{data:r,errors:n}}async getReposForAzureProject(s,e={}){if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');return{data:(await this.config.request({url:`${q}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/git/repositories`,headers:w(this.config,e)})).body.value.map(n=>Ze(s.namespace,n))}}async getRefs(s,e,r={}){if(!e.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let n=new URL(`${q}/${encodeURIComponent(e.repo.namespace)}/${encodeURIComponent(e.repo.project)}/_apis/git/repositories/${encodeURIComponent(e.repo.name)}/refs`);n.searchParams.set("filter",s),n.searchParams.set("$top",C.toString()),e.cursor&&n.searchParams.set("continuationToken",e.cursor);let a=await this.config.request({url:n.toString(),headers:w(this.config,r)}),o=a.headers["x-ms-continuationtoken"];return{pageInfo:{hasNextPage:!!o,endCursor:o||null},data:a.body.value.map(i=>({name:se(i.name),commit:{oid:i.objectId,authoredDate:null,committedDate:null}}))}}async getBranches(s,e={}){return this.getRefs("heads",s,e)}async getTags(s,e={}){return this.getRefs("tags",s,e)}async getPullRequestsForRepoBase(s,e={},r=100){let{page:n,repo:a,assigneeLogins:o,authorLogin:i}=s||{},u=n||1;if(!a.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let l="searchCriteria.status=1";return o&&o.length&&(l+=`&searchCriteria.reviewerId=${o[0]}`),i&&(l+=`&searchCriteria.creatorId=${i}`),await this.config.request({url:`${e.baseUrl||q}/${encodeURIComponent(a.namespace)}/${encodeURIComponent(a.project||"")}/_apis/git/repositories/${encodeURIComponent(a.name)}/pullRequests?${l}&%24top=${r}&%24skip=${(u-1)*r}`,headers:w(this.config,e)})}async getPullRequestsForRepo(s,e={}){let n=s.page||1,a=await this.getPullRequestsForRepoBase(s,e,100);return{pageInfo:{hasNextPage:a.body.value.length===100,nextPage:n+1},data:a.body.value.map(te)}}async getPullRequestsForRepos(s,e={}){if(!s.repos.every(a=>a.project))throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repos:r}=s||{},n=[];return await Promise.all(r.map(async a=>{try{(await this.getPullRequestsForRepoBase({repo:a,...s},e)).body.value.forEach(i=>{n.push(te(i))})}catch(o){if(o.statusCode!==404&&o.statusCode!==401)throw o}})),{data:n}}async getPullRequestsForProjectBase(s,e={},r=100){let{namespace:n,project:a,page:o,assigneeLogins:i,authorLogin:u}=s,l=o||1,p=new URL(`${e.baseUrl||q}/${encodeURIComponent(n)}/${encodeURIComponent(a)}/_apis/git/pullRequests`);return p.searchParams.set("searchCriteria.status","1"),p.searchParams.set("$top",r.toString()),p.searchParams.set("$skip",((l-1)*r).toString()),i&&i.length&&p.searchParams.set("searchCriteria.reviewerId",i[0]),u&&p.searchParams.set("searchCriteria.creatorId",u),await this.config.request({url:p.toString(),headers:w(this.config,e)})}async getPullRequestsForProject(s,e={}){let n=s.page||1,a=await this.getPullRequestsForProjectBase(s,e,100);return{pageInfo:{hasNextPage:a.body.value.length===100,nextPage:n+1},data:a.body.value.map(te)}}async getPullRequestsForProjects(s,e={}){let{projects:r}=s||{},n=[];return await Promise.all(r.map(async a=>{try{(await this.getPullRequestsForProjectBase({...a,...s},e)).body.value.forEach(i=>{n.push(te(i))})}catch(o){if(o.statusCode!==404&&o.statusCode!==401)throw o}})),{data:n}}async getAzurePullRequestLastMergeStatus(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:r,project:n,name:a},pullRequestId:o}=s,i=await this.config.request({url:`${e.baseUrl||q}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${a}/pullrequests/${o}?includeCommits=true?api-version=6.0`,headers:{...w(this.config,e)}});if(!i.body.mergeStatus)throw new Error("Could not fetch pull request");return{data:i.body.mergeStatus}}async updatePullRequest(s,e,r,n){let{namespace:a,project:o,name:i}=s;return await this.config.request({method:"PATCH",url:`${n.baseUrl||q}/${encodeURIComponent(a)}/${encodeURIComponent(o||"")}/_apis/git/repositories/${i}/pullrequests/${e}?api-version=6.0`,body:r,headers:{...w(this.config,n),"Content-Type":"application/json"}})}async closePullRequest(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:r,pullRequestId:n}=s,a={status:"abandoned"};if(!(await this.updatePullRequest(r,n,JSON.stringify(a),e)).body.status)throw new Error("Could not close pull request")}async mergePullRequest(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:r,pullRequestId:n,expectedSourceSha:a,mergeStrategy:o}=s,i;switch(o){case"MERGE_COMMIT":{i="noFastForward";break}case"REBASE":{i="rebase";break}case"REBASE_THEN_MERGE_COMMIT":{i="rebaseMerge";break}case"SQUASH":{i="squash";break}}let u={completionOptions:{mergeStrategy:i},lastMergeSourceCommit:{commitId:a},status:"completed"};if(!(await this.updatePullRequest(r,n,JSON.stringify(u),e)).body.status)throw new Error("Could not merge pull request")}async addPullRequestLabel(s,e={}){let{repo:{namespace:r,project:n,name:a},pullRequestId:o,labelName:i}=s;if(!n)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let u={name:i};if(!(await this.config.request({method:"POST",url:`${e.baseUrl||q}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${a}/pullrequests/${o}/labels?api-version=6.0`,body:JSON.stringify(u),headers:{...w(this.config,e),"Content-Type":"application/json"}})).body.id)throw new Error("Could not add pull request label")}async removePullRequestLabel(s,e={}){let{repo:{namespace:r,project:n,name:a},pullRequestId:o,labelNameOrId:i}=s;if(!n)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');await this.config.request({method:"DELETE",url:`${e.baseUrl||q}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${a}/pullrequests/${o}/labels/${encodeURIComponent(i)}?api-version=6.0`,headers:{...w(this.config,e)}})}async setPullRequestAsDraft(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:r,pullRequestId:n,isDraft:a}=s,o={isDraft:a};if(!(await this.updatePullRequest(r,n,JSON.stringify(o),e)).body.status)throw new Error("Could not set the pull request as draft")}async addPullRequestReviewer(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:r,project:n,name:a},pullRequestId:o,reviewerId:i,isRequired:u}=s,l={id:i,isRequired:u};if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||q}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${a}/pullrequests/${o}/reviewers/${i}?api-version=6.0`,body:JSON.stringify(l),headers:{...w(this.config,e),"Content-Type":"application/json"}})).body.id)throw new Error("Could not add pull request reviewer")}async removePullRequestReviewer(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:r,project:n,name:a},pullRequestId:o,reviewerId:i}=s;await this.config.request({method:"DELETE",url:`${e.baseUrl||q}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${a}/pullrequests/${o}/reviewers/${i}?api-version=6.0`,headers:{...w(this.config,e),Accept:"application/json"}})}async getIssuesForAzureProject(s,e={}){let{page:r,assigneeLogins:n,authorLogin:a,mentionLogin:o,statusByWorkItemIdByStatusId:i}=s||{},u=r||1,l=200,p=["[Microsoft.VSTS.Common.ClosedDate] = ''","[System.TeamProject] = @project","[Microsoft.VSTS.Common.ResolvedDate] = ''"];a&&p.push(`[System.CreatedBy] = '${a.replace("'","''")}'`),n&&n[0]&&p.push(`[System.AssignedTo] = '${n[0].replace("'","''")}'`),o&&p.push("[System.Id] IN (@recentMentions)");let d=`Select [Microsoft.VSTS.Common.ClosedDate], [Microsoft.VSTS.Common.ResolvedDate] From WorkItems Where ${p.join(" AND ")} order by [System.CreatedDate] desc`,c=await this.config.request({url:`${e.baseUrl||q}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/wit/wiql?api-version=6.0`,body:JSON.stringify({query:d}),method:"POST",headers:{...w(this.config,e),"Content-Type":"application/json"}}),g=c.body.workItems.slice((u-1)*l,l*u).map(h=>h.id);if(g.length==0)return{pageInfo:{hasNextPage:!1,nextPage:null},data:[]};let R=await this.config.request({url:`${e.baseUrl||q}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/wit/workitemsbatch?api-version=6.0`,body:JSON.stringify({ids:g,$expand:"Links"}),method:"POST",headers:{...w(this.config,e),"Content-Type":"application/json"}});return{pageInfo:{hasNextPage:c.body.workItems.length>l*u,nextPage:u+1},data:R.body.value.map(h=>Pt(h,i||{}))}}async updateIssue(s,e,r,n,a={}){return await this.config.request({method:"PATCH",url:`${a.baseUrl||q}/${encodeURIComponent(s)}/${encodeURIComponent(e||"")}/_apis/wit/workitems/${r}?api-version=6.0`,body:JSON.stringify(n),headers:{...w(this.config,a),"Content-Type":"application/json-patch+json"}})}async setIssueStatus(s,e={}){var l;if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:r,project:n,issueId:a,status:o}=s,i=[{op:"add",path:"/fields/System.State",value:o}];if(!((l=(await this.updateIssue(r,n,a,i,e)).body.fields)!=null&&l["System.State"]))throw new Error("Could not set issue status")}async setIssueAssignee(s,e={}){var l;if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:r,project:n,issueId:a,assigneeNameOrEmail:o}=s,i=[{op:"add",path:"/fields/System.AssignedTo",value:o??""}];if(!((l=(await this.updateIssue(r,n,a,i,e)).body.fields)!=null&&l["System.State"]))throw new Error("Could not set issue assignee")}async setIssueLabels(s,e={}){var l;let{namespace:r,project:n,issueId:a,tagNames:o}=s,i=[{op:"replace",path:"/fields/System.Tags",value:o.join(";")}];if(!((l=(await this.updateIssue(r,n,a,i,e)).body.fields)!=null&&l["System.Tags"]))throw new Error("Could not set issue tags")}async getIssueTypesForAzureProject(s,e={}){if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:r,project:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||q}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/wit/workitemtypes?api-version=6.0`,headers:{...w(this.config,e)}})).body.value}}async getLabelsForProject(s,e={}){let{namespace:r,project:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||q}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/wit/tags?api-version=6.0`,headers:{...w(this.config,e)}})).body.value.map(o=>({color:null,description:null,id:o.id,name:o.name}))}}};var S=(t,s={})=>m(s.token||t.token,s.isPAT||t.isPAT);var $="https://api.bitbucket.org/2.0",wt={OPEN:"OPEN",MERGED:"MERGED",DECLINED:"CLOSED"},tt=t=>({id:t.uuid,name:t.display_name||t.nickname,username:t.nickname||t.display_name,email:null,avatarUrl:t.links.avatar.href,url:t.links.html.href}),et=t=>{var s,e;return{id:t.uuid,namespace:t.workspace.slug,name:t.slug,webUrl:t.links.html.href,httpsUrl:((s=t.links.clone.find(r=>r.name==="https"))==null?void 0:s.href)??null,sshUrl:((e=t.links.clone.find(r=>r.name==="ssh"))==null?void 0:e.href)??null,defaultBranch:{name:t.mainbranch.name},permission:null}},qe=t=>{let s=t.id;return{id:s.toString(),title:t.title,number:s,state:wt[t.state],isDraft:!1,commentCount:t.comment_count,upvoteCount:null,author:tt(t.author),createdDate:new Date(t.created_on),updatedDate:new Date(t.updated_on),closedDate:null,mergedDate:null,repository:{name:t.source.repository.name,owner:{login:void 0},remoteInfo:null},headCommit:{buildStatuses:null},baseRef:{name:t.destination.branch.name,oid:t.destination.commit.hash},headRef:{name:t.source.branch.name,oid:t.source.commit.hash},url:t.links.html.href,assignees:null,reviews:null,reviewDecision:null,additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN"}},Q=class extends E{async refreshToken(s){return{data:(await this.config.request({url:"https://bitbucket.org/site/oauth2/access_token",method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Basic ${s.base64ClientIDColonClientSecret}`},body:`grant_type=refresh_token&refresh_token=${s.refreshToken}`})).body}}async getCurrentUser(s={}){let e=await this.config.request({url:`${$}/user`,headers:S(this.config,s)});return{data:tt(e.body)}}async getUserForCommit(s,e={}){var o;let n=(await this.config.request({url:`${$}/repositories/${s.repo.namespace}/${s.repo.name}/commit/${s.oid}`,headers:S(this.config,e)})).body.author,a=n.raw.match(/([^<]+)<(.+)>/);return{data:{name:a?a[1].trim():null,email:a?a[2]:null,avatarUrl:((o=n.user)==null?void 0:o.links.avatar.href)||null}}}async getRepo(s,e={}){let r=await this.config.request({url:`${$}/repositories/${s.namespace}/${s.name}`,headers:S(this.config,e)});return{data:et(r.body)}}async getRepos(s,e={}){let r=[],n=[];return await Promise.all(s.map(async a=>{try{let o=await this.getRepo(a,e);r.push(o.data)}catch(o){n.push({input:a,error:o})}})),{data:r,errors:n}}async getReposForCurrentUser(s={},e={}){let r=new URL(`${$}/repositories`);r.searchParams.set("role","member"),r.searchParams.set("pagelen",C.toString()),s.cursor&&r.searchParams.set("after",s.cursor);let n=await this.config.request({url:r.toString(),headers:S(this.config,e)}),a=!!n.body.next,o=null;return n.body.next&&(o=new URL(n.body.next).searchParams.get("after")),{pageInfo:{hasNextPage:a,endCursor:o},data:n.body.values.map(et)}}async getBranches(s,e={}){var o;let r=new URL(`${$}/repositories/${s.repo.namespace}/${s.repo.name}/refs/branches`);r.searchParams.set("page",((o=s.page)==null?void 0:o.toString())||"1"),r.searchParams.set("pagelen",C.toString());let n=await this.config.request({url:r.toString(),headers:S(this.config,e)}),a=!!n.body.next;return{pageInfo:{hasNextPage:a,nextPage:a?n.body.page+1:null},data:n.body.values.map(i=>{let u=new Date(i.target.date);return{name:i.name,commit:{oid:i.target.hash,authoredDate:u,committedDate:u}}})}}async getTags(s,e={}){let r=new URL(`${$}/repositories/${s.repo.namespace}/${s.repo.name}/refs/tags`);r.searchParams.set("pagelen",C.toString()),s.cursor&&r.searchParams.set("page",s.cursor);let n=await this.config.request({url:r.toString(),headers:S(this.config,e)}),a=!!n.body.next,o=null;return n.body.next&&(o=new URL(n.body.next).searchParams.get("page")),{pageInfo:{hasNextPage:a,endCursor:o},data:n.body.values.map(i=>{let u=new Date(i.target.date);return{name:i.name,commit:{oid:i.target.hash,authoredDate:u,committedDate:u}}})}}async getPullRequestsForUser(s,e={}){var o;let r=new URL(`${$}/pullrequests/${s.userId}`);r.searchParams.set("page",((o=s.page)==null?void 0:o.toString())||"1"),r.searchParams.set("pagelen","50");let n=await this.config.request({url:`${$}/pullrequests/${s.userId}`,headers:S(this.config,e)}),a=!!n.body.next;return{pageInfo:{hasNextPage:a,nextPage:a?n.body.page+1:null},data:n.body.values.map(qe)}}async getPullRequestsForRepoBase(s,e={}){var n;let r=new URL(`${$}/repositories/${encodeURI(s.repo.namespace)}/${encodeURI(s.repo.name)}/pullrequests?state=OPEN`);return r.searchParams.set("page",((n=s.page)==null?void 0:n.toString())||"1"),r.searchParams.set("pagelen","50"),await this.config.request({url:r.toString(),headers:S(this.config,e)})}async getPullRequestsForRepo(s,e={}){let r=[],n=await this.getPullRequestsForRepoBase(s,e);n.body.values.forEach(o=>{if(s.authorLogin&&o.author.uuid!==s.authorLogin)return null;r.push(qe(o))});let a=!!n.body.next;return{pageInfo:{hasNextPage:a,nextPage:a?n.body.page+1:null},data:r}}async getPullRequestsForRepos(s,e={}){let r=[];return await Promise.all(s.repos.map(async n=>{try{(await this.getPullRequestsForRepoBase({repo:n,...s},e)).body.values.forEach(o=>{if(s.authorLogin&&o.author.uuid!==s.authorLogin)return null;r.push(qe(o))})}catch(a){if(a.statusCode!==404&&a.statusCode!==401)throw a}})),{data:r}}async closePullRequest(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:a}=s;if(!(await this.config.request({method:"POST",url:`${$}/repositories/${r}/${n}/pullrequests/${a}/decline`,headers:S(this.config,e)})).body.title)throw new Error("Could not close pull request")}async mergePullRequest(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:a,mergeStrategy:o}=s,i;switch(o){case"MERGE_COMMIT":{i="merge_commit";break}case"FAST_FORWARD":{i="fast_forward";break}case"SQUASH":{i="squash";break}}let u={merge_strategy:i,type:"pullrequest"};if(!(await this.config.request({method:"POST",url:`${$}/repositories/${r}/${n}/pullrequests/${a}/merge`,body:JSON.stringify(u),headers:{...S(this.config,e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not merge pull request")}async setPullRequestReviewers(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:a,reviewerUsernames:o}=s,i={reviewers:o.map(l=>({username:l}))};if(!(await this.config.request({method:"PUT",url:`${$}/repositories/${r}/${n}/pullrequests/${a}`,body:JSON.stringify(i),headers:{...S(this.config,e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not set pull request reviewers")}};var B=class extends v{getBaseUrl(s){let e=s.baseUrl||this.config.baseUrl;if(!e)throw new Error('Bitbucket Server requires "baseUrl"');return e}getRequestHeaders(s){return m(s.token||this.config.token)}async getRepo(s,e={}){var n,a,o;let r=await this.config.request({url:`${this.getBaseUrl(e)}/projects/${s.namespace}/repos/${s.name}`,headers:this.getRequestHeaders(e)});return{data:{id:r.body.id.toString(),namespace:r.body.project.key,name:r.body.slug,webUrl:((n=r.body.links.self[0])==null?void 0:n.href)??null,httpsUrl:((a=r.body.links.clone.find(i=>i.name==="https"))==null?void 0:a.href)??null,sshUrl:((o=r.body.links.clone.find(i=>i.name==="ssh"))==null?void 0:o.href)??null,defaultBranch:null,permission:null}}}async getRepos(s,e={}){let r=[],n=[];return await Promise.all(s.map(async a=>{try{let o=await this.getRepo(a,e);r.push(o.data)}catch(o){n.push({input:a,error:o})}})),{data:r,errors:n}}async closePullRequest(s,e){let{repo:{namespace:r,name:n},pullRequestId:a,version:o}=s;if(!(await this.config.request({method:"POST",url:`${this.getBaseUrl(e)}/projects/${r}/repos/${n}/pull-requests/${a}/decline`,body:JSON.stringify({version:o}),headers:{...this.getRequestHeaders(e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not close pull request")}async mergePullRequest(s,e){let{repo:{namespace:r,name:n},pullRequestId:a,mergeStrategyId:o,version:i}=s;if(!(await this.config.request({method:"POST",url:`${this.getBaseUrl(e)}/projects/${r}/repos/${n}/pull-requests/${a}/merge`,body:JSON.stringify({strategyId:o,version:i}),headers:{...this.getRequestHeaders(e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not merge pull request")}async getMergeStrategies(s){let e=await this.config.request({url:`${this.getBaseUrl(s)}/admin/pull-requests/git`,headers:{...this.getRequestHeaders(s),"Content-Type":"application/json"}});return{data:{defaultStrategy:e.body.mergeConfig.defaultStrategy,strategies:e.body.mergeConfig.strategies}}}async setPullRequestReviewers(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:a,reviewerUsernames:o,version:i}=s,u={reviewers:o.map(p=>({user:{name:p}})),version:i};if(!(await this.config.request({method:"PUT",url:`${this.getBaseUrl(e)}/projects/${r}/repos/${n}/pull-requests/${a}`,body:JSON.stringify(u),headers:{...this.getRequestHeaders(e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not set pull request reviewers")}};var Ce="https://api.github.com",qt=`${Ce}/graphql`,ne=`
1
+ "use strict";var Rt=Object.create;var se=Object.defineProperty;var It=Object.getOwnPropertyDescriptor;var bt=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,Pt=Object.prototype.hasOwnProperty;var x=(t,s)=>{for(var e in s)se(t,e,{get:s[e],enumerable:!0})},Je=(t,s,e,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of bt(s))!Pt.call(t,n)&&n!==e&&se(t,n,{get:()=>s[n],enumerable:!(r=It(s,n))||r.enumerable});return t};var wt=(t,s,e)=>(e=t!=null?Rt(yt(t)):{},Je(s||!t||!t.__esModule?se(e,"default",{value:t,enumerable:!0}):e,t)),St=t=>Je(se({},"__esModule",{value:!0}),t);var Ts={};x(Ts,{AzureDevOps:()=>B,AzureDevopsUtils:()=>fe,Bitbucket:()=>z,BitbucketServer:()=>H,BitbucketServerUtils:()=>Ie,BitbucketUtils:()=>Re,GitHub:()=>W,GitHubUtils:()=>be,GitLab:()=>V,GitLabUtils:()=>ye,Jira:()=>Z,JiraServer:()=>Y,JiraUtils:()=>Pe,Trello:()=>ee,TrelloUtils:()=>we,Utils:()=>Os,default:()=>As});module.exports=St(Ts);var rt=require("js-base64");var D=100;var Ve=wt(require("node-fetch")),Ke=globalThis.fetch||Ve.default;var Xe=t=>t.name==="fetch";var qt=async t=>{let s=t.headers.get("content-type")||"",e=null;if(s.startsWith("application/json")){let n=await t.text();e=n.trim().length>0?JSON.parse(n):null}else if(s.startsWith("text/")||s==="")e=await t.text();else throw new Error(`Unsupported content-type: ${s}`);let r={body:e,headers:Object.fromEntries(t.headers.entries()),status:t.status,statusText:t.statusText};if(!t.ok){let n=new Error(t.statusText);throw Object.assign(n,{response:r}),n}return r},Se=t=>Xe(t)?async({url:s,...e})=>{let r=await t(s,e);return qt(r)}:t;var U=class{constructor(s){this.config={...s,request:Se((s==null?void 0:s.request)||Ke)}}updateConfig(s){this.config={...this.config,...s,request:s.request?Se(s.request):this.config.request}}},L=class extends U{};var R=(t,s)=>{let e={};return t&&(e.Authorization=`${s?"Basic":"Bearer"} ${t}`),e},Ze=t=>t?t.reduce((s,e)=>(s[e]=!0,s),{}):void 0,k=(t,s,e)=>!t||s.some(r=>t[r])?e:"";var w=(t,s={})=>R(s.token||t.token,s.isPAT||t.isPAT),Ye=t=>t.url.replace("/_apis/git/repositories/","/_git/").replace(`/${t.repository.project.id}/`,`/${encodeURIComponent(t.repository.project.name)}/`).replace(`/${t.repository.id}/`,`/${encodeURIComponent(t.repository.name)}/`).replace("/pullRequests/","/pullrequest/");var et={APPROVED:0,COMMENTED:1,REVIEW_REQUESTED:2,CHANGES_REQUESTED:3},_=t=>!t||t.length===0?null:t.reduce((s,e)=>et[e.state]>et[s]?e.state:s,"APPROVED");var tt="https://app.vssps.visualstudio.com/_apis",S="https://dev.azure.com",Dt={active:"OPEN",completed:"MERGED",abandoned:"CLOSED"},Ct={10:"APPROVED",5:"APPROVED",0:"REVIEW_REQUESTED",[-5]:"CHANGES_REQUESTED",[-10]:"CHANGES_REQUESTED"},qe=t=>({id:t.id,name:t.displayName,username:t.uniqueName||t.displayName,email:null,avatarUrl:t.imageUrl,url:null}),ne=t=>t.startsWith("refs/heads/")?t.replace("refs/heads/",""):t,re=t=>{var e;let s=t.reviewers.filter(r=>r.vote!==0).map(r=>({reviewer:qe(r),state:Ct[r.vote]||"REVIEW_REQUESTED"}));return{id:t.pullRequestId.toString(),title:t.title,number:t.codeReviewId,state:Dt[t.status],isDraft:t.isDraft,commentCount:null,upvoteCount:null,author:qe(t.createdBy),createdDate:new Date(t.creationDate),updatedDate:new Date(t.closedDate||t.creationDate),closedDate:t.closedDate?new Date(t.closedDate):null,mergedDate:t.closedDate&&t.status==="completed"?new Date(t.closedDate):null,repository:{id:t.repository.id,name:t.repository.name,project:t.repository.project.name,owner:{login:void 0},remoteInfo:null},headCommit:{buildStatuses:null},baseRef:{name:ne(t.targetRefName),oid:t.lastMergeTargetCommit.commitId},headRef:{name:ne(t.sourceRefName),oid:t.lastMergeSourceCommit.commitId},url:Ye(t),assignees:t.reviewers.map(qe),reviews:s,reviewDecision:_(s),additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN",labels:((e=t.labels)==null?void 0:e.map(r=>({color:null,description:null,id:r.id,name:r.name})))??[]}},st=(t,s)=>({id:s.id,name:s.name,namespace:t,project:s.project.name,webUrl:s.webUrl,httpsUrl:s.remoteUrl,sshUrl:s.sshUrl,defaultBranch:s.defaultBranch?{name:ne(s.defaultBranch)}:null,permission:null}),vt=(t,s)=>{var i,u;let e=t.fields,r=e["System.AssignedTo"],n=e["System.State"],o=e["System.WorkItemType"],a;return n&&o&&(a=(i=s[o])==null?void 0:i[n]),{id:t.id.toString(),number:t.id.toString(),title:e["System.Title"],commentCount:e["System.CommentCount"],author:{avatarUrl:e["System.CreatedBy"]._links.avatar.href,email:null,id:e["System.CreatedBy"].id,name:e["System.CreatedBy"].uniqueName,username:e["System.CreatedBy"].displayName,url:null},closedDate:e["Microsoft.VSTS.Common.ClosedDate"]?new Date(e["Microsoft.VSTS.Common.ClosedDate"]):null,createdDate:new Date(e["System.CreatedDate"]),updatedDate:new Date(e["System.ChangedDate"]),url:t._links.html.href,assignees:r?[{avatarUrl:r._links.avatar.href,email:null,id:r.id,name:r.uniqueName,username:r.displayName,url:null}]:[],description:null,state:{name:(a==null?void 0:a.title)||n,color:null},type:e["System.WorkItemType"],repository:null,upvoteCount:0,labels:((u=t.fields["System.Tags"])==null?void 0:u.split(";").map(l=>({color:null,description:null,id:null,name:l.trim()})))??[]}},B=class extends U{async getCurrentUser(s={},e={}){if(e.isPAT||this.config.isPAT)throw new Error("Azure DevOps does not support PATs for this function.");let r=await this.config.request({url:`${tt}/profile/profiles/me`,headers:w(this.config,e)});return{data:{id:r.body.id,name:r.body.displayName,username:r.body.displayName,email:r.body.emailAddress,avatarUrl:null,url:null}}}async getCurrentUserForInstance(s,e={}){let n=(await this.config.request({url:`${S}/${encodeURIComponent(s.namespace)}/_apis/ConnectionData`,headers:w(this.config,e)})).body.authorizedUser;if(n.providerDisplayName==="Anonymous")throw new Error("Current user not found.");return{data:{id:n.id,name:n.providerDisplayName,username:n.providerDisplayName,email:n.properties.Account.$value,avatarUrl:null}}}async getUserForCommit(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let n=(await this.config.request({url:`${S}/${encodeURIComponent(s.repo.namespace)}/${encodeURIComponent(s.repo.project)}/_apis/git/repositories/${encodeURIComponent(s.repo.name)}/commits/${s.oid}`,headers:w(this.config,e)})).body.author;return{data:{name:n.name,email:n.email,avatarUrl:n.imageUrl}}}async getOrgsForUser(s,e={}){return{data:(await this.config.request({url:`${tt}/accounts?memberId=${s.userId}&api-version=6.0`,headers:w(this.config,e)})).body.value.map(n=>({id:n.accountId,name:n.accountName}))}}async getAzureProjects(s,e={}){let r=new URL(`${S}/${encodeURIComponent(s.namespace)}/_apis/projects`);r.searchParams.set("$top",D.toString()),s.cursor&&r.searchParams.set("$skip",s.cursor);let n=await this.config.request({url:r.toString(),headers:w(this.config,e)}),o=n.headers["x-ms-continuationtoken"];return{pageInfo:{hasNextPage:!!o,endCursor:o||null},data:n.body.value.map(a=>({id:a.id,name:a.name,namespace:s.namespace}))}}async getAzureProjectScopeDescriptor(s,e={}){let{namespace:r,projectId:n}=s;return{data:{scope:(await this.config.request({url:`https://vssps.dev.azure.com/${encodeURIComponent(r)}/_apis/graph/descriptors/${n}?api-version=6.0`,headers:w(this.config,e)})).body.value}}}async getAccountsForAzureProject(s,e={}){let{namespace:r,projectScopeDescriptor:n}=s,o=new URL(`https://vssps.dev.azure.com/${encodeURIComponent(r)}/_apis/graph/users`);return n&&o.searchParams.set("scopeDescriptor",n),{data:(await this.config.request({url:o.toString(),headers:w(this.config,e)})).body.value.map(i=>{var u;return{id:rt.Base64.decode(i.descriptor.replace(/.+?\./,"")),name:i.displayName,username:i.displayName,email:i.mailAddress,avatarUrl:(u=i._links.avatar)==null?void 0:u.href}})}}async getRepo(s,e={}){if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let r=await this.config.request({url:`${S}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/git/repositories/${encodeURIComponent(s.name)}`,headers:w(this.config,e)});return{data:st(s.namespace,r.body)}}async getRepos(s,e={}){let r=[],n=[];return await Promise.all(s.map(async o=>{try{let a=await this.getRepo(o,e);r.push(a.data)}catch(a){n.push({input:o,error:a})}})),{data:r,errors:n}}async getReposForAzureProject(s,e={}){if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');return{data:(await this.config.request({url:`${S}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/git/repositories`,headers:w(this.config,e)})).body.value.map(n=>st(s.namespace,n))}}async getRefs(s,e,r={}){if(!e.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let n=new URL(`${S}/${encodeURIComponent(e.repo.namespace)}/${encodeURIComponent(e.repo.project)}/_apis/git/repositories/${encodeURIComponent(e.repo.name)}/refs`);n.searchParams.set("filter",s),n.searchParams.set("$top",D.toString()),e.cursor&&n.searchParams.set("continuationToken",e.cursor);let o=await this.config.request({url:n.toString(),headers:w(this.config,r)}),a=o.headers["x-ms-continuationtoken"];return{pageInfo:{hasNextPage:!!a,endCursor:a||null},data:o.body.value.map(i=>({name:ne(i.name),commit:{oid:i.objectId,authoredDate:null,committedDate:null}}))}}async getBranches(s,e={}){return this.getRefs("heads",s,e)}async getTags(s,e={}){return this.getRefs("tags",s,e)}async getPullRequestsForRepoBase(s,e={},r=100){let{page:n,repo:o,assigneeLogins:a,authorLogin:i}=s||{},u=n||1;if(!o.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let l="searchCriteria.status=1";return a&&a.length&&(l+=`&searchCriteria.reviewerId=${a[0]}`),i&&(l+=`&searchCriteria.creatorId=${i}`),await this.config.request({url:`${e.baseUrl||S}/${encodeURIComponent(o.namespace)}/${encodeURIComponent(o.project||"")}/_apis/git/repositories/${encodeURIComponent(o.name)}/pullRequests?${l}&%24top=${r}&%24skip=${(u-1)*r}`,headers:w(this.config,e)})}async getPullRequestsForRepo(s,e={}){let n=s.page||1,o=await this.getPullRequestsForRepoBase(s,e,100);return{pageInfo:{hasNextPage:o.body.value.length===100,nextPage:n+1},data:o.body.value.map(re)}}async getPullRequestsForRepos(s,e={}){if(!s.repos.every(o=>o.project))throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repos:r}=s||{},n=[];return await Promise.all(r.map(async o=>{try{(await this.getPullRequestsForRepoBase({repo:o,...s},e)).body.value.forEach(i=>{n.push(re(i))})}catch(a){if(a.statusCode!==404&&a.statusCode!==401)throw a}})),{data:n}}async getPullRequestsForProjectBase(s,e={},r=100){let{namespace:n,project:o,page:a,assigneeLogins:i,authorLogin:u}=s,l=a||1,p=new URL(`${e.baseUrl||S}/${encodeURIComponent(n)}/${encodeURIComponent(o)}/_apis/git/pullRequests`);return p.searchParams.set("searchCriteria.status","1"),p.searchParams.set("$top",r.toString()),p.searchParams.set("$skip",((l-1)*r).toString()),i&&i.length&&p.searchParams.set("searchCriteria.reviewerId",i[0]),u&&p.searchParams.set("searchCriteria.creatorId",u),await this.config.request({url:p.toString(),headers:w(this.config,e)})}async getPullRequestsForProject(s,e={}){let n=s.page||1,o=await this.getPullRequestsForProjectBase(s,e,100);return{pageInfo:{hasNextPage:o.body.value.length===100,nextPage:n+1},data:o.body.value.map(re)}}async getPullRequestsForProjects(s,e={}){let{projects:r}=s||{},n=[];return await Promise.all(r.map(async o=>{try{(await this.getPullRequestsForProjectBase({...o,...s},e)).body.value.forEach(i=>{n.push(re(i))})}catch(a){if(a.statusCode!==404&&a.statusCode!==401)throw a}})),{data:n}}async getAzurePullRequestLastMergeStatus(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:r,project:n,name:o},pullRequestId:a}=s,i=await this.config.request({url:`${e.baseUrl||S}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}?includeCommits=true?api-version=6.0`,headers:{...w(this.config,e)}});if(!i.body.mergeStatus)throw new Error("Could not fetch pull request");return{data:i.body.mergeStatus}}async updatePullRequest(s,e,r,n){let{namespace:o,project:a,name:i}=s;return await this.config.request({method:"PATCH",url:`${n.baseUrl||S}/${encodeURIComponent(o)}/${encodeURIComponent(a||"")}/_apis/git/repositories/${i}/pullrequests/${e}?api-version=6.0`,body:r,headers:{...w(this.config,n),"Content-Type":"application/json"}})}async closePullRequest(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:r,pullRequestId:n}=s,o={status:"abandoned"};if(!(await this.updatePullRequest(r,n,JSON.stringify(o),e)).body.status)throw new Error("Could not close pull request")}async mergePullRequest(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:r,pullRequestId:n,expectedSourceSha:o,mergeStrategy:a}=s,i;switch(a){case"MERGE_COMMIT":{i="noFastForward";break}case"REBASE":{i="rebase";break}case"REBASE_THEN_MERGE_COMMIT":{i="rebaseMerge";break}case"SQUASH":{i="squash";break}}let u={completionOptions:{mergeStrategy:i},lastMergeSourceCommit:{commitId:o},status:"completed"};if(!(await this.updatePullRequest(r,n,JSON.stringify(u),e)).body.status)throw new Error("Could not merge pull request")}async addPullRequestLabel(s,e={}){let{repo:{namespace:r,project:n,name:o},pullRequestId:a,labelName:i}=s;if(!n)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let u={name:i};if(!(await this.config.request({method:"POST",url:`${e.baseUrl||S}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/labels?api-version=6.0`,body:JSON.stringify(u),headers:{...w(this.config,e),"Content-Type":"application/json"}})).body.id)throw new Error("Could not add pull request label")}async removePullRequestLabel(s,e={}){let{repo:{namespace:r,project:n,name:o},pullRequestId:a,labelNameOrId:i}=s;if(!n)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');await this.config.request({method:"DELETE",url:`${e.baseUrl||S}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/labels/${encodeURIComponent(i)}?api-version=6.0`,headers:{...w(this.config,e)}})}async setPullRequestAsDraft(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:r,pullRequestId:n,isDraft:o}=s,a={isDraft:o};if(!(await this.updatePullRequest(r,n,JSON.stringify(a),e)).body.status)throw new Error("Could not set the pull request as draft")}async addPullRequestReviewer(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:r,project:n,name:o},pullRequestId:a,reviewerId:i,isRequired:u}=s,l={id:i,isRequired:u};if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||S}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/reviewers/${i}?api-version=6.0`,body:JSON.stringify(l),headers:{...w(this.config,e),"Content-Type":"application/json"}})).body.id)throw new Error("Could not add pull request reviewer")}async removePullRequestReviewer(s,e={}){if(!s.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:r,project:n,name:o},pullRequestId:a,reviewerId:i}=s;await this.config.request({method:"DELETE",url:`${e.baseUrl||S}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/reviewers/${i}?api-version=6.0`,headers:{...w(this.config,e),Accept:"application/json"}})}async getIssuesForAzureProject(s,e={}){let{page:r,assigneeLogins:n,authorLogin:o,mentionLogin:a,statusByWorkItemIdByStatusId:i}=s||{},u=r||1,l=200,p=["[Microsoft.VSTS.Common.ClosedDate] = ''","[System.TeamProject] = @project","[Microsoft.VSTS.Common.ResolvedDate] = ''"];o&&p.push(`[System.CreatedBy] = '${o.replace("'","''")}'`),n&&n[0]&&p.push(`[System.AssignedTo] = '${n[0].replace("'","''")}'`),a&&p.push("[System.Id] IN (@recentMentions)");let d=`Select [Microsoft.VSTS.Common.ClosedDate], [Microsoft.VSTS.Common.ResolvedDate] From WorkItems Where ${p.join(" AND ")} order by [System.CreatedDate] desc`,c=await this.config.request({url:`${e.baseUrl||S}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/wit/wiql?api-version=6.0`,body:JSON.stringify({query:d}),method:"POST",headers:{...w(this.config,e),"Content-Type":"application/json"}}),g=c.body.workItems.slice((u-1)*l,l*u).map(f=>f.id);if(g.length==0)return{pageInfo:{hasNextPage:!1,nextPage:null},data:[]};let m=await this.config.request({url:`${e.baseUrl||S}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/wit/workitemsbatch?api-version=6.0`,body:JSON.stringify({ids:g,$expand:"Links"}),method:"POST",headers:{...w(this.config,e),"Content-Type":"application/json"}});return{pageInfo:{hasNextPage:c.body.workItems.length>l*u,nextPage:u+1},data:m.body.value.map(f=>vt(f,i||{}))}}async updateIssue(s,e,r,n,o={}){return await this.config.request({method:"PATCH",url:`${o.baseUrl||S}/${encodeURIComponent(s)}/${encodeURIComponent(e||"")}/_apis/wit/workitems/${r}?api-version=6.0`,body:JSON.stringify(n),headers:{...w(this.config,o),"Content-Type":"application/json-patch+json"}})}async setIssueStatus(s,e={}){var l;if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:r,project:n,issueId:o,status:a}=s,i=[{op:"add",path:"/fields/System.State",value:a}];if(!((l=(await this.updateIssue(r,n,o,i,e)).body.fields)!=null&&l["System.State"]))throw new Error("Could not set issue status")}async setIssueAssignee(s,e={}){var l;if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:r,project:n,issueId:o,assigneeNameOrEmail:a}=s,i=[{op:"add",path:"/fields/System.AssignedTo",value:a??""}];if(!((l=(await this.updateIssue(r,n,o,i,e)).body.fields)!=null&&l["System.State"]))throw new Error("Could not set issue assignee")}async setIssueLabels(s,e={}){var l;let{namespace:r,project:n,issueId:o,tagNames:a}=s,i=[{op:"replace",path:"/fields/System.Tags",value:a.join(";")}];if(!((l=(await this.updateIssue(r,n,o,i,e)).body.fields)!=null&&l["System.Tags"]))throw new Error("Could not set issue tags")}async getIssueTypesForAzureProject(s,e={}){if(!s.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:r,project:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||S}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/wit/workitemtypes?api-version=6.0`,headers:{...w(this.config,e)}})).body.value}}async getLabelsForProject(s,e={}){let{namespace:r,project:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||S}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/wit/tags?api-version=6.0`,headers:{...w(this.config,e)}})).body.value.map(a=>({color:null,description:null,id:a.id,name:a.name}))}}};var v=(t,s={})=>R(s.token||t.token,s.isPAT||t.isPAT);var E="https://api.bitbucket.org/2.0",Ut={OPEN:"OPEN",MERGED:"MERGED",DECLINED:"CLOSED"},at=t=>({id:t.uuid,name:t.display_name||t.nickname,username:t.nickname||t.display_name,email:null,avatarUrl:t.links.avatar.href,url:t.links.html.href}),nt=t=>{var s,e;return{id:t.uuid,namespace:t.workspace.slug,name:t.slug,webUrl:t.links.html.href,httpsUrl:((s=t.links.clone.find(r=>r.name==="https"))==null?void 0:s.href)??null,sshUrl:((e=t.links.clone.find(r=>r.name==="ssh"))==null?void 0:e.href)??null,defaultBranch:{name:t.mainbranch.name},permission:null}},Ce=t=>{let s=t.id;return{id:s.toString(),title:t.title,number:s,state:Ut[t.state],isDraft:!1,commentCount:t.comment_count,upvoteCount:null,author:at(t.author),createdDate:new Date(t.created_on),updatedDate:new Date(t.updated_on),closedDate:null,mergedDate:null,repository:{id:t.source.repository.uuid,name:t.source.repository.name,owner:{login:void 0},remoteInfo:null},headCommit:{buildStatuses:null},baseRef:{name:t.destination.branch.name,oid:t.destination.commit.hash},headRef:{name:t.source.branch.name,oid:t.source.commit.hash},url:t.links.html.href,assignees:null,reviews:null,reviewDecision:null,additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN"}},z=class extends U{async refreshToken(s){return{data:(await this.config.request({url:"https://bitbucket.org/site/oauth2/access_token",method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Basic ${s.base64ClientIDColonClientSecret}`},body:`grant_type=refresh_token&refresh_token=${s.refreshToken}`})).body}}async getCurrentUser(s={},e={}){let r=await this.config.request({url:`${E}/user`,headers:v(this.config,e)});return{data:at(r.body)}}async getUserForCommit(s,e={}){var a;let n=(await this.config.request({url:`${E}/repositories/${s.repo.namespace}/${s.repo.name}/commit/${s.oid}`,headers:v(this.config,e)})).body.author,o=n.raw.match(/([^<]+)<(.+)>/);return{data:{name:o?o[1].trim():null,email:o?o[2]:null,avatarUrl:((a=n.user)==null?void 0:a.links.avatar.href)||null}}}async getRepo(s,e={}){let r=await this.config.request({url:`${E}/repositories/${s.namespace}/${s.name}`,headers:v(this.config,e)});return{data:nt(r.body)}}async getRepos(s,e={}){let r=[],n=[];return await Promise.all(s.map(async o=>{try{let a=await this.getRepo(o,e);r.push(a.data)}catch(a){n.push({input:o,error:a})}})),{data:r,errors:n}}async getReposForCurrentUser(s={},e={}){let r=new URL(`${E}/repositories`);r.searchParams.set("role","member"),r.searchParams.set("pagelen",D.toString()),s.cursor&&r.searchParams.set("after",s.cursor);let n=await this.config.request({url:r.toString(),headers:v(this.config,e)}),o=!!n.body.next,a=null;return n.body.next&&(a=new URL(n.body.next).searchParams.get("after")),{pageInfo:{hasNextPage:o,endCursor:a},data:n.body.values.map(nt)}}async getBranches(s,e={}){var a;let r=new URL(`${E}/repositories/${s.repo.namespace}/${s.repo.name}/refs/branches`);r.searchParams.set("page",((a=s.page)==null?void 0:a.toString())||"1"),r.searchParams.set("pagelen",D.toString());let n=await this.config.request({url:r.toString(),headers:v(this.config,e)}),o=!!n.body.next;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.page+1:null},data:n.body.values.map(i=>{let u=new Date(i.target.date);return{name:i.name,commit:{oid:i.target.hash,authoredDate:u,committedDate:u}}})}}async getTags(s,e={}){let r=new URL(`${E}/repositories/${s.repo.namespace}/${s.repo.name}/refs/tags`);r.searchParams.set("pagelen",D.toString()),s.cursor&&r.searchParams.set("page",s.cursor);let n=await this.config.request({url:r.toString(),headers:v(this.config,e)}),o=!!n.body.next,a=null;return n.body.next&&(a=new URL(n.body.next).searchParams.get("page")),{pageInfo:{hasNextPage:o,endCursor:a},data:n.body.values.map(i=>{let u=new Date(i.target.date);return{name:i.name,commit:{oid:i.target.hash,authoredDate:u,committedDate:u}}})}}async getPullRequestsForUser(s,e={}){var a;let r=new URL(`${E}/pullrequests/${s.userId}`);r.searchParams.set("page",((a=s.page)==null?void 0:a.toString())||"1"),r.searchParams.set("pagelen","50");let n=await this.config.request({url:r.toString(),headers:v(this.config,e)}),o=!!n.body.next;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.page+1:null},data:n.body.values.map(Ce)}}async getPullRequestsForRepoBase(s,e={}){var n;let r=new URL(`${E}/repositories/${encodeURI(s.repo.namespace)}/${encodeURI(s.repo.name)}/pullrequests?state=OPEN`);return r.searchParams.set("page",((n=s.page)==null?void 0:n.toString())||"1"),r.searchParams.set("pagelen","50"),await this.config.request({url:r.toString(),headers:v(this.config,e)})}async getPullRequestsForRepo(s,e={}){let r=[],n=await this.getPullRequestsForRepoBase(s,e);n.body.values.forEach(a=>{if(s.authorLogin&&a.author.uuid!==s.authorLogin)return null;r.push(Ce(a))});let o=!!n.body.next;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.page+1:null},data:r}}async getPullRequestsForRepos(s,e={}){let r=[];return await Promise.all(s.repos.map(async n=>{try{(await this.getPullRequestsForRepoBase({repo:n,...s},e)).body.values.forEach(a=>{if(s.authorLogin&&a.author.uuid!==s.authorLogin)return null;r.push(Ce(a))})}catch(o){if(o.statusCode!==404&&o.statusCode!==401)throw o}})),{data:r}}async closePullRequest(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:o}=s;if(!(await this.config.request({method:"POST",url:`${E}/repositories/${r}/${n}/pullrequests/${o}/decline`,headers:v(this.config,e)})).body.title)throw new Error("Could not close pull request")}async mergePullRequest(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:o,mergeStrategy:a}=s,i;switch(a){case"MERGE_COMMIT":{i="merge_commit";break}case"FAST_FORWARD":{i="fast_forward";break}case"SQUASH":{i="squash";break}}let u={merge_strategy:i,type:"pullrequest"};if(!(await this.config.request({method:"POST",url:`${E}/repositories/${r}/${n}/pullrequests/${o}/merge`,body:JSON.stringify(u),headers:{...v(this.config,e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not merge pull request")}async setPullRequestReviewers(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:o,reviewerUsernames:a}=s,i={reviewers:a.map(l=>({username:l}))};if(!(await this.config.request({method:"PUT",url:`${E}/repositories/${r}/${n}/pullrequests/${o}`,body:JSON.stringify(i),headers:{...v(this.config,e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not set pull request reviewers")}};var ot=t=>({name:t.displayName,email:t.emailAddress,avatarUrl:null,id:t.id.toString(),username:t.name,url:t.links.self[0].href}),ve=t=>{var u,l,p,d,c,g;let s={OPEN:"OPEN",MERGED:"MERGED",DECLINED:"CLOSED"},e={UNAPPROVED:"REVIEW_REQUESTED",NEEDS_WORK:"CHANGES_REQUESTED",APPROVED:"APPROVED"},r=t.reviewers.map(m=>({reviewer:ot(m.user),state:e[m.status]})),n=((u=t.toRef.repository.links.clone.find(m=>m.name==="ssh"))==null?void 0:u.href)??null,o=((l=t.toRef.repository.links.clone.find(m=>m.name==="https"))==null?void 0:l.href)??null;o||(o=((p=t.toRef.repository.links.clone.find(m=>m.name==="http"))==null?void 0:p.href)??null);let a=((d=t.fromRef.repository.links.clone.find(m=>m.name==="ssh"))==null?void 0:d.href)??null,i=((c=t.fromRef.repository.links.clone.find(m=>m.name==="https"))==null?void 0:c.href)??null;return i||(i=((g=t.fromRef.repository.links.clone.find(m=>m.name==="http"))==null?void 0:g.href)??null),{id:t.id.toString(),number:t.id,title:t.title,url:t.links.self[0].href,state:s[t.state],isDraft:!1,createdDate:new Date(t.createdDate),updatedDate:new Date(t.updatedDate),closedDate:t.closedDate?new Date(t.closedDate):null,mergedDate:t.state=="MERGED"&&t.closedDate?new Date(t.closedDate):null,baseRef:{name:t.toRef.displayId,oid:t.toRef.latestCommit},headRef:{name:t.fromRef.displayId,oid:t.fromRef.latestCommit},commentCount:t.properties.commentCount,upvoteCount:null,commitCount:null,fileCount:null,additions:null,deletions:null,author:ot(t.author.user),assignees:null,reviews:r,reviewDecision:_(r),repository:{id:t.toRef.repository.id.toString(),name:t.toRef.repository.name,owner:{login:t.toRef.repository.project.name},remoteInfo:o&&n?{cloneUrlHTTPS:o,cloneUrlSSH:n}:null},headRepository:{id:t.fromRef.repository.id.toString(),name:t.fromRef.repository.name,owner:{login:t.fromRef.repository.project.name},remoteInfo:i&&a?{cloneUrlHTTPS:i,cloneUrlSSH:a}:null},headCommit:null,mergeableState:"UNKNOWN"}},H=class extends L{getBaseUrl(s){let e=s.baseUrl||this.config.baseUrl;if(!e)throw new Error('Bitbucket Server requires "baseUrl"');return e}getRequestHeaders(s){return R(s.token||this.config.token)}async getRepo(s,e={}){var n,o,a;let r=await this.config.request({url:`${this.getBaseUrl(e)}/projects/${s.namespace}/repos/${s.name}`,headers:this.getRequestHeaders(e)});return{data:{id:r.body.id.toString(),namespace:r.body.project.key,name:r.body.slug,webUrl:((n=r.body.links.self[0])==null?void 0:n.href)??null,httpsUrl:((o=r.body.links.clone.find(i=>i.name==="https"))==null?void 0:o.href)??null,sshUrl:((a=r.body.links.clone.find(i=>i.name==="ssh"))==null?void 0:a.href)??null,defaultBranch:null,permission:null}}}async getRepos(s,e={}){let r=[],n=[];return await Promise.all(s.map(async o=>{try{let a=await this.getRepo(o,e);r.push(a.data)}catch(a){n.push({input:o,error:a})}})),{data:r,errors:n}}async getPullRequestsForRepoBase(s,e={}){var n;let r=new URL(`${this.getBaseUrl(e)}/projects/${encodeURI(s.repo.namespace)}/repos/${encodeURI(s.repo.name)}/pull-requests?state=OPEN`);return r.searchParams.set("start",((n=s.page)==null?void 0:n.toString())||"0"),r.searchParams.set("limit","50"),await this.config.request({url:r.toString(),headers:this.getRequestHeaders(e)})}async getPullRequestsForRepo(s,e={}){let r=[],n=await this.getPullRequestsForRepoBase(s,e);n.body.values.forEach(a=>{if(s.authorLogin&&a.author.user.name!==s.authorLogin)return null;r.push(ve(a))});let o=n.body.values.length!==0;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.start+n.body.values.length:null},data:r}}async getPullRequestsForRepos(s,e={}){let r=[];return await Promise.all(s.repos.map(async n=>{try{(await this.getPullRequestsForRepoBase({repo:n,...s},e)).body.values.forEach(a=>{if(s.authorLogin&&a.author.user.name!==s.authorLogin)return null;r.push(ve(a))})}catch(o){if(o.statusCode!==404&&o.statusCode!==401)throw o}})),{data:r}}async getPullRequestsForCurrentUser(s,e={}){var a;let r=new URL(`${this.getBaseUrl(e)}/dashboard/pull-requests`);r.searchParams.set("state","OPEN"),r.searchParams.set("page",((a=s.page)==null?void 0:a.toString())||"0"),r.searchParams.set("pagelen","50");let n=await this.config.request({url:r.toString(),headers:this.getRequestHeaders(e)}),o=n.body.values.length!==0;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.start+n.body.values.length:null},data:n.body.values.map(ve)}}async closePullRequest(s,e){let{repo:{namespace:r,name:n},pullRequestId:o,version:a}=s;if(!(await this.config.request({method:"POST",url:`${this.getBaseUrl(e)}/projects/${r}/repos/${n}/pull-requests/${o}/decline`,body:JSON.stringify({version:a}),headers:{...this.getRequestHeaders(e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not close pull request")}async mergePullRequest(s,e){let{repo:{namespace:r,name:n},pullRequestId:o,mergeStrategyId:a,version:i}=s;if(!(await this.config.request({method:"POST",url:`${this.getBaseUrl(e)}/projects/${r}/repos/${n}/pull-requests/${o}/merge`,body:JSON.stringify({strategyId:a,version:i}),headers:{...this.getRequestHeaders(e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not merge pull request")}async getMergeStrategies(s){let e=await this.config.request({url:`${this.getBaseUrl(s)}/admin/pull-requests/git`,headers:{...this.getRequestHeaders(s),"Content-Type":"application/json"}});return{data:{defaultStrategy:e.body.mergeConfig.defaultStrategy,strategies:e.body.mergeConfig.strategies}}}async setPullRequestReviewers(s,e={}){let{repo:{namespace:r,name:n},pullRequestId:o,reviewerUsernames:a,version:i}=s,u={reviewers:a.map(p=>({user:{name:p}})),version:i};if(!(await this.config.request({method:"PUT",url:`${this.getBaseUrl(e)}/projects/${r}/repos/${n}/pull-requests/${o}`,body:JSON.stringify(u),headers:{...this.getRequestHeaders(e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not set pull request reviewers")}};var ie="https://api.github.com",Et=`${ie}/graphql`,ue=`
2
2
  description
3
3
  dueOn
4
4
  id
@@ -6,28 +6,47 @@ number
6
6
  state
7
7
  title
8
8
  url
9
- `,st=/\/api\/v\d+$/,oe=`
9
+ `,$t=`
10
+ ... on CheckRun {
11
+ completedAt
12
+ name
13
+ status
14
+ permalink
15
+ startedAt
16
+ }
17
+ `,oe=/\/api\/v\d+$/,le=`
10
18
  color
11
19
  description
12
20
  id
13
21
  name
14
- `,Ct=t=>{if(t.endsWith("/api/graphql"))throw new Error("The graphql endpoint is being used as the baseUrl. This package uses both GraphQL and REST APIs, and the REST version cannot be assumed. Use the REST endpoint as the baseUrl instead.")},Dt=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),Ct(e),st.test(e)&&(e=e.replace(st,"")),`${e}/api/graphql`):qt},I=(t,s,e)=>{let r=m(e.token||t.token);return r["X-Github-Next-Global-ID"]="1",r["Content-Type"]="application/json",t.request({url:Dt(t,e),method:"POST",headers:r,body:JSON.stringify(s)})},St={user:!0,"user:email":!0,"read:user":!0},x=t=>t.some(s=>St[s]),U=(t=!1,s=!1)=>`
22
+ `,it=t=>{if(t.endsWith("/api/graphql"))throw new Error("The graphql endpoint is being used as the baseUrl. This package uses both GraphQL and REST APIs, and the REST version cannot be assumed. Use the REST endpoint as the baseUrl instead.")},Lt=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),it(e),oe.test(e)&&(e=e.replace(oe,"")),`${e}/api/graphql`):Et},ut=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),it(e),oe.test(e)&&(e=e.replace(oe,"")),e):ie},I=(t,s,e)=>{let r=R(e.token||t.token);return r["X-Github-Next-Global-ID"]="1",r["Content-Type"]="application/json",t.request({url:Lt(t,e),method:"POST",headers:r,body:JSON.stringify(s)})},Gt={user:!0,"user:email":!0,"read:user":!0},N=t=>t.some(s=>Gt[s]),$=(t=!1,s=!1,e)=>`
15
23
  __typename
16
- id
17
- databaseId
18
- name
19
- login
20
- ${s?"email":""}
21
- avatarUrl${t?"(size: $avatarSize)":""}
22
- url
23
- `,rt=(t=!1)=>`
24
+ ${k(e,["graphQLId"],"id")}
25
+ ${k(e,["id"],"databaseId")}
26
+ ${k(e,["name"],"name")}
27
+ ${k(e,["name","username"],"login")}
28
+ ${s?k(e,["email"],"email"):""}
29
+ ${k(e,["avatarUrl"],`avatarUrl${t?"(size: $avatarSize)":""}`)}
30
+ ${k(e,["url"],"url")}
31
+ `,At=(t=!1)=>`
32
+ latestReviews(first: 100) {
33
+ nodes {
34
+ author {
35
+ ... on User {
36
+ ${$(!1,t)}
37
+ }
38
+ }
39
+ state
40
+ }
41
+ }
42
+ `,lt=(t=!1)=>`
24
43
  __typename
25
44
  id
26
45
  databaseId
27
46
  login
28
47
  avatarUrl${t?"(size: $avatarSize)":""}
29
48
  url
30
- `,$t=(t,s=!1)=>`
49
+ `,Ot=(t,s=!1,e)=>`
31
50
  id
32
51
  databaseId
33
52
  number
@@ -35,10 +54,10 @@ title
35
54
  state
36
55
  author {
37
56
  ... on User {
38
- ${U(!1,s)}
57
+ ${$(!1,s)}
39
58
  }
40
59
  ... on Bot {
41
- ${rt(!1)}
60
+ ${lt(!1)}
42
61
  }
43
62
  }
44
63
  commits(last: 1) {
@@ -51,13 +70,10 @@ commits(last: 1) {
51
70
  contexts(first: 100) {
52
71
  totalCount
53
72
  nodes {
54
- ... on CheckRun {
55
- name
56
- status
57
- permalink
58
- }
73
+ ${e?$t:""}
59
74
  ... on StatusContext {
60
75
  context
76
+ createdAt
61
77
  description
62
78
  state
63
79
  targetUrl
@@ -82,6 +98,8 @@ headRef {
82
98
  }
83
99
  }
84
100
  repository {
101
+ id
102
+ databaseId
85
103
  name
86
104
  owner {
87
105
  login
@@ -90,6 +108,8 @@ repository {
90
108
  sshUrl
91
109
  }
92
110
  headRepository {
111
+ id
112
+ databaseId
93
113
  name
94
114
  owner {
95
115
  login
@@ -111,51 +131,42 @@ closedAt
111
131
  mergedAt
112
132
  assignees(first: 100) {
113
133
  nodes {
114
- ${U(!1,s)}
134
+ ${$(!1,s)}
115
135
  }
116
136
  }
117
137
  reviewRequests(first: 100) {
118
138
  nodes {
119
- asCodeOwner
139
+ ${e?"asCodeOwner":""}
120
140
  requestedReviewer {
121
141
  ... on User {
122
- ${U(!1,s)}
142
+ ${$(!1,s)}
123
143
  }
124
144
  }
125
145
  }
126
146
  }
127
- latestReviews(first: 100) {
128
- nodes {
129
- author {
130
- ... on User {
131
- ${U(!1,s)}
132
- }
133
- }
134
- state
135
- }
136
- }
147
+ ${e?At(s):""}
137
148
  additions
138
149
  deletions
139
150
  changedFiles
140
151
  mergeable
141
152
  milestone {
142
- ${ne}
153
+ ${ue}
143
154
  }
144
155
  labels(first: 100) {
145
156
  nodes {
146
- ${oe}
157
+ ${le}
147
158
  }
148
159
  }
149
- `,Et=(t=!1)=>`
160
+ `,Tt=(t=!1)=>`
150
161
  id
151
162
  databaseId
152
163
  title
153
164
  author {
154
165
  ... on User {
155
- ${U(!1,t)}
166
+ ${$(!1,t)}
156
167
  }
157
168
  ... on Bot {
158
- ${rt(!1)}
169
+ ${lt(!1)}
159
170
  }
160
171
  }
161
172
  closedAt
@@ -177,19 +188,19 @@ comments {
177
188
  }
178
189
  assignees(first: 100) {
179
190
  nodes {
180
- ${U(!1,t)}
191
+ ${$(!1,t)}
181
192
  }
182
193
  }
183
194
  state
184
195
  milestone {
185
- ${ne}
196
+ ${ue}
186
197
  }
187
198
  labels(first: 100) {
188
199
  nodes {
189
- ${oe}
200
+ ${le}
190
201
  }
191
202
  }
192
- `,Ut={"-linked":"-linked",archived:"archived",assignee:"assignee",author:"author",base:"base",closed:"closed",commenter:"commenter",comments:"comments",created:"created",draft:"draft",head:"head",label:"label",language:"language",linked:"linked",in:"in",interactions:"interactions",involves:"involves",is:"is",mentions:"mentions",merged:"merged",milestone:"milestone",no:"no",org:"org",project:"project",reactions:"reactions",repo:"repo",review:"review","reviewed-by":"reviewed-by","review-requested":"review-requested",state:"state",status:"status",team:"team","team-review-requested":"team-review-requested",type:"type",updated:"updated",user:"user","user-review-requested":"user-review-requested"},vt=new RegExp('(([^\\s]+:)?\\"(?:[^\\"\\\\]|\\\\.)*\\"?)|([^\\"\\s]+)',"g"),De=t=>{let s=[];return(t.match(vt)??[]).forEach(r=>{if(r.includes(":")&&r!="is:closed"){let n=r.split(":")[0];Ut[n]&&s.push(r)}}),s},Se=(t,s,e,r,n=!1)=>{let a=t==="issue";return{query:`
203
+ `,xt={"-linked":"-linked",archived:"archived",assignee:"assignee",author:"author",base:"base",closed:"closed",commenter:"commenter",comments:"comments",created:"created",draft:"draft",head:"head",label:"label",language:"language",linked:"linked",in:"in",interactions:"interactions",involves:"involves",is:"is",mentions:"mentions",merged:"merged",milestone:"milestone",no:"no",org:"org",project:"project",reactions:"reactions",repo:"repo",review:"review","reviewed-by":"reviewed-by","review-requested":"review-requested",state:"state",status:"status",team:"team","team-review-requested":"team-review-requested",type:"type",updated:"updated",user:"user","user-review-requested":"user-review-requested"},kt=new RegExp('(([^\\s]+:)?\\"(?:[^\\"\\\\]|\\\\.)*\\"?)|([^\\"\\s]+)',"g"),Ue=t=>{let s=[];return(t.match(kt)??[]).forEach(r=>{if(r.includes(":")&&r!="is:closed"){let n=r.split(":")[0];xt[n]&&s.push(r)}}),s},Ee=(t,s,e,r,n=!1,o=!1)=>{let a=t==="issue";return{query:`
193
204
  query SearchIssuesOrPullRequests($query: String! $after: String) {
194
205
  search(type:ISSUE query:$query first:100 after:$after) {
195
206
  pageInfo {
@@ -198,18 +209,18 @@ query SearchIssuesOrPullRequests($query: String! $after: String) {
198
209
  }
199
210
  nodes {
200
211
  ... on ${a?"Issue":"PullRequest"} {
201
- ${a?Et(r):$t(n,r)}
212
+ ${a?Tt(r):Ot(n,r,o)}
202
213
  }
203
214
  }
204
215
  }
205
- }`,variables:{query:`is:${t} is:open ${s}`,after:e}}},Lt="Field 'isDraft' doesn't exist on type 'PullRequest'",nt=(t=[])=>t.some(s=>(s==null?void 0:s.message)===Lt),Gt=/@@ -(\d+)(?:,\d+ | )\+(\d+)(?:,\d+ | )@@(?:\\n)?/,Ot=`
216
+ }`,variables:{query:`is:${t} is:open ${s}`,after:e}}},_t="Field 'isDraft' doesn't exist on type 'PullRequest'",pt=(t=[])=>t.some(s=>(s==null?void 0:s.message)===_t),Nt=/@@ -(\d+)(?:,\d+ | )\+(\d+)(?:,\d+ | )@@(?:\\n)?/,Qt=`
206
217
  \
207
- +`,ot=(t,s,e,r)=>{let n=Gt.exec(t);if(!n||!n[0]||!n[1])return[];let a=parseInt(n[1],10),o=parseInt(n[2],10),i=t.replace(Ot,`
218
+ +`,dt=(t,s,e,r)=>{let n=Nt.exec(t);if(!n||!n[0]||!n[1])return[];let o=parseInt(n[1],10),a=parseInt(n[2],10),i=t.replace(Qt,`
208
219
  +`).split(`
209
- `).slice(1),u=a-1,l=o-1,p=i.map(g=>{let R,h;switch(g[0]){case"-":{R="DELETED",u+=1,h=`${g.slice(1)}
210
- `;break}case"+":{R="ADDED",l+=1,h=`${g.slice(1)}
211
- `;break}default:R="UNMODIFIED",l+=1,u+=1,h=`${g}
212
- `}return{line:h,oldLineNumber:R!=="ADDED"?u:null,newLineNumber:R!=="DELETED"?l:null,type:R}}),d=e,c=s;if(d!==null&&c!==null&&r!==null&&d<c){let g=0,R=p.length,h=r==="LEFT"?"oldLineNumber":"newLineNumber";for(let b=0;b<p.length;b++){let P=p[b][h];P===d?g=b:P===c&&(R=b)}p=p.slice(g,R+1)}return p};var $e=`
220
+ `).slice(1),u=o-1,l=a-1,p=i.map(g=>{let m,f;switch(g[0]){case"-":{m="DELETED",u+=1,f=`${g.slice(1)}
221
+ `;break}case"+":{m="ADDED",l+=1,f=`${g.slice(1)}
222
+ `;break}default:m="UNMODIFIED",l+=1,u+=1,f=`${g}
223
+ `}return{line:f,oldLineNumber:m!=="ADDED"?u:null,newLineNumber:m!=="DELETED"?l:null,type:m}}),d=e,c=s;if(d!==null&&c!==null&&r!==null&&d<c){let g=0,m=p.length,f=r==="LEFT"?"oldLineNumber":"newLineNumber";for(let y=0;y<p.length;y++){let P=p[y][f];P===d?g=y:P===c&&(m=y)}p=p.slice(g,m+1)}return p};var $e=`
213
224
  id
214
225
  databaseId
215
226
  owner {
@@ -222,18 +233,18 @@ defaultBranchRef {
222
233
  name
223
234
  }
224
235
  viewerPermission
225
- `,Ue={__typename:"User",id:"U_kgDNJ5k",databaseId:10137,name:"Deleted user",login:"ghost",email:"",avatarUrl:"https://avatars.githubusercontent.com/u/10137?v=4",url:"https://github.com/ghost"},At={APPROVED:"APPROVED",CHANGES_REQUESTED:"CHANGES_REQUESTED",COMMENTED:"COMMENTED",REVIEW_REQUESTED:"REVIEW_REQUESTED"},Tt={MERGEABLE:"MERGEABLE",CONFLICTING:"CONFLICTS",UNKNOWN:"UNKNOWN"},xt={OPEN:"OPEN",CLOSED:"CLOSED"},ve=t=>({color:t.color,description:t.description,graphQLId:t.id,id:null,name:t.name}),Ee=t=>({id:t.databaseId.toString(),graphQLId:t.id,namespace:t.owner.login,name:t.name,webUrl:t.url,httpsUrl:t.url.endsWith(".git")?t.url:`${t.url}.git`,sshUrl:t.sshUrl,defaultBranch:t.defaultBranchRef,permission:t.viewerPermission}),kt={OPEN:"OPEN",CLOSED:"CLOSED",MERGED:"MERGED"},L=t=>({id:t.databaseId.toString(),graphQLId:t.id,name:t.name??t.login,username:t.login,email:t.email??null,avatarUrl:t.avatarUrl,url:t.url}),_t=t=>{var o,i,u,l,p,d,c,g,R,h,b;let s=null;t.author?s=(t.author.__typename==="Bot",t.author):s=Ue;let e=(((o=t.reviewRequests)==null?void 0:o.nodes)||[]).filter(f=>!f.asCodeOwner),r=(i=t.headRepository)==null?void 0:i.url;r&&!r.endsWith(".git")&&(r=`${r}.git`);let n=(u=t.repository)==null?void 0:u.url;n&&!n.endsWith(".git")&&(n=`${n}.git`);let a=e.map(f=>({reviewer:L(f.requestedReviewer),state:"REVIEW_REQUESTED"})).concat((((l=t.latestReviews)==null?void 0:l.nodes)||[]).map(f=>{let P=f.author||Ue;return{reviewer:L(P),state:At[f.state]}}));return{id:t.databaseId.toString(),graphQLId:t.id,title:t.title,number:t.number,state:kt[t.state],commentCount:t.comments.totalCount,upvoteCount:t.reactions.totalCount,author:s?L(s):null,createdDate:new Date(t.createdAt),isDraft:t.isDraft,repository:{name:t.repository.name,owner:{login:t.repository.owner.login},remoteInfo:{cloneUrlHTTPS:n,cloneUrlSSH:t.repository.sshUrl}},headRepository:t.headRepository?{name:t.headRepository.name,owner:{login:t.headRepository.owner.login},remoteInfo:{cloneUrlHTTPS:r,cloneUrlSSH:t.headRepository.sshUrl}}:null,headCommit:{buildStatuses:((c=(d=(p=t.commits.nodes)==null?void 0:p[0].commit.statusCheckRollup)==null?void 0:d.contexts.nodes)==null?void 0:c.map(f=>"context"in f?{description:f.description,name:f.context,state:f.state,stage:null,url:f.targetUrl}:{description:null,name:f.name,state:f.status,stage:null,url:f.permalink}))??[]},headRef:t.headRef?{name:t.headRef.name,oid:((g=t.headRef.target)==null?void 0:g.oid)??null}:null,baseRef:t.baseRef?{name:t.baseRef.name,oid:((R=t.baseRef.target)==null?void 0:R.oid)??null}:null,url:t.url,updatedDate:new Date(t.updatedAt),closedDate:t.closedAt?new Date(t.closedAt):null,mergedDate:t.mergedAt?new Date(t.mergedAt):null,assignees:t.assignees.nodes?t.assignees.nodes.map(L):null,reviews:a,reviewDecision:N(a),additions:t.additions,deletions:t.deletions,fileCount:t.changedFiles,commitCount:t.commits.totalCount,mergeableState:Tt[t.mergeable],milestone:t.milestone?Le(t.milestone):null,labels:((b=(h=t.labels)==null?void 0:h.nodes)==null?void 0:b.map(ve))??[]}},Nt=t=>{let{comments:s,isOutdated:e,isResolved:r,originalLine:n,originalStartLine:a,startDiffSide:o}=t,{author:i,body:u,databaseId:l,id:p,path:d,publishedAt:c,url:g}=s.nodes[0];return{author:i?{avatarUrl:i.avatarUrl,email:null,name:i.login}:null,body:u,createdAt:c?new Date(c):null,diffLines:ot(s.nodes[0].diffHunk,n,a,o),id:l,isOutdated:e,isResolved:r,graphQLId:p,filename:d,replies:s.nodes.slice(1).map(jt),url:g}},jt=t=>({author:t.author?{avatarUrl:t.author.avatarUrl,email:null,name:t.author.login}:null,body:t.body,createdAt:t.publishedAt?new Date(t.publishedAt):null,graphQLId:t.id,id:t.databaseId,url:t.url}),Qt=t=>{var e,r;let s=null;return t.author?s=(t.author.__typename==="Bot",t.author):s=Ue,{id:t.databaseId.toString(),graphQLId:t.id,number:t.number,title:t.title,author:L(s),commentCount:t.comments.totalCount,closedDate:t.closedAt?new Date(t.closedAt):null,createdDate:new Date(t.createdAt),description:null,state:{name:xt[t.state],color:null},type:null,repository:{name:t.repository.name,owner:{login:t.repository.owner.login}},url:t.url,updatedDate:new Date(t.updatedAt),assignees:t.assignees.nodes?t.assignees.nodes.map(L):[],upvoteCount:t.reactions.totalCount,milestone:t.milestone?Le(t.milestone):null,labels:((r=(e=t.labels)==null?void 0:e.nodes)==null?void 0:r.map(ve))??[]}},Le=t=>({id:t.number.toString(),graphQLId:t.id.toString(),number:t.number,title:t.title,description:t.description,isOpen:t.state=="OPEN",url:t.url,startDate:null,dueDate:t.dueOn?new Date(t.dueOn):null}),F=class extends v{constructor(){super(...arguments);this._scopesCache={}}async getScopes(e){let r=e.token||this.config.token;if(!r)return[];let n=this._scopesCache[r];if(!n){let o=(await I(this.config,{query:"query { rateLimit(dryRun: true) { __typename } }"},e)).headers["x-oauth-scopes"];n=o?o.split(", "):[],this._scopesCache[r]=n}return n}getEnterpriseAvatarUrlIfNeeded(e,r,n){let a=n.baseUrl||this.config.baseUrl;return!a||a.startsWith(Ce)?e:r?`https://avatars.githubusercontent.com/u/e?email=${encodeURIComponent(r)}`:""}async getCurrentUser(e={}){var o;let r=await this.getScopes(e),a=(o=(await I(this.config,{query:`
236
+ `,Ge={__typename:"User",id:"U_kgDNJ5k",databaseId:10137,name:"Deleted user",login:"ghost",email:"",avatarUrl:"https://avatars.githubusercontent.com/u/10137?v=4",url:"https://github.com/ghost"},jt={APPROVED:"APPROVED",CHANGES_REQUESTED:"CHANGES_REQUESTED",COMMENTED:"COMMENTED",REVIEW_REQUESTED:"REVIEW_REQUESTED"},Ft={MERGEABLE:"MERGEABLE",CONFLICTING:"CONFLICTS",UNKNOWN:"UNKNOWN"},Bt={OPEN:"OPEN",CLOSED:"CLOSED"},Ae=t=>({color:t.color,description:t.description,graphQLId:t.id,id:null,name:t.name}),Le=t=>({id:t.databaseId.toString(),graphQLId:t.id,namespace:t.owner.login,name:t.name,webUrl:t.url,httpsUrl:t.url.endsWith(".git")?t.url:`${t.url}.git`,sshUrl:t.sshUrl,defaultBranch:t.defaultBranchRef,permission:t.viewerPermission}),Mt={OPEN:"OPEN",CLOSED:"CLOSED",MERGED:"MERGED"},zt={id:!0,graphQLId:!0,name:!0,username:!0,email:!0,avatarUrl:!0,url:!0},G=(t,s=zt)=>{let e={};return s.id&&(e.id=t.databaseId.toString()),s.graphQLId&&(e.graphQLId=t.id),s.name&&(e.name=t.name??t.login),s.username&&(e.username=t.login),s.email&&(e.email=t.email??null),s.avatarUrl&&(e.avatarUrl=t.avatarUrl),s.url&&(e.url=t.url),e},Ht=t=>{var a,i,u,l,p,d,c,g,m,f,y;let s=null;t.author?s=(t.author.__typename==="Bot",t.author):s=Ge;let e=(((a=t.reviewRequests)==null?void 0:a.nodes)||[]).filter(h=>!h.asCodeOwner),r=(i=t.headRepository)==null?void 0:i.url;r&&!r.endsWith(".git")&&(r=`${r}.git`);let n=(u=t.repository)==null?void 0:u.url;n&&!n.endsWith(".git")&&(n=`${n}.git`);let o=e.filter(h=>h.requestedReviewer&&"__typename"in h.requestedReviewer).map(h=>({reviewer:G(h.requestedReviewer),state:"REVIEW_REQUESTED"})).concat((((l=t.latestReviews)==null?void 0:l.nodes)||[]).map(h=>{let P=h.author||Ge;return{reviewer:G(P),state:jt[h.state]}}));return{id:t.databaseId.toString(),graphQLId:t.id,title:t.title,number:t.number,state:Mt[t.state],commentCount:t.comments.totalCount,upvoteCount:t.reactions.totalCount,author:s?G(s):null,createdDate:new Date(t.createdAt),isDraft:t.isDraft,repository:{id:t.repository.databaseId,graphQLId:t.repository.id,name:t.repository.name,owner:{login:t.repository.owner.login},remoteInfo:{cloneUrlHTTPS:n,cloneUrlSSH:t.repository.sshUrl}},headRepository:t.headRepository?{id:t.headRepository.databaseId,graphQLId:t.headRepository.id,name:t.headRepository.name,owner:{login:t.headRepository.owner.login},remoteInfo:{cloneUrlHTTPS:r,cloneUrlSSH:t.headRepository.sshUrl}}:null,headCommit:{buildStatuses:((c=(d=(p=t.commits.nodes)==null?void 0:p[0].commit.statusCheckRollup)==null?void 0:d.contexts.nodes)==null?void 0:c.map(h=>"context"in h?{completedAt:null,description:h.description,name:h.context,state:h.state,startedAt:new Date(h.createdAt),stage:null,url:h.targetUrl}:{completedAt:h.completedAt?new Date(h.completedAt):null,description:null,name:h.name,state:h.status,startedAt:h.startedAt?new Date(h.startedAt):null,stage:null,url:h.permalink}))??[]},headRef:t.headRef?{name:t.headRef.name,oid:((g=t.headRef.target)==null?void 0:g.oid)??null}:null,baseRef:t.baseRef?{name:t.baseRef.name,oid:((m=t.baseRef.target)==null?void 0:m.oid)??null}:null,url:t.url,updatedDate:new Date(t.updatedAt),closedDate:t.closedAt?new Date(t.closedAt):null,mergedDate:t.mergedAt?new Date(t.mergedAt):null,assignees:t.assignees.nodes?t.assignees.nodes.map(h=>G(h)):null,reviews:o,reviewDecision:_(o),additions:t.additions,deletions:t.deletions,fileCount:t.changedFiles,commitCount:t.commits.totalCount,mergeableState:Ft[t.mergeable],milestone:t.milestone?Oe(t.milestone):null,labels:((y=(f=t.labels)==null?void 0:f.nodes)==null?void 0:y.map(Ae))??[]}},Wt=t=>{let{comments:s,isOutdated:e,isResolved:r,originalLine:n,originalStartLine:o,startDiffSide:a}=t,{author:i,body:u,databaseId:l,id:p,path:d,publishedAt:c,url:g}=s.nodes[0];return{author:i?{avatarUrl:i.avatarUrl,email:null,name:i.login}:null,body:u,createdAt:c?new Date(c):null,diffLines:dt(s.nodes[0].diffHunk,n,o,a),id:l,isOutdated:e,isResolved:r,graphQLId:p,filename:d,replies:s.nodes.slice(1).map(Jt),url:g}},Jt=t=>({author:t.author?{avatarUrl:t.author.avatarUrl,email:null,name:t.author.login}:null,body:t.body,createdAt:t.publishedAt?new Date(t.publishedAt):null,graphQLId:t.id,id:t.databaseId,url:t.url}),Vt=t=>{var e,r;let s=null;return t.author?s=(t.author.__typename==="Bot",t.author):s=Ge,{id:t.databaseId.toString(),graphQLId:t.id,number:t.number,title:t.title,author:G(s),commentCount:t.comments.totalCount,closedDate:t.closedAt?new Date(t.closedAt):null,createdDate:new Date(t.createdAt),description:null,state:{name:Bt[t.state],color:null},type:null,repository:{name:t.repository.name,owner:{login:t.repository.owner.login}},url:t.url,updatedDate:new Date(t.updatedAt),assignees:t.assignees.nodes?t.assignees.nodes.map(n=>G(n)):[],upvoteCount:t.reactions.totalCount,milestone:t.milestone?Oe(t.milestone):null,labels:((r=(e=t.labels)==null?void 0:e.nodes)==null?void 0:r.map(Ae))??[]}},Oe=t=>({id:t.number.toString(),graphQLId:t.id.toString(),number:t.number,title:t.title,description:t.description,isOpen:t.state=="OPEN",url:t.url,startDate:null,dueDate:t.dueOn?new Date(t.dueOn):null}),W=class extends L{constructor(){super(...arguments);this._scopesCache={};this._enterpriseVersionsCache={}}async getScopes(e){let r=e.token||this.config.token;if(!r)return[];let n=this._scopesCache[r];if(!n){let a=(await I(this.config,{query:"query { rateLimit(dryRun: true) { __typename } }"},e)).headers["x-oauth-scopes"];n=a?a.split(", "):[],this._scopesCache[r]=n}return n}async getEnterpriseVersion(e){let r=e.baseUrl||this.config.baseUrl;if(!r)return null;let n=this._enterpriseVersionsCache[r];if(!n){let o=await this.config.request({url:`${ut(this.config,e)}/api/v3/meta`,headers:R(e.token||this.config.token)});if(!o.body.installed_version)return null;n=o.body.installed_version.split(".").slice(0,3).map(a=>parseInt(a,10)),this._enterpriseVersionsCache[r]=n}return n}getEnterpriseAvatarUrlIfNeeded(e,r,n){let o=n.baseUrl||this.config.baseUrl;return!o||o.startsWith(ie)?e:r?`https://avatars.githubusercontent.com/u/e?email=${encodeURIComponent(r)}`:""}async getCurrentUser(e={},r={}){var u;if(e.fields&&!e.fields.length)throw new Error('"fields" must contain at least one field or be omitted');let n=Ze(e.fields),o=await this.getScopes(r),i=(u=(await I(this.config,{query:`
226
237
  query getCurrentUser {
227
238
  viewer {
228
- ${U(!1,x(r))}
239
+ ${$(!1,N(o),n)}
229
240
  }
230
241
  }
231
- `},e)).body.data)==null?void 0:o.viewer;if(!a)throw new Error("Current user not found.");return{data:L(a)}}async getAccountsForRepo(e,r={}){var l,p,d,c,g,R;let n=await this.getScopes(r),{repo:{namespace:a,name:o},cursor:i}=e,u=await I(this.config,{query:`
242
+ `},r)).body.data)==null?void 0:u.viewer;if(!i)throw new Error("Current user not found.");return{data:G(i,n)}}async getAccountsForRepo(e,r={}){var l,p,d,c,g,m;let n=await this.getScopes(r),{repo:{namespace:o,name:a},cursor:i}=e,u=await I(this.config,{query:`
232
243
  query getAccountsForRepo($owner: String!, $name: String! $cursor: String, $first: Int!) {
233
244
  repository(owner: $owner, name: $name) {
234
245
  assignableUsers(first: $first, after: $cursor) {
235
246
  nodes {
236
- ${U(!1,x(n))}
247
+ ${$(!1,N(n))}
237
248
  }
238
249
  pageInfo {
239
250
  endCursor
@@ -242,7 +253,7 @@ query getAccountsForRepo($owner: String!, $name: String! $cursor: String, $first
242
253
  }
243
254
  }
244
255
  }
245
- `,variables:{owner:a,name:o,cursor:i,first:C}},r);if(!u.body.data)throw new Error(((l=u.body.errors)==null?void 0:l[0].message)||u.statusText||"Unknown error");return{pageInfo:((d=(p=u.body.data.repository)==null?void 0:p.assignableUsers)==null?void 0:d.pageInfo)??{endCursor:null,hasNextPage:!1},data:((R=(g=(c=u.body.data.repository)==null?void 0:c.assignableUsers)==null?void 0:g.nodes)==null?void 0:R.map(L))??[]}}async getUserForCommit(e,r={}){var i,u;let a=(i=(await I(this.config,{query:`
256
+ `,variables:{owner:o,name:a,cursor:i,first:D}},r);if(!u.body.data)throw new Error(((l=u.body.errors)==null?void 0:l[0].message)||u.statusText||"Unknown error");return{pageInfo:((d=(p=u.body.data.repository)==null?void 0:p.assignableUsers)==null?void 0:d.pageInfo)??{endCursor:null,hasNextPage:!1},data:((m=(g=(c=u.body.data.repository)==null?void 0:c.assignableUsers)==null?void 0:g.nodes)==null?void 0:m.map(f=>G(f)))??[]}}async getUserForCommit(e,r={}){var i,u;let o=(i=(await I(this.config,{query:`
246
257
  query getUserForCommit(
247
258
  $owner: String!
248
259
  $name: String!
@@ -261,23 +272,23 @@ query getUserForCommit(
261
272
  }
262
273
  }
263
274
  }
264
- `,variables:{owner:e.repo.namespace,name:e.repo.name,oid:e.oid,avatarSize:e.avatarSize}},r)).body.data)==null?void 0:i.repository;if(!a)throw new Error("Repository not found.");let o=(u=a.object)==null?void 0:u.author;if(!o)throw new Error("Commit not found.");return{data:{name:o.name,email:o.email,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(o.avatarUrl,o.email,r)}}}async getAccountForEmail(e,r={}){var i,u,l;let n=await this.getScopes(r),o=(l=(u=(i=(await I(this.config,{query:`
275
+ `,variables:{owner:e.repo.namespace,name:e.repo.name,oid:e.oid,avatarSize:e.avatarSize}},r)).body.data)==null?void 0:i.repository;if(!o)throw new Error("Repository not found.");let a=(u=o.object)==null?void 0:u.author;if(!a)throw new Error("Commit not found.");return{data:{name:a.name,email:a.email,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(a.avatarUrl,a.email,r)}}}async getAccountForEmail(e,r={}){var i,u,l;let n=await this.getScopes(r),a=(l=(u=(i=(await I(this.config,{query:`
265
276
  query getAccountForEmail($query: String! $avatarSize: Int) {
266
277
  search(query: $query, type: USER, first: 1) {
267
278
  nodes {
268
279
  ... on User {
269
- ${U(!0,x(n))}
280
+ ${$(!0,N(n))}
270
281
  }
271
282
  }
272
283
  }
273
284
  }
274
- `,variables:{query:`in:email ${e.email}`,avatarSize:e.avatarSize}},r)).body.data)==null?void 0:i.search)==null?void 0:u.nodes)==null?void 0:l[0];if(!o)throw new Error("User not found.");return{data:L({...o,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(o.avatarUrl,o.email,r)})}}async getAccountForUsername(e,r={}){var i;let n=await this.getScopes(r),o=(i=(await I(this.config,{query:`
285
+ `,variables:{query:`in:email ${e.email}`,avatarSize:e.avatarSize}},r)).body.data)==null?void 0:i.search)==null?void 0:u.nodes)==null?void 0:l[0];if(!a)throw new Error("User not found.");return{data:G({...a,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(a.avatarUrl,a.email,r)})}}async getAccountForUsername(e,r={}){var i;let n=await this.getScopes(r),a=(i=(await I(this.config,{query:`
275
286
  query getUserForUsername($login: String! $avatarSize: Int) {
276
287
  user(login: $login) {
277
- ${U(!0,x(n))}
288
+ ${$(!0,N(n))}
278
289
  }
279
290
  }
280
- `,variables:{login:e.username,avatarSize:e.avatarSize}},r)).body.data)==null?void 0:i.user;if(!o)throw new Error("User not found.");return{data:L({...o,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(o.avatarUrl,o.email,r)})}}async getOrgsForCurrentUser(e={},r={}){var o,i;let n=await I(this.config,{query:`
291
+ `,variables:{login:e.username,avatarSize:e.avatarSize}},r)).body.data)==null?void 0:i.user;if(!a)throw new Error("User not found.");return{data:G({...a,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(a.avatarUrl,a.email,r)})}}async getOrgsForCurrentUser(e={},r={}){var a,i;let n=await I(this.config,{query:`
281
292
  query getOrgsForCurrentUser($cursor: String, $first: Int!) {
282
293
  viewer {
283
294
  organizations(first: $first after: $cursor) {
@@ -296,22 +307,22 @@ query getOrgsForCurrentUser($cursor: String, $first: Int!) {
296
307
  }
297
308
  }
298
309
  }
299
- `,variables:{cursor:e.cursor,first:C}},r);if(!((o=n.body.data)!=null&&o.viewer.organizations))throw new Error(((i=n.body.errors)==null?void 0:i[0].message)||n.statusText||"Unknown error");let a=n.body.data.viewer.organizations.nodes||[];return{pageInfo:n.body.data.viewer.organizations.pageInfo,data:a.map(u=>({id:u.databaseId.toString(),graphQLId:u.id,username:u.login,name:u.name||null,email:u.email||null,avatarUrl:u.avatarUrl}))}}async getRepo(e,r={}){var a;let n=await I(this.config,{query:`
310
+ `,variables:{cursor:e.cursor,first:D}},r);if(!((a=n.body.data)!=null&&a.viewer.organizations))throw new Error(((i=n.body.errors)==null?void 0:i[0].message)||n.statusText||"Unknown error");let o=n.body.data.viewer.organizations.nodes||[];return{pageInfo:n.body.data.viewer.organizations.pageInfo,data:o.map(u=>({id:u.databaseId.toString(),graphQLId:u.id,username:u.login,name:u.name||null,email:u.email||null,avatarUrl:u.avatarUrl}))}}async getRepo(e,r={}){var o;let n=await I(this.config,{query:`
300
311
  query getRepo($owner: String!, $name: String!) {
301
312
  repository(owner: $owner, name: $name) {
302
313
  ${$e}
303
314
  }
304
315
  }
305
- `,variables:{owner:e.namespace,name:e.name}},r);if(!((a=n.body.data)!=null&&a.repository))throw new Error(`Repository ${e.namespace}/${e.name} not found`);return{data:Ee(n.body.data.repository)}}async getRepos(e,r={}){let n=e.map(({namespace:u,name:l},p)=>`
316
+ `,variables:{owner:e.namespace,name:e.name}},r);if(!((o=n.body.data)!=null&&o.repository))throw new Error(`Repository ${e.namespace}/${e.name} not found`);return{data:Le(n.body.data.repository)}}async getRepos(e,r={}){let n=e.map(({namespace:u,name:l},p)=>`
306
317
  getRepo_${p}: repository(owner: "${u}", name: "${l}") {
307
318
  ${$e}
308
319
  }
309
320
  `).join(`
310
- `),a=await I(this.config,{query:`
321
+ `),o=await I(this.config,{query:`
311
322
  query batchGetRepos {
312
323
  ${n}
313
324
  }
314
- `},r);if(!a.body.data)throw new Error(a.statusText||"Unknown error");let o=[],i=[];return e.forEach((u,l)=>{let p=a.body.data[`getRepo_${l}`];p?o.push(Ee(p)):i.push({input:u})}),{data:o,errors:i}}async getReposForUsernames(e,r={}){var o;if(!e.usernames.length)return{pageInfo:{endCursor:null,hasNextPage:!1},data:[]};let n=await I(this.config,{query:`
325
+ `},r);if(!o.body.data)throw new Error(o.statusText||"Unknown error");let a=[],i=[];return e.forEach((u,l)=>{let p=o.body.data[`getRepo_${l}`];p?a.push(Le(p)):i.push({input:u})}),{data:a,errors:i}}async getReposForUsernames(e,r={}){var a;if(!e.usernames.length)return{pageInfo:{endCursor:null,hasNextPage:!1},data:[]};let n=await I(this.config,{query:`
315
326
  query getReposForUsernames($query: String!, $cursor: String, $first: Int!) {
316
327
  search(query: $query, type: REPOSITORY, first: $first, after: $cursor) {
317
328
  pageInfo {
@@ -325,7 +336,7 @@ query getReposForUsernames($query: String!, $cursor: String, $first: Int!) {
325
336
  }
326
337
  }
327
338
  }
328
- `,variables:{query:`fork:true ${e.usernames.map(i=>`user:${i}`).join(" ")}`,cursor:e.cursor,first:C}},r);if(!n.body.data)throw new Error(((o=n.body.errors)==null?void 0:o[0].message)||n.statusText||"Unknown error");let a=n.body.data.search.nodes||[];return{pageInfo:n.body.data.search.pageInfo,data:a.map(Ee)}}async getReposForOwners(e,r={}){return this.getReposForUsernames({usernames:e.owners.filter(n=>n.username).map(n=>n.username),cursor:e.cursor},r)}async getRefs(e,r,n={}){var u;let o=(u=(await I(this.config,{query:`
339
+ `,variables:{query:`fork:true ${e.usernames.map(i=>`user:${i}`).join(" ")}`,cursor:e.cursor,first:D}},r);if(!n.body.data)throw new Error(((a=n.body.errors)==null?void 0:a[0].message)||n.statusText||"Unknown error");let o=n.body.data.search.nodes||[];return{pageInfo:n.body.data.search.pageInfo,data:o.map(Le)}}async getReposForOwners(e,r={}){return this.getReposForUsernames({usernames:e.owners.filter(n=>n.username).map(n=>n.username),cursor:e.cursor},r)}async getRefs(e,r,n={}){var u;let a=(u=(await I(this.config,{query:`
329
340
  query getRefs($owner: String!, $name: String!, $refPrefix: String!, $cursor: String, $first: Int!) {
330
341
  repository(owner: $owner, name: $name) {
331
342
  refs(refPrefix: $refPrefix first: $first after: $cursor) {
@@ -346,7 +357,7 @@ query getRefs($owner: String!, $name: String!, $refPrefix: String!, $cursor: Str
346
357
  }
347
358
  }
348
359
  }
349
- `,variables:{owner:r.repo.namespace,name:r.repo.name,refPrefix:e,cursor:r.cursor,first:C}},n)).body.data)==null?void 0:u.repository;if(!o)throw new Error("Repository not found.");let i=o.refs;return i?{pageInfo:i.pageInfo,data:(i.nodes||[]).map(l=>{var d;let p=(d=l.target)!=null&&d.oid?l.target:null;return{name:l.name,commit:p?{oid:p.oid,authoredDate:new Date(p.authoredDate),committedDate:new Date(p.committedDate)}:null}})}:{pageInfo:{endCursor:null,hasNextPage:!1},data:[]}}async getBranches(e,r={}){return this.getRefs("refs/heads/",e,r)}async getTags(e,r={}){return this.getRefs("refs/tags/",e,r)}async getBlame(e,r={}){var i;let a=(i=(await I(this.config,{query:`
360
+ `,variables:{owner:r.repo.namespace,name:r.repo.name,refPrefix:e,cursor:r.cursor,first:D}},n)).body.data)==null?void 0:u.repository;if(!a)throw new Error("Repository not found.");let i=a.refs;return i?{pageInfo:i.pageInfo,data:(i.nodes||[]).map(l=>{var d;let p=(d=l.target)!=null&&d.oid?l.target:null;return{name:l.name,commit:p?{oid:p.oid,authoredDate:new Date(p.authoredDate),committedDate:new Date(p.committedDate)}:null}})}:{pageInfo:{endCursor:null,hasNextPage:!1},data:[]}}async getBranches(e,r={}){return this.getRefs("refs/heads/",e,r)}async getTags(e,r={}){return this.getRefs("refs/tags/",e,r)}async getBlame(e,r={}){var i;let o=(i=(await I(this.config,{query:`
350
361
  query getBlame($owner: String!, $name: String!, $ref: String!, $path: String!) {
351
362
  repository(owner: $owner, name: $name) {
352
363
  object(expression: $ref) {
@@ -385,13 +396,13 @@ query getBlame($owner: String!, $name: String!, $ref: String!, $path: String!) {
385
396
  }
386
397
  }
387
398
  }
388
- `,variables:{owner:e.repo.namespace,name:e.repo.name,ref:e.ref,path:e.path}},r)).body.data)==null?void 0:i.repository;if(!a)throw new Error("Repository not found.");let o=a.object;if(!o||!("blame"in o))throw new Error("Ref not found.");if(o.blame.ranges.length===0)throw new Error("File not found.");return{data:{ranges:o.blame.ranges.map(u=>{var l;return{startingLine:u.startingLine,endingLine:u.endingLine,commit:{oid:u.commit.oid,parentOids:((l=u.commit.parents.nodes)==null?void 0:l.map(p=>p.oid))||[],authoredDate:new Date(u.commit.authoredDate),author:u.commit.author?{name:u.commit.author.name,email:u.commit.author.email,avatarUrl:u.commit.author.avatarUrl}:null,committedDate:new Date(u.commit.committedDate),committer:u.commit.committer?{name:u.commit.committer.name,email:u.commit.committer.email,avatarUrl:u.commit.committer.avatarUrl}:null,message:u.commit.message,fileCount:u.commit.changedFilesIfAvailable,additions:u.commit.additions,deletions:u.commit.deletions}}})}}}async searchPullRequests(e,r={}){var l,p;let n=await this.getScopes(r),a=x(n),o=d=>{let c=d&&typeof e.isDraft=="boolean"?`${e.query} draft:${e.isDraft}`:e.query;return Se("pr",c,e.cursor,a,d)},i=await I(this.config,o(!0),r);i.body.errors&&nt(i.body.errors)&&(this.config.baseUrl||r.baseUrl)&&(i=await I(this.config,o(!1),r));let{data:u}=i.body;if(!u)throw new Error(((l=i.body.errors)==null?void 0:l[0].message)||i.statusText||"Unknown error");return{pageInfo:{hasNextPage:u.search.pageInfo.hasNextPage,endCursor:u.search.pageInfo.endCursor},data:((p=u.search.nodes)==null?void 0:p.map(_t))||[]}}async searchIssues(e,r={}){var u,l;let n=await this.getScopes(r),a=x(n),o=await I(this.config,Se("issue",e.query,e.cursor,a),r),{data:i}=o.body;if(!i)throw new Error(((u=o.body.errors)==null?void 0:u[0].message)||o.statusText||"Unknown error");return{pageInfo:{hasNextPage:i.search.pageInfo.hasNextPage,endCursor:i.search.pageInfo.endCursor},data:((l=i.search.nodes)==null?void 0:l.map(Qt))||[]}}async getPullRequestsAssociatedWithUser(e,r={}){return this.searchPullRequests({query:`involves:${e.username}`,cursor:e.cursor},r)}async getPullRequestsForRepos(e,r={}){let{assigneeLogins:n,updatedBefore:a,authorLogin:o,repos:i,reviewRequestedLogin:u,startQuery:l,mentionLogin:p}=e,d=De(l||"");return i.forEach(c=>{d.push(`repo:${c.namespace}/${c.name}`)}),n&&n.forEach(c=>{d.push(`assignee:${c}`)}),a&&d.push(`updated:<${a}`),o&&d.push(`author:${o}`),u&&d.push(`review-requested:${u}`),p&&d.push(`mentions:${p}`),this.searchPullRequests({query:`sort:updated ${d.join(" ")}`,isDraft:e.isDraft,cursor:e.cursor},r)}async closePullRequest(e,r={}){var i,u,l;let{pullRequestGraphQLId:n}=e,a=`mutation ClosePullRequest($pullRequestGraphQLId: ID!) {
399
+ `,variables:{owner:e.repo.namespace,name:e.repo.name,ref:e.ref,path:e.path}},r)).body.data)==null?void 0:i.repository;if(!o)throw new Error("Repository not found.");let a=o.object;if(!a||!("blame"in a))throw new Error("Ref not found.");if(a.blame.ranges.length===0)throw new Error("File not found.");return{data:{ranges:a.blame.ranges.map(u=>{var l;return{startingLine:u.startingLine,endingLine:u.endingLine,commit:{oid:u.commit.oid,parentOids:((l=u.commit.parents.nodes)==null?void 0:l.map(p=>p.oid))||[],authoredDate:new Date(u.commit.authoredDate),author:u.commit.author?{name:u.commit.author.name,email:u.commit.author.email,avatarUrl:u.commit.author.avatarUrl}:null,committedDate:new Date(u.commit.committedDate),committer:u.commit.committer?{name:u.commit.committer.name,email:u.commit.committer.email,avatarUrl:u.commit.committer.avatarUrl}:null,message:u.commit.message,fileCount:u.commit.changedFilesIfAvailable,additions:u.commit.additions,deletions:u.commit.deletions}}})}}}async searchPullRequests(e,r={}){var d,c;let n=await this.getEnterpriseVersion(r),o=await this.getScopes(r),a=N(o),i=n?n[0]>=3:!0,u=g=>{let m=g&&typeof e.isDraft=="boolean"?`${e.query} draft:${e.isDraft}`:e.query;return Ee("pr",m,e.cursor,a,g,i)},l=await I(this.config,u(!0),r);l.body.errors&&pt(l.body.errors)&&(this.config.baseUrl||r.baseUrl)&&(l=await I(this.config,u(!1),r));let{data:p}=l.body;if(!p)throw new Error(((d=l.body.errors)==null?void 0:d[0].message)||l.statusText||"Unknown error");return{pageInfo:{hasNextPage:p.search.pageInfo.hasNextPage,endCursor:p.search.pageInfo.endCursor},data:((c=p.search.nodes)==null?void 0:c.map(Ht))||[]}}async searchIssues(e,r={}){var u,l;let n=await this.getScopes(r),o=N(n),a=await I(this.config,Ee("issue",e.query,e.cursor,o),r),{data:i}=a.body;if(!i)throw new Error(((u=a.body.errors)==null?void 0:u[0].message)||a.statusText||"Unknown error");return{pageInfo:{hasNextPage:i.search.pageInfo.hasNextPage,endCursor:i.search.pageInfo.endCursor},data:((l=i.search.nodes)==null?void 0:l.map(Vt))||[]}}async getPullRequestsAssociatedWithUser(e,r={}){return this.searchPullRequests({query:`involves:${e.username}`,cursor:e.cursor},r)}async getPullRequestsForRepos(e,r={}){let{assigneeLogins:n,updatedBefore:o,authorLogin:a,repos:i,reviewRequestedLogin:u,startQuery:l,mentionLogin:p}=e,d=Ue(l||"");return i.forEach(c=>{d.push(`repo:${c.namespace}/${c.name}`)}),n&&n.forEach(c=>{d.push(`assignee:${c}`)}),o&&d.push(`updated:<${o}`),a&&d.push(`author:${a}`),u&&d.push(`review-requested:${u}`),p&&d.push(`mentions:${p}`),this.searchPullRequests({query:`sort:updated ${d.join(" ")}`,isDraft:e.isDraft,cursor:e.cursor},r)}async closePullRequest(e,r={}){var i,u,l;let{pullRequestGraphQLId:n}=e,o=`mutation ClosePullRequest($pullRequestGraphQLId: ID!) {
389
400
  closePullRequest(input: { pullRequestId: $pullRequestGraphQLId }) {
390
401
  pullRequest {
391
402
  id
392
403
  }
393
404
  }
394
- }`;if(!((l=(u=(i=(await I(this.config,{query:`${a}`,variables:{pullRequestGraphQLId:n}},r)).body.data)==null?void 0:i.closePullRequest)==null?void 0:u.pullRequest)!=null&&l.id))throw new Error("Could not close pull request")}async mergePullRequest(e,r={}){var p,d,c;let{pullRequestGraphQLId:n,expectedSourceSha:a,mergeStrategy:o}=e,i;switch(o){case"MERGE_COMMIT":{i="MERGE";break}case"REBASE":{i="REBASE";break}case"SQUASH":{i="SQUASH";break}}let u=`mutation MergePullRequest(
405
+ }`;if(!((l=(u=(i=(await I(this.config,{query:`${o}`,variables:{pullRequestGraphQLId:n}},r)).body.data)==null?void 0:i.closePullRequest)==null?void 0:u.pullRequest)!=null&&l.id))throw new Error("Could not close pull request")}async mergePullRequest(e,r={}){var p,d,c;let{pullRequestGraphQLId:n,expectedSourceSha:o,mergeStrategy:a}=e,i;switch(a){case"MERGE_COMMIT":{i="MERGE";break}case"REBASE":{i="REBASE";break}case"SQUASH":{i="SQUASH";break}}let u=`mutation MergePullRequest(
395
406
  $pullRequestGraphQLId: ID!,
396
407
  $expectedSourceSha: GitObjectID!,
397
408
  $mergeStrategy: PullRequestMergeMethod,
@@ -405,37 +416,37 @@ query getBlame($owner: String!, $name: String!, $ref: String!, $path: String!) {
405
416
  id
406
417
  }
407
418
  }
408
- }`;if(!((c=(d=(p=(await I(this.config,{query:`${u}`,variables:{pullRequestGraphQLId:n,expectedSourceSha:a,mergeStrategy:i}},r)).body.data)==null?void 0:p.mergePullRequest)==null?void 0:d.pullRequest)!=null&&c.id))throw new Error("Could not merge pull request")}async setPullRequestMilestone(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,milestoneGraphQLId:a}=e,o=`mutation SetPullRequestMilestone($pullRequestGraphQLId: ID!, $milestoneGraphQLId: ID) {
419
+ }`;if(!((c=(d=(p=(await I(this.config,{query:`${u}`,variables:{pullRequestGraphQLId:n,expectedSourceSha:o,mergeStrategy:i}},r)).body.data)==null?void 0:p.mergePullRequest)==null?void 0:d.pullRequest)!=null&&c.id))throw new Error("Could not merge pull request")}async setPullRequestMilestone(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,milestoneGraphQLId:o}=e,a=`mutation SetPullRequestMilestone($pullRequestGraphQLId: ID!, $milestoneGraphQLId: ID) {
409
420
  updatePullRequest(input: { pullRequestId: $pullRequestGraphQLId, milestoneId: $milestoneGraphQLId }) {
410
421
  pullRequest {
411
422
  id
412
423
  }
413
424
  }
414
- }`;if(!((p=(l=(u=(await I(this.config,{query:`${o}`,variables:{pullRequestGraphQLId:n,milestoneGraphQLId:a}},r)).body.data)==null?void 0:u.updatePullRequest)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set milestone of pull request")}async markPullRequestReadyForReview(e,r){var o,i,u;let n=`mutation MarkReadyToReview($pullRequestGraphQLId: ID!) {
425
+ }`;if(!((p=(l=(u=(await I(this.config,{query:`${a}`,variables:{pullRequestGraphQLId:n,milestoneGraphQLId:o}},r)).body.data)==null?void 0:u.updatePullRequest)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set milestone of pull request")}async markPullRequestReadyForReview(e,r){var a,i,u;let n=`mutation MarkReadyToReview($pullRequestGraphQLId: ID!) {
415
426
  markPullRequestReadyForReview(input: { pullRequestId: $pullRequestGraphQLId }) {
416
427
  pullRequest {
417
428
  id
418
429
  }
419
430
  }
420
- }`;if(!((u=(i=(o=(await I(this.config,{query:n,variables:{pullRequestGraphQLId:e}},r)).body.data)==null?void 0:o.markPullRequestReadyForReview)==null?void 0:i.pullRequest)!=null&&u.id))throw new Error("Could not mark pull request ready to review")}async convertPullRequestToDraft(e,r){var o,i,u;let n=`mutation ConvertToDraft($pullRequestGraphQLId: ID!) {
431
+ }`;if(!((u=(i=(a=(await I(this.config,{query:n,variables:{pullRequestGraphQLId:e}},r)).body.data)==null?void 0:a.markPullRequestReadyForReview)==null?void 0:i.pullRequest)!=null&&u.id))throw new Error("Could not mark pull request ready to review")}async convertPullRequestToDraft(e,r){var a,i,u;let n=`mutation ConvertToDraft($pullRequestGraphQLId: ID!) {
421
432
  convertPullRequestToDraft(input: { pullRequestId: $pullRequestGraphQLId }) {
422
433
  pullRequest {
423
434
  id
424
435
  }
425
436
  }
426
- }`;if(!((u=(i=(o=(await I(this.config,{query:n,variables:{pullRequestGraphQLId:e}},r)).body.data)==null?void 0:o.convertPullRequestToDraft)==null?void 0:i.pullRequest)!=null&&u.id))throw new Error("Could not convert pull request to draft")}async setPullRequestAsDraft(e,r={}){let{pullRequestGraphQLId:n,isDraft:a}=e;if(a){await this.convertPullRequestToDraft(n,r);return}await this.markPullRequestReadyForReview(n,r)}async setPullRequestReviewers(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,reviewerGraphQLIds:a}=e,o=`mutation SetPullRequestReviewers($pullRequestGraphQLId: ID!, $reviewerGraphQLIds: [ID!]!) {
437
+ }`;if(!((u=(i=(a=(await I(this.config,{query:n,variables:{pullRequestGraphQLId:e}},r)).body.data)==null?void 0:a.convertPullRequestToDraft)==null?void 0:i.pullRequest)!=null&&u.id))throw new Error("Could not convert pull request to draft")}async setPullRequestAsDraft(e,r={}){let{pullRequestGraphQLId:n,isDraft:o}=e;if(o){await this.convertPullRequestToDraft(n,r);return}await this.markPullRequestReadyForReview(n,r)}async setPullRequestReviewers(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,reviewerGraphQLIds:o}=e,a=`mutation SetPullRequestReviewers($pullRequestGraphQLId: ID!, $reviewerGraphQLIds: [ID!]!) {
427
438
  requestReviews(input: { pullRequestId: $pullRequestGraphQLId, userIds: $reviewerGraphQLIds }) {
428
439
  pullRequest {
429
440
  id
430
441
  }
431
442
  }
432
- }`;if(!((p=(l=(u=(await I(this.config,{query:o,variables:{pullRequestGraphQLId:n,reviewerGraphQLIds:a}},r)).body.data)==null?void 0:u.requestReviews)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set pull request reviewers")}async setPullRequestAssignees(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,assigneeGraphQLIds:a}=e,o=`mutation SetPullRequestAssignees($pullRequestGraphQLId: ID!, $assigneeGraphQLIds: [ID!]!) {
443
+ }`;if(!((p=(l=(u=(await I(this.config,{query:a,variables:{pullRequestGraphQLId:n,reviewerGraphQLIds:o}},r)).body.data)==null?void 0:u.requestReviews)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set pull request reviewers")}async setPullRequestAssignees(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,assigneeGraphQLIds:o}=e,a=`mutation SetPullRequestAssignees($pullRequestGraphQLId: ID!, $assigneeGraphQLIds: [ID!]!) {
433
444
  updatePullRequest(input: { pullRequestId: $pullRequestGraphQLId, assigneeIds: $assigneeGraphQLIds }) {
434
445
  pullRequest {
435
446
  id
436
447
  }
437
448
  }
438
- }`;if(!((p=(l=(u=(await I(this.config,{query:o,variables:{pullRequestGraphQLId:n,assigneeGraphQLIds:a}},r)).body.data)==null?void 0:u.updatePullRequest)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set pull request assignees")}async getReviewsForPullRequest(e,r={}){var d,c;let{repo:{namespace:n,name:a},pullRequestId:o}=e,i=`query getPullRequests(
449
+ }`;if(!((p=(l=(u=(await I(this.config,{query:a,variables:{pullRequestGraphQLId:n,assigneeGraphQLIds:o}},r)).body.data)==null?void 0:u.updatePullRequest)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set pull request assignees")}async getReviewsForPullRequest(e,r={}){var d,c;let{repo:{namespace:n,name:o},pullRequestId:a}=e,i=`query getPullRequests(
439
450
  $namespace: String!
440
451
  $name: String!
441
452
  $pullRequestId: Int!
@@ -487,54 +498,54 @@ query getBlame($owner: String!, $name: String!, $ref: String!, $path: String!) {
487
498
  }
488
499
  }
489
500
  }
490
- }`,u=await I(this.config,{query:i,variables:{namespace:n,name:a,pullRequestId:o}},r),l=((d=u.body.data)==null?void 0:d.repository.pullRequest.reviewThreads.nodes.reduce((g,R)=>{let h=R.comments.nodes[0].pullRequestReview;return h&&(g[h.id]||(g[h.id]=[]),g[h.id].push(Nt(R))),g},{}))??{};return{data:((c=u.body.data)==null?void 0:c.repository.pullRequest.reviews.nodes.filter(g=>l[g.id]).map(g=>({author:g.author?{avatarUrl:g.author.avatarUrl,email:null,name:g.author.login}:null,body:g.body,createdAt:g.publishedAt?new Date(g.publishedAt):null,id:g.databaseId,graphQLId:g.id,reviewComments:l[g.id],url:g.url})))??[]}}async getIssuesAssociatedWithUser(e,r={}){var d;let[n,a]=((d=e.cursor)==null?void 0:d.split(";"))||[void 0,void 0],[o,i]=await Promise.all([n==="null"?null:this.searchIssues({query:`author:${e.username}`,cursor:n},r),a==="null"?null:this.searchIssues({query:`assignee:${e.username}`,cursor:a},r)]),u={},l=[],p=c=>{u[c.id]||(u[c.id]=!0,l.push(c))};return o==null||o.data.forEach(p),i==null||i.data.forEach(p),{pageInfo:{hasNextPage:(o==null?void 0:o.pageInfo.hasNextPage)||(i==null?void 0:i.pageInfo.hasNextPage)||!1,endCursor:`${(o==null?void 0:o.pageInfo.hasNextPage)&&(o==null?void 0:o.pageInfo.endCursor)||"null"};${(i==null?void 0:i.pageInfo.hasNextPage)&&(i==null?void 0:i.pageInfo.endCursor)||"null"}`},data:l}}async setPullRequestLabels(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,labelGraphQLIds:a}=e,o=`mutation SetPullRequestLabels($pullRequestGraphQLId: ID!, $labelGraphQLIds: [ID!]) {
501
+ }`,u=await I(this.config,{query:i,variables:{namespace:n,name:o,pullRequestId:a}},r),l=((d=u.body.data)==null?void 0:d.repository.pullRequest.reviewThreads.nodes.reduce((g,m)=>{let f=m.comments.nodes[0].pullRequestReview;return f&&(g[f.id]||(g[f.id]=[]),g[f.id].push(Wt(m))),g},{}))??{};return{data:((c=u.body.data)==null?void 0:c.repository.pullRequest.reviews.nodes.filter(g=>l[g.id]).map(g=>({author:g.author?{avatarUrl:g.author.avatarUrl,email:null,name:g.author.login}:null,body:g.body,createdAt:g.publishedAt?new Date(g.publishedAt):null,id:g.databaseId,graphQLId:g.id,reviewComments:l[g.id],url:g.url})))??[]}}async getIssuesAssociatedWithUser(e,r={}){var d;let[n,o]=((d=e.cursor)==null?void 0:d.split(";"))||[void 0,void 0],[a,i]=await Promise.all([n==="null"?null:this.searchIssues({query:`author:${e.username}`,cursor:n},r),o==="null"?null:this.searchIssues({query:`assignee:${e.username}`,cursor:o},r)]),u={},l=[],p=c=>{u[c.id]||(u[c.id]=!0,l.push(c))};return a==null||a.data.forEach(p),i==null||i.data.forEach(p),{pageInfo:{hasNextPage:(a==null?void 0:a.pageInfo.hasNextPage)||(i==null?void 0:i.pageInfo.hasNextPage)||!1,endCursor:`${(a==null?void 0:a.pageInfo.hasNextPage)&&(a==null?void 0:a.pageInfo.endCursor)||"null"};${(i==null?void 0:i.pageInfo.hasNextPage)&&(i==null?void 0:i.pageInfo.endCursor)||"null"}`},data:l}}async setPullRequestLabels(e,r={}){var u,l,p;let{pullRequestGraphQLId:n,labelGraphQLIds:o}=e,a=`mutation SetPullRequestLabels($pullRequestGraphQLId: ID!, $labelGraphQLIds: [ID!]) {
491
502
  updatePullRequest(input: { pullRequestId: $pullRequestGraphQLId, labelIds: $labelGraphQLIds }) {
492
503
  pullRequest {
493
504
  id
494
505
  }
495
506
  }
496
- }`;if(!((p=(l=(u=(await I(this.config,{query:o,variables:{pullRequestGraphQLId:n,labelGraphQLIds:a}},r)).body.data)==null?void 0:u.updatePullRequest)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set pull request labels")}async getIssuesForRepos(e,r={}){let n=De(e.startQuery||""),{cursor:a,assigneeLogins:o,updatedBefore:i,authorLogin:u,mentionLogin:l}=e;return e.repos.forEach(p=>{n.push(`repo:${p.namespace}/${p.name}`)}),o&&o.forEach(p=>{n.push(`assignee:${p}`)}),i&&n.push(`updated:<${i}`),u&&n.push(`author:${u}`),l&&n.push(`mentions:${l}`),this.searchIssues({query:`sort:updated ${n.join(" ")}`,cursor:a},r)}async closeIssueWithReason(e,r,n){var i,u,l;let a=`mutation CloseIssueWithReason($issueGraphQLId: ID!, $closeReason: IssueClosedStateReason!) {
507
+ }`;if(!((p=(l=(u=(await I(this.config,{query:a,variables:{pullRequestGraphQLId:n,labelGraphQLIds:o}},r)).body.data)==null?void 0:u.updatePullRequest)==null?void 0:l.pullRequest)!=null&&p.id))throw new Error("Could not set pull request labels")}async getIssuesForRepos(e,r={}){let n=Ue(e.startQuery||""),{cursor:o,assigneeLogins:a,updatedBefore:i,authorLogin:u,mentionLogin:l}=e;return e.repos.forEach(p=>{n.push(`repo:${p.namespace}/${p.name}`)}),a&&a.forEach(p=>{n.push(`assignee:${p}`)}),i&&n.push(`updated:<${i}`),u&&n.push(`author:${u}`),l&&n.push(`mentions:${l}`),this.searchIssues({query:`sort:updated ${n.join(" ")}`,cursor:o},r)}async closeIssueWithReason(e,r,n){var i,u,l;let o=`mutation CloseIssueWithReason($issueGraphQLId: ID!, $closeReason: IssueClosedStateReason!) {
497
508
  closeIssue(input: { issueId: $issueGraphQLId, stateReason: $closeReason }) {
498
509
  issue {
499
510
  id
500
511
  }
501
512
  }
502
- }`;if(!((l=(u=(i=(await I(this.config,{query:a,variables:{issueGraphQLId:e,closeReason:r}},n)).body.data)==null?void 0:i.closeIssue)==null?void 0:u.issue)!=null&&l.id))throw new Error("Could not close issue with reason")}async closeIssueWithoutReason(e,r){var o,i,u;let n=`mutation SetIssueState($issueGraphQLId: ID!) {
513
+ }`;if(!((l=(u=(i=(await I(this.config,{query:o,variables:{issueGraphQLId:e,closeReason:r}},n)).body.data)==null?void 0:i.closeIssue)==null?void 0:u.issue)!=null&&l.id))throw new Error("Could not close issue with reason")}async closeIssueWithoutReason(e,r){var a,i,u;let n=`mutation SetIssueState($issueGraphQLId: ID!) {
503
514
  updateIssue(input: { id: $issueGraphQLId, state: CLOSED }) {
504
515
  issue {
505
516
  id
506
517
  }
507
518
  }
508
- }`;if(!((u=(i=(o=(await I(this.config,{query:n,variables:{issueGraphQLId:e}},r)).body.data)==null?void 0:o.updateIssue)==null?void 0:i.issue)!=null&&u.id))throw new Error("Could not close issue")}async reopenIssue(e,r){var o,i,u;let n=`mutation ReOpenIssue($issueGraphQLId: ID!) {
519
+ }`;if(!((u=(i=(a=(await I(this.config,{query:n,variables:{issueGraphQLId:e}},r)).body.data)==null?void 0:a.updateIssue)==null?void 0:i.issue)!=null&&u.id))throw new Error("Could not close issue")}async reopenIssue(e,r){var a,i,u;let n=`mutation ReOpenIssue($issueGraphQLId: ID!) {
509
520
  reopenIssue(input: { issueId: $issueGraphQLId }) {
510
521
  issue {
511
522
  id
512
523
  }
513
524
  }
514
- }`;if(!((u=(i=(o=(await I(this.config,{query:n,variables:{issueGraphQLId:e}},r)).body.data)==null?void 0:o.reopenIssue)==null?void 0:i.issue)!=null&&u.id))throw new Error("Could not reopen issue")}async setIssueStatus(e,r={}){let{issueGraphQLId:n,status:a,closeReason:o}=e;if(o&&a=="OPEN")throw new Error("Did not expect closeReason to be set when trying to reopen issue");a=="OPEN"?await this.reopenIssue(n,r):a=="CLOSED"&&!o?await this.closeIssueWithoutReason(n,r):o&&await this.closeIssueWithReason(n,o,r)}async setIssueLabels(e,r={}){var u,l,p;let{issueGraphQLId:n,labelGraphQLIds:a}=e,o=`mutation SetIssueLabels($issueGraphQLId: ID!, $labelGraphQLIds: [ID!]) {
525
+ }`;if(!((u=(i=(a=(await I(this.config,{query:n,variables:{issueGraphQLId:e}},r)).body.data)==null?void 0:a.reopenIssue)==null?void 0:i.issue)!=null&&u.id))throw new Error("Could not reopen issue")}async setIssueStatus(e,r={}){let{issueGraphQLId:n,status:o,closeReason:a}=e;if(a&&o=="OPEN")throw new Error("Did not expect closeReason to be set when trying to reopen issue");o=="OPEN"?await this.reopenIssue(n,r):o=="CLOSED"&&!a?await this.closeIssueWithoutReason(n,r):a&&await this.closeIssueWithReason(n,a,r)}async setIssueLabels(e,r={}){var u,l,p;let{issueGraphQLId:n,labelGraphQLIds:o}=e,a=`mutation SetIssueLabels($issueGraphQLId: ID!, $labelGraphQLIds: [ID!]) {
515
526
  updateIssue(input: { id: $issueGraphQLId, labelIds: $labelGraphQLIds }) {
516
527
  issue {
517
528
  id
518
529
  }
519
530
  }
520
- }`;if(!((p=(l=(u=(await I(this.config,{query:o,variables:{issueGraphQLId:n,labelGraphQLIds:a}},r)).body.data)==null?void 0:u.updateIssue)==null?void 0:l.issue)!=null&&p.id))throw new Error("Could not set issue labels")}async setIssueMilestone(e,r={}){var u,l,p;let{issueGraphQLId:n,milestoneGraphQLId:a}=e,o=`mutation SetIssueMilestone($issueGraphQLId: ID!, $milestoneGraphQLId: ID) {
531
+ }`;if(!((p=(l=(u=(await I(this.config,{query:a,variables:{issueGraphQLId:n,labelGraphQLIds:o}},r)).body.data)==null?void 0:u.updateIssue)==null?void 0:l.issue)!=null&&p.id))throw new Error("Could not set issue labels")}async setIssueMilestone(e,r={}){var u,l,p;let{issueGraphQLId:n,milestoneGraphQLId:o}=e,a=`mutation SetIssueMilestone($issueGraphQLId: ID!, $milestoneGraphQLId: ID) {
521
532
  updateIssue(input: { id: $issueGraphQLId, milestoneId: $milestoneGraphQLId }) {
522
533
  issue {
523
534
  id
524
535
  }
525
536
  }
526
- }`;if(!((p=(l=(u=(await I(this.config,{query:`${o}`,variables:{issueGraphQLId:n,milestoneGraphQLId:a}},r)).body.data)==null?void 0:u.updateIssue)==null?void 0:l.issue)!=null&&p.id))throw new Error("Could not set milestone of issue")}async setIssueAssignees(e,r={}){var u,l,p;let{issueGraphQLId:n,assigneeGraphQLIds:a}=e,o=`mutation SetIssueAssignees($issueGraphQLId: ID!, $assigneeGraphQLIds: [ID!]!) {
537
+ }`;if(!((p=(l=(u=(await I(this.config,{query:`${a}`,variables:{issueGraphQLId:n,milestoneGraphQLId:o}},r)).body.data)==null?void 0:u.updateIssue)==null?void 0:l.issue)!=null&&p.id))throw new Error("Could not set milestone of issue")}async setIssueAssignees(e,r={}){var u,l,p;let{issueGraphQLId:n,assigneeGraphQLIds:o}=e,a=`mutation SetIssueAssignees($issueGraphQLId: ID!, $assigneeGraphQLIds: [ID!]!) {
527
538
  updateIssue(input: { id: $issueGraphQLId, assigneeIds: $assigneeGraphQLIds }) {
528
539
  issue {
529
540
  id
530
541
  }
531
542
  }
532
- }`;if(!((p=(l=(u=(await I(this.config,{query:o,variables:{issueGraphQLId:n,assigneeGraphQLIds:a}},r)).body.data)==null?void 0:u.updateIssue)==null?void 0:l.issue)!=null&&p.id))throw new Error("Could not set issue assignees")}async getMilestonesForRepo(e,r={}){var u,l,p,d;let{repo:{namespace:n,name:a},cursor:o}=e,i=await I(this.config,{query:`
543
+ }`;if(!((p=(l=(u=(await I(this.config,{query:a,variables:{issueGraphQLId:n,assigneeGraphQLIds:o}},r)).body.data)==null?void 0:u.updateIssue)==null?void 0:l.issue)!=null&&p.id))throw new Error("Could not set issue assignees")}async getMilestonesForRepo(e,r={}){var u,l,p,d;let{repo:{namespace:n,name:o},cursor:a}=e,i=await I(this.config,{query:`
533
544
  query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first: Int!) {
534
545
  repository(owner: $owner, name: $name) {
535
546
  milestones(first: $first, after: $cursor) {
536
547
  nodes {
537
- ${ne}
548
+ ${ue}
538
549
  }
539
550
  pageInfo {
540
551
  endCursor
@@ -543,12 +554,12 @@ query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first:
543
554
  }
544
555
  }
545
556
  }
546
- `,variables:{owner:n,name:a,cursor:o,first:C}},r);if(!i.body.data)throw new Error(((u=i.body.errors)==null?void 0:u[0].message)||i.statusText||"Unknown error");return{pageInfo:((l=i.body.data.repository.milestones)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((d=(p=i.body.data.repository.milestones)==null?void 0:p.nodes)==null?void 0:d.map(Le))??[]}}async getLabelsForRepo(e,r={}){var u,l,p,d;let{repo:{namespace:n,name:a},cursor:o}=e,i=await I(this.config,{query:`
557
+ `,variables:{owner:n,name:o,cursor:a,first:D}},r);if(!i.body.data)throw new Error(((u=i.body.errors)==null?void 0:u[0].message)||i.statusText||"Unknown error");return{pageInfo:((l=i.body.data.repository.milestones)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((d=(p=i.body.data.repository.milestones)==null?void 0:p.nodes)==null?void 0:d.map(Oe))??[]}}async getLabelsForRepo(e,r={}){var u,l,p,d;let{repo:{namespace:n,name:o},cursor:a}=e,i=await I(this.config,{query:`
547
558
  query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first: Int!) {
548
559
  repository(owner: $owner, name: $name) {
549
560
  labels(first: $first, after: $cursor) {
550
561
  nodes {
551
- ${oe}
562
+ ${le}
552
563
  }
553
564
  pageInfo {
554
565
  endCursor
@@ -557,7 +568,7 @@ query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first:
557
568
  }
558
569
  }
559
570
  }
560
- `,variables:{owner:n,name:a,cursor:o,first:C}},r);if(!i.body.data)throw new Error(((u=i.body.errors)==null?void 0:u[0].message)||i.statusText||"Unknown error");return{pageInfo:((l=i.body.data.repository.labels)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((d=(p=i.body.data.repository.labels)==null?void 0:p.nodes)==null?void 0:d.map(ve))??[]}}};var Bt="https://gitlab.com/api/v4",Ft="https://gitlab.com/api/graphql",at=/\/api\/v\d+$/,it=t=>{if(t.endsWith("/api/graphql"))throw new Error("The graphql endpoint is being used as the baseUrl. This package uses both GraphQL and REST APIs, and the REST version cannot be assumed. Use the REST endpoint as the baseUrl instead.")},Ge=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),it(e),e):Bt},Mt=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),it(e),at.test(e)&&(e=e.replace(at,"")),`${e}/api/graphql`):Ft},y=(t,s,e)=>{let r=m(e.token||t.token);return t.request({url:Mt(t,e),method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify(s)})};var Ne=t=>t.split("/").slice(0,-1).join("/"),M=t=>({namespace:Ne(t.fullPath),name:t.path,webUrl:t.webUrl}),ut=t=>({httpsUrl:t.httpUrlToRepo,namespace:Ne(t.fullPath),name:t.path,sshUrl:t.sshUrlToRepo,webUrl:t.webUrl}),zt={assigned:"assignedMergeRequests",authored:"authoredMergeRequests",reviewRequested:"reviewRequestedMergeRequests"},Wt={CAN_BE_MERGED:"MERGEABLE",CANNOT_BE_MERGED:"CONFLICTS",CANNOT_BE_MERGED_RECHECK:"UNKNOWN",UNCHECKED:"UNKNOWN",CHECKING:"UNKNOWN"},Ht="gid://gitlab/User/",z="gid://gitlab/Project/",Jt="gid://gitlab/MergeRequest/",Kt="gid://gitlab/Issue/",Vt="gid://gitlab/ProjectLabel/",lt="gid://gitlab/Milestone/",Xt="gid://gitlab/Ci::Build/",je=`
571
+ `,variables:{owner:n,name:o,cursor:a,first:D}},r);if(!i.body.data)throw new Error(((u=i.body.errors)==null?void 0:u[0].message)||i.statusText||"Unknown error");return{pageInfo:((l=i.body.data.repository.labels)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((d=(p=i.body.data.repository.labels)==null?void 0:p.nodes)==null?void 0:d.map(Ae))??[]}}};var Kt="https://gitlab.com/api/v4",Xt="https://gitlab.com/api/graphql",ct=/\/api\/v\d+$/,gt=t=>{if(t.endsWith("/api/graphql"))throw new Error("The graphql endpoint is being used as the baseUrl. This package uses both GraphQL and REST APIs, and the REST version cannot be assumed. Use the REST endpoint as the baseUrl instead.")},Te=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),gt(e),e):Kt},Zt=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),gt(e),ct.test(e)&&(e=e.replace(ct,"")),`${e}/api/graphql`):Xt},b=(t,s,e)=>{let r=R(e.token||t.token);return t.request({url:Zt(t,e),method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify(s)})};var Fe=t=>t.split("/").slice(0,-1).join("/"),J=t=>({id:t.id.replace(j,""),graphQLId:t.id,namespace:Fe(t.fullPath),name:t.path,webUrl:t.webUrl}),mt=t=>({id:t.id.replace(j,""),graphQLId:t.id,httpsUrl:t.httpUrlToRepo,namespace:Fe(t.fullPath),name:t.path,sshUrl:t.sshUrlToRepo,webUrl:t.webUrl}),Yt={assigned:"assignedMergeRequests",authored:"authoredMergeRequests",reviewRequested:"reviewRequestedMergeRequests"},es={CAN_BE_MERGED:"MERGEABLE",CANNOT_BE_MERGED:"CONFLICTS",CANNOT_BE_MERGED_RECHECK:"UNKNOWN",UNCHECKED:"UNKNOWN",CHECKING:"UNKNOWN"},ts="gid://gitlab/User/",j="gid://gitlab/Project/",ss="gid://gitlab/MergeRequest/",rs="gid://gitlab/Issue/",ns="gid://gitlab/ProjectLabel/",ht="gid://gitlab/Milestone/",as="gid://gitlab/Ci::Build/",Be=`
561
572
  description
562
573
  dueDate
563
574
  id
@@ -566,7 +577,7 @@ startDate
566
577
  state
567
578
  title
568
579
  webPath
569
- `,Oe=`
580
+ `,xe=`
570
581
  id
571
582
  path
572
583
  fullPath
@@ -576,25 +587,25 @@ sshUrlToRepo
576
587
  repository {
577
588
  rootRef
578
589
  }
579
- `,G=`
590
+ `,A=`
580
591
  id
581
592
  name
582
593
  username
583
594
  publicEmail
584
595
  avatarUrl
585
596
  webUrl
586
- `,Qe=`
597
+ `,Me=`
587
598
  color
588
599
  description
589
600
  id
590
601
  title
591
- `,Ae=`
602
+ `,ke=`
592
603
  author {
593
- ${G}
604
+ ${A}
594
605
  }
595
606
  assignees {
596
607
  nodes {
597
- ${G}
608
+ ${A}
598
609
  }
599
610
  }
600
611
  closedAt
@@ -605,7 +616,7 @@ id
605
616
  iid
606
617
  labels {
607
618
  nodes {
608
- ${Qe}
619
+ ${Me}
609
620
  }
610
621
  }
611
622
  state
@@ -616,13 +627,15 @@ upvotes
616
627
  userNotesCount
617
628
  webUrl
618
629
  milestone {
619
- ${je}
630
+ ${Be}
620
631
  }
621
- `,Zt=`
632
+ `,os=`
622
633
  stages {
623
634
  nodes {
624
635
  jobs {
625
636
  nodes {
637
+ createdAt
638
+ finishedAt
626
639
  id
627
640
  name
628
641
  status
@@ -631,12 +644,12 @@ stages {
631
644
  name
632
645
  }
633
646
  }
634
- `,Te=(t,s,e)=>`
647
+ `,_e=(t,s,e)=>`
635
648
  id
636
649
  state
637
650
  approved
638
651
  author {
639
- ${G}
652
+ ${A}
640
653
  }
641
654
  diffRefs {
642
655
  baseSha
@@ -661,12 +674,12 @@ targetBranch
661
674
  sourceBranch
662
675
  assignees {
663
676
  nodes {
664
- ${G}
677
+ ${A}
665
678
  }
666
679
  }
667
680
  reviewers {
668
681
  nodes {
669
- ${G}
682
+ ${A}
670
683
  mergeRequestInteraction {
671
684
  approved
672
685
  reviewState
@@ -676,19 +689,19 @@ reviewers {
676
689
  mergeStatusEnum
677
690
  labels {
678
691
  nodes {
679
- ${Qe}
692
+ ${Me}
680
693
  }
681
694
  }
682
- ${t?"project { httpUrlToRepo path fullPath sshUrlToRepo webUrl } sourceProject { httpUrlToRepo path fullPath sshUrlToRepo webUrl }":""}
683
- ${s?`milestone { ${je} }`:""}
684
- ${e?`headPipeline { ${Zt} }`:""}
685
- `,k=t=>`${t.namespace}/${t.name}`,Yt=t=>`${t.namespace}/${t.name}`,xe=t=>{var s;return{id:t.id.replace(z,""),graphQLId:t.id,namespace:Ne(t.fullPath),name:t.path,webUrl:t.webUrl,httpsUrl:t.httpUrlToRepo,sshUrl:t.sshUrlToRepo,defaultBranch:(s=t.repository)!=null&&s.rootRef?{name:t.repository.rootRef}:null,permission:null}},es={opened:"OPEN",merged:"MERGED",closed:"CLOSED"},O=t=>({id:t.id.replace(Ht,""),graphQLId:t.id,name:t.name,username:t.username,email:t.publicEmail??null,avatarUrl:t.avatarUrl,url:t.webUrl}),Be=t=>({color:t.color,description:t.description,id:t.id.replace(Vt,""),graphQLId:t.id,name:t.title}),ke=(t,s,e)=>{var n,a,o,i,u,l,p,d,c,g,R,h;let r=(n=t.reviewers)!=null&&n.nodes?t.reviewers.nodes.map(b=>{var f,P;return{reviewer:O(b),state:(f=b.mergeRequestInteraction)!=null&&f.approved?"APPROVED":((P=b.mergeRequestInteraction)==null?void 0:P.reviewState)==="REVIEWED"?"CHANGES_REQUESTED":"CHANGES_REQUESTED"}}):null;return{id:t.id.replace(Jt,""),graphQLId:t.id,title:t.title,number:parseInt(t.iid,10),state:es[t.state],commentCount:t.userNotesCount||0,upvoteCount:t.upvotes,author:t.author?O(t.author):null,createdDate:new Date(t.createdAt),isDraft:t.draft,repository:{name:s.name,owner:{login:s.namespace},remoteInfo:s.httpsUrl&&s.sshUrl?{cloneUrlHTTPS:s.httpsUrl,cloneUrlSSH:s.sshUrl}:null},headRepository:e?{name:e.name,owner:{login:e.namespace},remoteInfo:{cloneUrlHTTPS:e.httpsUrl,cloneUrlSSH:e.sshUrl}}:null,headCommit:{buildStatuses:((i=(o=(a=t.headPipeline)==null?void 0:a.stages)==null?void 0:o.nodes)==null?void 0:i.flatMap(b=>{var f,P;return((P=(f=b.jobs)==null?void 0:f.nodes)==null?void 0:P.map(D=>({description:null,name:D.name??null,state:D.status??null,stage:b.name??null,url:`${s.webUrl}/-/jobs/${D.id.replace(Xt,"")}`})))??[]}))??[]},baseRef:{name:t.targetBranch,oid:((u=t.diffRefs)==null?void 0:u.baseSha)??null},headRef:{name:t.sourceBranch,oid:((l=t.diffRefs)==null?void 0:l.headSha)??null},url:t.webUrl,updatedDate:new Date(t.updatedAt),closedDate:t.mergedAt?new Date(t.mergedAt):null,mergedDate:t.mergedAt?new Date(t.mergedAt):null,assignees:(p=t.assignees)!=null&&p.nodes?t.assignees.nodes.map(O):null,reviews:r,reviewDecision:t.approved?"APPROVED":N(r),additions:((d=t.diffStatsSummary)==null?void 0:d.additions)||0,deletions:((c=t.diffStatsSummary)==null?void 0:c.deletions)||0,fileCount:((g=t.diffStatsSummary)==null?void 0:g.fileCount)||0,commitCount:t.commitCount||0,mergeableState:Wt[t.mergeStatusEnum],milestone:t.milestone?Fe(t.milestone,s.webUrl):null,labels:((h=(R=t.labels)==null?void 0:R.nodes)==null?void 0:h.map(Be))??[]}},_e=(t,s)=>{var e,r;return{author:O(t.author),assignees:t.assignees.nodes.map(O),commentCount:t.userNotesCount,closedDate:t.closedAt?new Date(t.closedAt):null,createdDate:new Date(t.createdAt),description:t.description,graphQLId:t.id,id:t.id.replace(Kt,""),labels:((r=(e=t.labels)==null?void 0:e.nodes)==null?void 0:r.map(Be))??[],number:t.iid,repository:{name:s.name,owner:{login:s.namespace}},updatedDate:new Date(t.updatedAt),upvoteCount:t.upvotes,state:{name:t.state,color:null},type:t.type,title:t.title,url:t.webUrl,milestone:t.milestone?Fe(t.milestone,s.webUrl):null}},Fe=(t,s)=>({id:t.id.replace(lt,""),graphQLId:t.id,number:parseInt(t.iid,10),title:t.title,description:t.description,isOpen:t.state==="active",url:`${s}/-/${t.webPath.replace(/.+?\/-\//,"")}`,startDate:t.startDate?new Date(t.startDate):null,dueDate:t.dueDate?new Date(t.dueDate):null}),W=class extends v{async getCurrentUser(s={}){var n;let r=(n=(await y(this.config,{query:`
695
+ ${t?"project { id httpUrlToRepo path fullPath sshUrlToRepo webUrl } sourceProject { id httpUrlToRepo path fullPath sshUrlToRepo webUrl }":""}
696
+ ${s?`milestone { ${Be} }`:""}
697
+ ${e?`headPipeline { ${os} }`:""}
698
+ `,Q=t=>`${t.namespace}/${t.name}`,is=t=>`${t.namespace}/${t.name}`,Ne=t=>{var s;return{id:t.id.replace(j,""),graphQLId:t.id,namespace:Fe(t.fullPath),name:t.path,webUrl:t.webUrl,httpsUrl:t.httpUrlToRepo,sshUrl:t.sshUrlToRepo,defaultBranch:(s=t.repository)!=null&&s.rootRef?{name:t.repository.rootRef}:null,permission:null}},us={opened:"OPEN",merged:"MERGED",closed:"CLOSED"},O=(t,s)=>{let e=t.avatarUrl;return!s&&(e!=null&&e.startsWith("/"))&&(e=`https://gitlab.com${e}`),{id:t.id.replace(ts,""),graphQLId:t.id,name:t.name,username:t.username,email:t.publicEmail??null,avatarUrl:e,url:t.webUrl}},ze=t=>({color:t.color,description:t.description,id:t.id.replace(ns,""),graphQLId:t.id,name:t.title}),Qe=(t,s,e,r)=>{var o,a,i,u,l,p,d,c,g,m,f,y;let n=(o=t.reviewers)!=null&&o.nodes?t.reviewers.nodes.map(h=>{var P,q;return{reviewer:O(h,r),state:(P=h.mergeRequestInteraction)!=null&&P.approved?"APPROVED":((q=h.mergeRequestInteraction)==null?void 0:q.reviewState)==="REVIEWED"?"CHANGES_REQUESTED":"CHANGES_REQUESTED"}}):null;return{id:t.id.replace(ss,""),graphQLId:t.id,title:t.title,number:parseInt(t.iid,10),state:us[t.state],commentCount:t.userNotesCount||0,upvoteCount:t.upvotes,author:t.author?O(t.author,r):null,createdDate:new Date(t.createdAt),isDraft:t.draft,repository:{id:s.id,graphQLId:s.graphQLId,name:s.name,owner:{login:s.namespace},remoteInfo:s.httpsUrl&&s.sshUrl?{cloneUrlHTTPS:s.httpsUrl,cloneUrlSSH:s.sshUrl}:null},headRepository:e?{id:e.id,graphQLId:e.graphQLId,name:e.name,owner:{login:e.namespace},remoteInfo:{cloneUrlHTTPS:e.httpsUrl,cloneUrlSSH:e.sshUrl}}:null,headCommit:{buildStatuses:((u=(i=(a=t.headPipeline)==null?void 0:a.stages)==null?void 0:i.nodes)==null?void 0:u.flatMap(h=>{var P,q;return((q=(P=h.jobs)==null?void 0:P.nodes)==null?void 0:q.map(C=>({completedAt:C.finishedAt?new Date(C.finishedAt):null,description:null,name:C.name??null,state:C.status??null,stage:h.name??null,startedAt:new Date(C.createdAt),url:`${s.webUrl}/-/jobs/${C.id.replace(as,"")}`})))??[]}))??[]},baseRef:{name:t.targetBranch,oid:((l=t.diffRefs)==null?void 0:l.baseSha)??null},headRef:{name:t.sourceBranch,oid:((p=t.diffRefs)==null?void 0:p.headSha)??null},url:t.webUrl,updatedDate:new Date(t.updatedAt),closedDate:t.mergedAt?new Date(t.mergedAt):null,mergedDate:t.mergedAt?new Date(t.mergedAt):null,assignees:(d=t.assignees)!=null&&d.nodes?t.assignees.nodes.map(h=>O(h,r)):null,reviews:n,reviewDecision:t.approved?"APPROVED":_(n),additions:((c=t.diffStatsSummary)==null?void 0:c.additions)||0,deletions:((g=t.diffStatsSummary)==null?void 0:g.deletions)||0,fileCount:((m=t.diffStatsSummary)==null?void 0:m.fileCount)||0,commitCount:t.commitCount||0,mergeableState:es[t.mergeStatusEnum],milestone:t.milestone?He(t.milestone,s.webUrl):null,labels:((y=(f=t.labels)==null?void 0:f.nodes)==null?void 0:y.map(ze))??[]}},je=(t,s,e)=>{var r,n;return{author:O(t.author,e),assignees:t.assignees.nodes.map(o=>O(o,e)),commentCount:t.userNotesCount,closedDate:t.closedAt?new Date(t.closedAt):null,createdDate:new Date(t.createdAt),description:t.description,graphQLId:t.id,id:t.id.replace(rs,""),labels:((n=(r=t.labels)==null?void 0:r.nodes)==null?void 0:n.map(ze))??[],number:t.iid,repository:{name:s.name,owner:{login:s.namespace}},updatedDate:new Date(t.updatedAt),upvoteCount:t.upvotes,state:{name:t.state,color:null},type:t.type,title:t.title,url:t.webUrl,milestone:t.milestone?He(t.milestone,s.webUrl):null}},He=(t,s)=>({id:t.id.replace(ht,""),graphQLId:t.id,number:parseInt(t.iid,10),title:t.title,description:t.description,isOpen:t.state==="active",url:`${s}/-/${t.webPath.replace(/.+?\/-\//,"")}`,startDate:t.startDate?new Date(t.startDate):null,dueDate:t.dueDate?new Date(t.dueDate):null}),V=class extends L{getIsSelfHosted(s){return!!s.baseUrl||!!this.config.baseUrl}async getCurrentUser(s={},e={}){var o;let n=(o=(await b(this.config,{query:`
686
699
  query getCurrentUser {
687
700
  currentUser {
688
- ${G}
701
+ ${A}
689
702
  }
690
703
  }
691
- `},s)).body.data)==null?void 0:n.currentUser;if(!r)throw new Error("Current user not found.");return{data:O(r)}}async getUserForCommit(s,e={}){var o,i,u,l;let r=k(s.repo),a=(l=(u=(i=(o=(await y(this.config,{query:`
704
+ `},e)).body.data)==null?void 0:o.currentUser;if(!n)throw new Error("Current user not found.");return{data:O(n,this.getIsSelfHosted(e))}}async getUserForCommit(s,e={}){var a,i,u,l;let r=Q(s.repo),o=(l=(u=(i=(a=(await b(this.config,{query:`
692
705
  query getUserForCommit($fullPath: ID!, $oid: String!) {
693
706
  project(fullPath: $fullPath) {
694
707
  repository {
@@ -702,21 +715,21 @@ query getUserForCommit($fullPath: ID!, $oid: String!) {
702
715
  }
703
716
  }
704
717
  }
705
- `,variables:{fullPath:r,oid:s.oid}},e)).body.data)==null?void 0:o.project)==null?void 0:i.repository)==null?void 0:u.tree)==null?void 0:l.lastCommit;if(!a)throw new Error("Commit not found.");return{data:{name:a.authorName,email:a.authorEmail,avatarUrl:a.authorGravatar}}}async getAccountForEmail(s,e={}){var a,o,i;let n=(i=(o=(a=(await y(this.config,{query:`
718
+ `,variables:{fullPath:r,oid:s.oid}},e)).body.data)==null?void 0:a.project)==null?void 0:i.repository)==null?void 0:u.tree)==null?void 0:l.lastCommit;if(!o)throw new Error("Commit not found.");return{data:{name:o.authorName,email:o.authorEmail,avatarUrl:o.authorGravatar}}}async getAccountForEmail(s,e={}){var o,a,i;let n=(i=(a=(o=(await b(this.config,{query:`
706
719
  query getAccountForEmail($email: String!) {
707
720
  users(search: $email) {
708
721
  nodes {
709
- ${G}
722
+ ${A}
710
723
  }
711
724
  }
712
725
  }
713
- `,variables:{email:s.email}},e)).body.data)==null?void 0:a.users)==null?void 0:o.nodes)==null?void 0:i[0];if(!n)throw new Error("User not found.");return{data:O(n)}}async getAccountForUsername(s,e={}){var a;let n=(a=(await y(this.config,{query:`
726
+ `,variables:{email:s.email}},e)).body.data)==null?void 0:o.users)==null?void 0:a.nodes)==null?void 0:i[0];if(!n)throw new Error("User not found.");return{data:O(n,this.getIsSelfHosted(e))}}async getAccountForUsername(s,e={}){var o;let n=(o=(await b(this.config,{query:`
714
727
  query getAccountForUsername($username: String!) {
715
728
  user(username: $username) {
716
- ${G}
729
+ ${A}
717
730
  }
718
731
  }
719
- `,variables:{username:s.username}},e)).body.data)==null?void 0:a.user;if(!n)throw new Error("User not found.");return{data:O(n)}}async getAccountsForRepo(s,e={}){var u,l,p,d,c,g,R;let{repo:{namespace:r,name:n},cursor:a}=s,o=await y(this.config,{query:`
732
+ `,variables:{username:s.username}},e)).body.data)==null?void 0:o.user;if(!n)throw new Error("User not found.");return{data:O(n,this.getIsSelfHosted(e))}}async getAccountsForRepo(s,e={}){var u,l,p,d,c,g,m;let{repo:{namespace:r,name:n},cursor:o}=s,a=await b(this.config,{query:`
720
733
  query getAccountsForRepo(
721
734
  $fullPath: ID!
722
735
  $after: String
@@ -727,7 +740,7 @@ query getAccountsForRepo(
727
740
  projectMembers(after: $after) {
728
741
  nodes {
729
742
  user {
730
- ${G}
743
+ ${A}
731
744
  }
732
745
  }
733
746
  pageInfo {
@@ -737,22 +750,22 @@ query getAccountsForRepo(
737
750
  }
738
751
  }
739
752
  }
740
- `,variables:{fullPath:`${r}/${n}`,after:a}},e),i=(d=(p=(l=(u=o.body.data)==null?void 0:u.project)==null?void 0:l.projectMembers)==null?void 0:p.nodes)==null?void 0:d.map(h=>h.user).filter(h=>h!==null);return{pageInfo:((R=(g=(c=o.body.data)==null?void 0:c.project)==null?void 0:g.projectMembers)==null?void 0:R.pageInfo)??{endCursor:null,hasNextPage:!1},data:(i==null?void 0:i.map(O))??[]}}async getRepo(s,e={}){var a;let r=k(s),n=await y(this.config,{query:`
753
+ `,variables:{fullPath:`${r}/${n}`,after:o}},e),i=(d=(p=(l=(u=a.body.data)==null?void 0:u.project)==null?void 0:l.projectMembers)==null?void 0:p.nodes)==null?void 0:d.map(f=>f.user).filter(f=>f!==null);return{pageInfo:((m=(g=(c=a.body.data)==null?void 0:c.project)==null?void 0:g.projectMembers)==null?void 0:m.pageInfo)??{endCursor:null,hasNextPage:!1},data:(i==null?void 0:i.map(f=>O(f,this.getIsSelfHosted(e))))??[]}}async getRepo(s,e={}){var o;let r=Q(s),n=await b(this.config,{query:`
741
754
  query getRepo($fullPath: ID!) {
742
755
  project(fullPath: $fullPath) {
743
- ${Oe}
756
+ ${xe}
744
757
  }
745
758
  }
746
- `,variables:{fullPath:r}},e);if(!((a=n.body.data)!=null&&a.project))throw new Error(`Repository ${r} not found`);return{data:xe(n.body.data.project)}}async getRepos(s,e={}){let n=s.map(k).map((u,l)=>`
759
+ `,variables:{fullPath:r}},e);if(!((o=n.body.data)!=null&&o.project))throw new Error(`Repository ${r} not found`);return{data:Ne(n.body.data.project)}}async getRepos(s,e={}){let n=s.map(Q).map((u,l)=>`
747
760
  getRepo_${l}: project(fullPath: "${u}") {
748
- ${Oe}
761
+ ${xe}
749
762
  }
750
763
  `).join(`
751
- `),a=await y(this.config,{query:`
764
+ `),o=await b(this.config,{query:`
752
765
  query batchGetRepos {
753
766
  ${n}
754
767
  }
755
- `},e);if(!a.body.data)throw new Error(a.statusText||"Unknown error");let o=[],i=[];return s.forEach((u,l)=>{let p=a.body.data[`getRepo_${l}`];p?o.push(xe(p)):i.push({input:u})}),{data:o,errors:i}}async getReposForCurrentUser(s={},e={}){var a,o,i,u,l,p;let r=await y(this.config,{query:`
768
+ `},e);if(!o.body.data)throw new Error(o.statusText||"Unknown error");let a=[],i=[];return s.forEach((u,l)=>{let p=o.body.data[`getRepo_${l}`];p?a.push(Ne(p)):i.push({input:u})}),{data:a,errors:i}}async getReposForCurrentUser(s={},e={}){var o,a,i,u,l,p;let r=await b(this.config,{query:`
756
769
  query getReposForCurrentUser($after: String) {
757
770
  projects(membership: true first: 100 after: $after) {
758
771
  pageInfo {
@@ -760,11 +773,11 @@ query getReposForCurrentUser($after: String) {
760
773
  hasNextPage
761
774
  }
762
775
  nodes {
763
- ${Oe}
776
+ ${xe}
764
777
  }
765
778
  }
766
779
  }
767
- `,variables:{after:s.cursor}},e);if(!((a=r.body.data)!=null&&a.projects))throw new Error(((o=r.body.errors)==null?void 0:o[0].message)||r.statusText||"Unknown error");let n=((u=(i=r.body.data)==null?void 0:i.projects)==null?void 0:u.nodes)||[];return{pageInfo:(p=(l=r.body.data)==null?void 0:l.projects)==null?void 0:p.pageInfo,data:n.map(xe)}}async getRefs(s,e,r={}){var u;let n=k(e.repo),a=new URL(`${Ge(this.config,r)}/projects/${encodeURIComponent(n)}/repository/${s}`);a.searchParams.set("page",((u=e.page)==null?void 0:u.toString())||"1"),a.searchParams.set("per_page",C.toString());let o=await this.config.request({url:a.toString(),headers:m(r.token||this.config.token)}),i=o.headers["x-next-page"];return{pageInfo:{hasNextPage:!!i,nextPage:i?parseInt(i,10):null},data:o.body.map(l=>({name:l.name,commit:{oid:l.commit.id,authoredDate:new Date(l.commit.authored_date),committedDate:new Date(l.commit.committed_date)}}))}}async getBranches(s,e={}){return this.getRefs("branches",s,e)}async getTags(s,e={}){return this.getRefs("tags",s,e)}async getBlame(s,e={}){let r=k(s.repo),n=new URL(`${Ge(this.config,e)}/projects/${encodeURIComponent(r)}/repository/files/${encodeURIComponent(s.path)}/blame`);n.searchParams.set("ref",s.ref);let a=await this.config.request({url:n.toString(),headers:m(e.token||this.config.token)}),o=0;return{data:{ranges:a.body.map(i=>{let u=o+1;return o+=i.lines.length,{startingLine:u,endingLine:o,commit:{oid:i.commit.id,parentOids:i.commit.parent_ids,authoredDate:new Date(i.commit.authored_date),author:{name:i.commit.author_name,email:i.commit.author_email,avatarUrl:null},committedDate:new Date(i.commit.committed_date),committer:{name:i.commit.committer_name,email:i.commit.committer_email,avatarUrl:null},message:i.commit.message,fileCount:null,additions:null,deletions:null}}})}}}async getPullRequestsForUser(s,e={}){var o,i;let r=zt[s.association],n=await y(this.config,{query:`
780
+ `,variables:{after:s.cursor}},e);if(!((o=r.body.data)!=null&&o.projects))throw new Error(((a=r.body.errors)==null?void 0:a[0].message)||r.statusText||"Unknown error");let n=((u=(i=r.body.data)==null?void 0:i.projects)==null?void 0:u.nodes)||[];return{pageInfo:(p=(l=r.body.data)==null?void 0:l.projects)==null?void 0:p.pageInfo,data:n.map(Ne)}}async getRefs(s,e,r={}){var u;let n=Q(e.repo),o=new URL(`${Te(this.config,r)}/projects/${encodeURIComponent(n)}/repository/${s}`);o.searchParams.set("page",((u=e.page)==null?void 0:u.toString())||"1"),o.searchParams.set("per_page",D.toString());let a=await this.config.request({url:o.toString(),headers:R(r.token||this.config.token)}),i=a.headers["x-next-page"];return{pageInfo:{hasNextPage:!!i,nextPage:i?parseInt(i,10):null},data:a.body.map(l=>({name:l.name,commit:{oid:l.commit.id,authoredDate:new Date(l.commit.authored_date),committedDate:new Date(l.commit.committed_date)}}))}}async getBranches(s,e={}){return this.getRefs("branches",s,e)}async getTags(s,e={}){return this.getRefs("tags",s,e)}async getBlame(s,e={}){let r=Q(s.repo),n=new URL(`${Te(this.config,e)}/projects/${encodeURIComponent(r)}/repository/files/${encodeURIComponent(s.path)}/blame`);n.searchParams.set("ref",s.ref);let o=await this.config.request({url:n.toString(),headers:R(e.token||this.config.token)}),a=0;return{data:{ranges:o.body.map(i=>{let u=a+1;return a+=i.lines.length,{startingLine:u,endingLine:a,commit:{oid:i.commit.id,parentOids:i.commit.parent_ids,authoredDate:new Date(i.commit.authored_date),author:{name:i.commit.author_name,email:i.commit.author_email,avatarUrl:null},committedDate:new Date(i.commit.committed_date),committer:{name:i.commit.committer_name,email:i.commit.committer_email,avatarUrl:null},message:i.commit.message,fileCount:null,additions:null,deletions:null}}})}}}async getPullRequestsForUser(s,e={}){var a,i;let r=Yt[s.association],n=await b(this.config,{query:`
768
781
  query getPullRequestsForUser($username: String! $cursor: String) {
769
782
  user(username: $username) {
770
783
  ${r}(state:opened first:100 after:$cursor) {
@@ -773,12 +786,12 @@ query getPullRequestsForUser($username: String! $cursor: String) {
773
786
  hasNextPage
774
787
  }
775
788
  nodes {
776
- ${Te(!0,!0,!0)}
789
+ ${_e(!0,!0,!0)}
777
790
  }
778
791
  }
779
792
  }
780
793
  }
781
- `,variables:{username:s.username,cursor:s.cursor}},e);if(!n.body.data)throw new Error(((o=n.body.errors)==null?void 0:o[0].message)||n.statusText||"Unknown error");if(!n.body.data.user)throw new Error("User not found");let a=n.body.data.user[r];if(!a)throw new Error("Unexpected response");return{pageInfo:a.pageInfo,data:((i=a.nodes)==null?void 0:i.map(u=>ke(u,ut(u.project),ut(u.sourceProject))))||[]}}async getPullRequestsAssociatedWithUser(s,e={}){var c;let[r,n,a]=((c=s.cursor)==null?void 0:c.split(";"))||[void 0,void 0,void 0],[o,i,u]=await Promise.all([r==="null"?null:this.getPullRequestsForUser({username:s.username,association:"authored",cursor:r},e),n==="null"?null:this.getPullRequestsForUser({username:s.username,association:"assigned",cursor:n},e),a==="null"?null:this.getPullRequestsForUser({username:s.username,association:"reviewRequested",cursor:a},e)]),l={},p=[],d=g=>{l[g.id]||(l[g.id]=!0,p.push(g))};return o==null||o.data.forEach(d),i==null||i.data.forEach(d),u==null||u.data.forEach(d),{pageInfo:{hasNextPage:(o==null?void 0:o.pageInfo.hasNextPage)||(i==null?void 0:i.pageInfo.hasNextPage)||(u==null?void 0:u.pageInfo.hasNextPage)||!1,endCursor:`${(o==null?void 0:o.pageInfo.hasNextPage)&&(o==null?void 0:o.pageInfo.endCursor)||"null"};${(i==null?void 0:i.pageInfo.hasNextPage)&&(i==null?void 0:i.pageInfo.endCursor)||"null"};${(u==null?void 0:u.pageInfo.hasNextPage)&&(u==null?void 0:u.pageInfo.endCursor)||"null"}`},data:p}}getVariablesForPullRequests(s){let{updatedBefore:e,isDraft:r,authorLogin:n,assigneeLogins:a,reviewRequestedLogin:o}=s||{},i={},u=[],l=[],p=(d,c,g)=>{u.push(`$${d}: ${g}`),l.push(`${d}: $${d}`),i[d]=c};return e&&p("updatedBefore",e,"Time"),n&&p("authorUsername",n,"String"),a&&p("assigneeUsername",a[0],"String"),r!=null&&p("draft",r,"Boolean"),o&&p("reviewerUsername",o,"String"),{variables:i,variableTypes:u,mergeRequestArguments:l}}async getPullRequestsForRepo(s,e={}){var h,b,f;let{cursor:r,repo:n}=s||{},a=k(n),{variables:o,variableTypes:i,mergeRequestArguments:u}=this.getVariablesForPullRequests(s),l={fullPath:a,...o},p=await y(this.config,{query:`
794
+ `,variables:{username:s.username,cursor:s.cursor}},e);if(!n.body.data)throw new Error(((a=n.body.errors)==null?void 0:a[0].message)||n.statusText||"Unknown error");if(!n.body.data.user)throw new Error("User not found");let o=n.body.data.user[r];if(!o)throw new Error("Unexpected response");return{pageInfo:o.pageInfo,data:((i=o.nodes)==null?void 0:i.map(u=>Qe(u,mt(u.project),mt(u.sourceProject),this.getIsSelfHosted(e))))||[]}}async getPullRequestsAssociatedWithUser(s,e={}){var c;let[r,n,o]=((c=s.cursor)==null?void 0:c.split(";"))||[void 0,void 0,void 0],[a,i,u]=await Promise.all([r==="null"?null:this.getPullRequestsForUser({username:s.username,association:"authored",cursor:r},e),n==="null"?null:this.getPullRequestsForUser({username:s.username,association:"assigned",cursor:n},e),o==="null"?null:this.getPullRequestsForUser({username:s.username,association:"reviewRequested",cursor:o},e)]),l={},p=[],d=g=>{l[g.id]||(l[g.id]=!0,p.push(g))};return a==null||a.data.forEach(d),i==null||i.data.forEach(d),u==null||u.data.forEach(d),{pageInfo:{hasNextPage:(a==null?void 0:a.pageInfo.hasNextPage)||(i==null?void 0:i.pageInfo.hasNextPage)||(u==null?void 0:u.pageInfo.hasNextPage)||!1,endCursor:`${(a==null?void 0:a.pageInfo.hasNextPage)&&(a==null?void 0:a.pageInfo.endCursor)||"null"};${(i==null?void 0:i.pageInfo.hasNextPage)&&(i==null?void 0:i.pageInfo.endCursor)||"null"};${(u==null?void 0:u.pageInfo.hasNextPage)&&(u==null?void 0:u.pageInfo.endCursor)||"null"}`},data:p}}getVariablesForPullRequests(s){let{updatedBefore:e,isDraft:r,authorLogin:n,assigneeLogins:o,reviewRequestedLogin:a}=s||{},i={},u=[],l=[],p=(d,c,g)=>{u.push(`$${d}: ${g}`),l.push(`${d}: $${d}`),i[d]=c};return e&&p("updatedBefore",e,"Time"),n&&p("authorUsername",n,"String"),o&&p("assigneeUsername",o[0],"String"),r!=null&&p("draft",r,"Boolean"),a&&p("reviewerUsername",a,"String"),{variables:i,variableTypes:u,mergeRequestArguments:l}}async getPullRequestsForRepo(s,e={}){var f,y,h;let{cursor:r,repo:n}=s||{},o=Q(n),{variables:a,variableTypes:i,mergeRequestArguments:u}=this.getVariablesForPullRequests(s),l={fullPath:o,...a},p=await b(this.config,{query:`
782
795
  query getPullRequestsForRepo(
783
796
  $fullPath: ID!
784
797
  $after: String
@@ -787,6 +800,7 @@ query getPullRequestsForRepo(
787
800
  project(
788
801
  fullPath: $fullPath
789
802
  ) {
803
+ id
790
804
  path
791
805
  fullPath
792
806
  webUrl
@@ -802,16 +816,16 @@ query getPullRequestsForRepo(
802
816
  hasNextPage
803
817
  }
804
818
  nodes {
805
- ${Te(!1,!0,!0)}
819
+ ${_e(!1,!0,!0)}
806
820
  }
807
821
  }
808
822
  }
809
823
  }
810
- `,variables:{...l,after:r}},e),d=[],c=(h=p.body.data)==null?void 0:h.project,g=M(c||{fullPath:"",path:"",webUrl:""});return(((b=c==null?void 0:c.mergeRequests)==null?void 0:b.nodes)||[]).forEach(P=>{d.push(ke(P,g,null))}),{pageInfo:(f=c==null?void 0:c.mergeRequests)==null?void 0:f.pageInfo,data:d}}async getPullRequestsForRepos(s,e={}){var c,g,R,h,b;let{cursor:r}=s||{},n=s.repoIds.map(f=>f.toString().startsWith(z)?f:`${z}${f}`),{variables:a,variableTypes:o,mergeRequestArguments:i}=this.getVariablesForPullRequests(s),u={projectIds:n,...a},l=await y(this.config,{query:`
824
+ `,variables:{...l,after:r}},e),d=[],c=(f=p.body.data)==null?void 0:f.project,g=J(c||{id:"",fullPath:"",path:"",webUrl:""});return(((y=c==null?void 0:c.mergeRequests)==null?void 0:y.nodes)||[]).forEach(P=>{d.push(Qe(P,g,null,this.getIsSelfHosted(e)))}),{pageInfo:(h=c==null?void 0:c.mergeRequests)==null?void 0:h.pageInfo,data:d}}async getPullRequestsForRepos(s,e={}){var c,g,m,f,y;let{cursor:r}=s||{},n=s.repoIds.map(h=>h.toString().startsWith(j)?h:`${j}${h}`),{variables:o,variableTypes:a,mergeRequestArguments:i}=this.getVariablesForPullRequests(s),u={projectIds:n,...o},l=await b(this.config,{query:`
811
825
  query getPullRequests(
812
826
  $projectIds: [ID!]
813
827
  $after: String
814
- ${o.length?o.join(" "):""}
828
+ ${a.length?a.join(" "):""}
815
829
  ) {
816
830
  projects(
817
831
  ids: $projectIds
@@ -822,6 +836,7 @@ query getPullRequests(
822
836
  hasNextPage
823
837
  }
824
838
  nodes {
839
+ id
825
840
  path
826
841
  fullPath
827
842
  webUrl
@@ -832,20 +847,20 @@ query getPullRequests(
832
847
  ${i.length?i.join(" "):""}
833
848
  ) {
834
849
  nodes {
835
- ${Te(!1,!1,!1)}
850
+ ${_e(!1,!1,!1)}
836
851
  }
837
852
  }
838
853
  }
839
854
  }
840
855
  }
841
- `,variables:{...u,after:r}},e),p=[];return(((g=(c=l.body.data)==null?void 0:c.projects)==null?void 0:g.nodes)||[]).forEach(f=>{var _;let P=M(f);(((_=f.mergeRequests)==null?void 0:_.nodes)||[]).forEach(Z=>{p.push(ke(Z,P,null))})}),{pageInfo:(b=(h=(R=l.body)==null?void 0:R.data)==null?void 0:h.projects)==null?void 0:b.pageInfo,data:p}}async closePullRequest(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},pullRequestId:a}=s,o=`mutation ClosePullRequest($fullPath: ID!, $pullRequestId: String!) {
856
+ `,variables:{...u,after:r}},e),p=[];return(((g=(c=l.body.data)==null?void 0:c.projects)==null?void 0:g.nodes)||[]).forEach(h=>{var C;let P=J(h);(((C=h.mergeRequests)==null?void 0:C.nodes)||[]).forEach(te=>{p.push(Qe(te,P,null,this.getIsSelfHosted(e)))})}),{pageInfo:(y=(f=(m=l.body)==null?void 0:m.data)==null?void 0:f.projects)==null?void 0:y.pageInfo,data:p}}async closePullRequest(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},pullRequestId:o}=s,a=`mutation ClosePullRequest($fullPath: ID!, $pullRequestId: String!) {
842
857
  mergeRequestUpdate(input: { projectPath: $fullPath, iid: $pullRequestId, state: CLOSED }) {
843
858
  errors,
844
859
  mergeRequest {
845
860
  id
846
861
  }
847
862
  }
848
- }`,u=(l=(await y(this.config,{query:o,variables:{fullPath:`${r}/${n}`,pullRequestId:a}},e)).body.data)==null?void 0:l.mergeRequestUpdate;if(!((p=u==null?void 0:u.mergeRequest)!=null&&p.id)||((d=u==null?void 0:u.errors)==null?void 0:d.length)!==0)throw new Error("Could not close pull request")}async mergePullRequest(s,e={}){var d,c,g;let{repo:{namespace:r,name:n},pullRequestId:a,expectedSourceSha:o,mergeStrategy:i}=s,u=`mutation MergePullRequest(
863
+ }`,u=(l=(await b(this.config,{query:a,variables:{fullPath:`${r}/${n}`,pullRequestId:o}},e)).body.data)==null?void 0:l.mergeRequestUpdate;if(!((p=u==null?void 0:u.mergeRequest)!=null&&p.id)||((d=u==null?void 0:u.errors)==null?void 0:d.length)!==0)throw new Error("Could not close pull request")}async mergePullRequest(s,e={}){var d,c,g;let{repo:{namespace:r,name:n},pullRequestId:o,expectedSourceSha:a,mergeStrategy:i}=s,u=`mutation MergePullRequest(
849
864
  $fullPath: ID!,
850
865
  $pullRequestId: String!,
851
866
  $expectedSourceSha: String!,
@@ -862,52 +877,53 @@ query getPullRequests(
862
877
  id
863
878
  }
864
879
  }
865
- }`,p=(d=(await y(this.config,{query:u,variables:{fullPath:`${r}/${n}`,pullRequestId:a,expectedSourceSha:o,squash:i==="SQUASH"}},e)).body.data)==null?void 0:d.mergeRequestAccept;if(!((c=p==null?void 0:p.mergeRequest)!=null&&c.id)||((g=p==null?void 0:p.errors)==null?void 0:g.length)!==0)throw new Error("Could not merge pull request")}async setPullRequestMilestone(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:a,milestoneGraphQLId:o}=s,i=`mutation SetPullRequestMilestone($fullPath: ID!, $pullRequestId: String!, $milestoneGraphQLId: MilestoneID) {
880
+ }`,p=(d=(await b(this.config,{query:u,variables:{fullPath:`${r}/${n}`,pullRequestId:o,expectedSourceSha:a,squash:i==="SQUASH"}},e)).body.data)==null?void 0:d.mergeRequestAccept;if(!((c=p==null?void 0:p.mergeRequest)!=null&&c.id)||((g=p==null?void 0:p.errors)==null?void 0:g.length)!==0)throw new Error("Could not merge pull request")}async setPullRequestMilestone(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:o,milestoneGraphQLId:a}=s,i=`mutation SetPullRequestMilestone($fullPath: ID!, $pullRequestId: String!, $milestoneGraphQLId: MilestoneID) {
866
881
  mergeRequestSetMilestone(input: { projectPath: $fullPath, iid: $pullRequestId, milestoneId: $milestoneGraphQLId }) {
867
882
  errors,
868
883
  mergeRequest {
869
884
  id
870
885
  }
871
886
  }
872
- }`,u=await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:a,milestoneGraphQLId:o}},e),l=(p=u.body.data)==null?void 0:p.mergeRequestSetMilestone;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||u.body.errors||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set milestone of pull request")}async setPullRequestAsDraft(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:a,isDraft:o}=s,i=`mutation MergeRequestSetDraft($fullPath: ID!, $pullRequestId: String!, $isDraft: Boolean!) {
887
+ }`,u=await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:o,milestoneGraphQLId:a}},e),l=(p=u.body.data)==null?void 0:p.mergeRequestSetMilestone;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||u.body.errors||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set milestone of pull request")}async setPullRequestAsDraft(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:o,isDraft:a}=s,i=`mutation MergeRequestSetDraft($fullPath: ID!, $pullRequestId: String!, $isDraft: Boolean!) {
873
888
  mergeRequestSetDraft(input: { projectPath: $fullPath, iid: $pullRequestId, draft: $isDraft }) {
874
889
  errors,
875
890
  mergeRequest {
876
891
  id
877
892
  }
878
893
  }
879
- }`,l=(p=(await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:a,isDraft:o}},e)).body.data)==null?void 0:p.mergeRequestSetDraft;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set pull request as draft")}async setPullRequestReviewers(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:a,reviewerUsernames:o}=s,i=`mutation MergeRequestSetReviewers($fullPath: ID!, $pullRequestId: String!, $reviewerUsernames: [String!]!) {
894
+ }`,l=(p=(await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:o,isDraft:a}},e)).body.data)==null?void 0:p.mergeRequestSetDraft;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set pull request as draft")}async setPullRequestReviewers(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:o,reviewerUsernames:a}=s,i=`mutation MergeRequestSetReviewers($fullPath: ID!, $pullRequestId: String!, $reviewerUsernames: [String!]!) {
880
895
  mergeRequestSetReviewers(input: { projectPath: $fullPath, iid: $pullRequestId, reviewerUsernames: $reviewerUsernames }) {
881
896
  errors,
882
897
  mergeRequest {
883
898
  id
884
899
  }
885
900
  }
886
- }`,l=(p=(await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:a,reviewerUsernames:o}},e)).body.data)==null?void 0:p.mergeRequestSetReviewers;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set pull request reviewers")}async setPullRequestAssignees(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:a,assigneeUsernames:o}=s,i=`mutation MergeRequestSetAssignees($fullPath: ID!, $pullRequestId: String!, $assigneeUsernames: [String!]!) {
901
+ }`,l=(p=(await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:o,reviewerUsernames:a}},e)).body.data)==null?void 0:p.mergeRequestSetReviewers;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set pull request reviewers")}async setPullRequestAssignees(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},pullRequestId:o,assigneeUsernames:a}=s,i=`mutation MergeRequestSetAssignees($fullPath: ID!, $pullRequestId: String!, $assigneeUsernames: [String!]!) {
887
902
  mergeRequestSetAssignees(input: { projectPath: $fullPath, iid: $pullRequestId, assigneeUsernames: $assigneeUsernames }) {
888
903
  errors,
889
904
  mergeRequest {
890
905
  id
891
906
  }
892
907
  }
893
- }`,l=(p=(await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:a,assigneeUsernames:o}},e)).body.data)==null?void 0:p.mergeRequestSetAssignees;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set pull request assignees")}async setPullRequestLabels(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},pullRequestId:a,labelGraphQLIds:o}=s,i=`mutation SetPullRequestLabels($fullPath: ID!, $pullRequestId: String!, $labelGraphQLIds: [LabelID!]!) {
908
+ }`,l=(p=(await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:o,assigneeUsernames:a}},e)).body.data)==null?void 0:p.mergeRequestSetAssignees;if(!((d=l==null?void 0:l.mergeRequest)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set pull request assignees")}async setPullRequestLabels(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},pullRequestId:o,labelGraphQLIds:a}=s,i=`mutation SetPullRequestLabels($fullPath: ID!, $pullRequestId: String!, $labelGraphQLIds: [LabelID!]!) {
894
909
  mergeRequestSetLabels(input: { projectPath: $fullPath, iid: $pullRequestId, labelIds: $labelGraphQLIds }) {
895
910
  mergeRequest {
896
911
  id
897
912
  }
898
913
  }
899
- }`;if(!((d=(p=(l=(await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:a,labelGraphQLIds:o}},e)).body.data)==null?void 0:l.mergeRequestSetLabels)==null?void 0:p.mergeRequest)!=null&&d.id))throw new Error("Could not set pull request labels")}async getIssue(s,e={}){var a,o,i;let r=Yt(s),n=await y(this.config,{query:`
914
+ }`;if(!((d=(p=(l=(await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,pullRequestId:o,labelGraphQLIds:a}},e)).body.data)==null?void 0:l.mergeRequestSetLabels)==null?void 0:p.mergeRequest)!=null&&d.id))throw new Error("Could not set pull request labels")}async getIssue(s,e={}){var o,a,i;let r=is(s),n=await b(this.config,{query:`
900
915
  query GetSingleIssue($projectId: ID!, $issueId: String!) {
901
916
  project(fullPath: $projectId) {
917
+ id
902
918
  path
903
919
  fullPath
904
920
  webUrl
905
921
  issue(iid: $issueId) {
906
- ${Ae}
922
+ ${ke}
907
923
  }
908
924
  }
909
925
  }
910
- `,variables:{issueId:s.id,projectId:r}},e);if(!((a=n.body.data)!=null&&a.project))throw new Error(`Repository ${r} not found`);if(!((i=(o=n.body.data)==null?void 0:o.project)!=null&&i.issue))throw new Error(`Issue ${s.id} not found`);return{data:_e(n.body.data.project.issue,M(n.body.data.project))}}getVariablesForIssues(s){let{updatedBefore:e,authorLogin:r,assigneeLogins:n}=s||{},a={},o=[],i=[],u=(l,p,d)=>{o.push(`$${l}: ${d}`),i.push(`${l}: $${l}`),a[l]=p};return e&&u("updatedBefore",e,"Time"),r&&u("authorUsername",r,"String"),n&&u("assigneeUsername",n[0],"String"),{variables:a,variableTypes:o,issueArguments:i}}async getIssuesForRepo(s,e={}){var b,f,P;let{cursor:r,repo:n}=s||{},a=k(n),{variables:o,variableTypes:i,issueArguments:u}=this.getVariablesForIssues(s),l={fullPath:a,...o},p=`
926
+ `,variables:{issueId:s.id,projectId:r}},e);if(!((o=n.body.data)!=null&&o.project))throw new Error(`Repository ${r} not found`);if(!((i=(a=n.body.data)==null?void 0:a.project)!=null&&i.issue))throw new Error(`Issue ${s.id} not found`);return{data:je(n.body.data.project.issue,J(n.body.data.project),this.getIsSelfHosted(e))}}getVariablesForIssues(s){let{updatedBefore:e,authorLogin:r,assigneeLogins:n}=s||{},o={},a=[],i=[],u=(l,p,d)=>{a.push(`$${l}: ${d}`),i.push(`${l}: $${l}`),o[l]=p};return e&&u("updatedBefore",e,"Time"),r&&u("authorUsername",r,"String"),n&&u("assigneeUsername",n[0],"String"),{variables:o,variableTypes:a,issueArguments:i}}async getIssuesForRepo(s,e={}){var y,h,P;let{cursor:r,repo:n}=s||{},o=Q(n),{variables:a,variableTypes:i,issueArguments:u}=this.getVariablesForIssues(s),l={fullPath:o,...a},p=`
911
927
  query GetIssuesFromProject(
912
928
  $fullPath: ID!
913
929
  $after: String
@@ -916,6 +932,7 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
916
932
  project(
917
933
  fullPath: $fullPath
918
934
  ) {
935
+ id
919
936
  path
920
937
  fullPath
921
938
  webUrl
@@ -927,7 +944,7 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
927
944
  ${u.length?u.join(" "):""}
928
945
  ) {
929
946
  nodes {
930
- ${Ae}
947
+ ${ke}
931
948
  }
932
949
  pageInfo {
933
950
  endCursor
@@ -935,11 +952,11 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
935
952
  }
936
953
  }
937
954
  }
938
- }`,d=await y(this.config,{query:p,variables:{...l,after:r}},e),c=[],g=(b=d.body.data)==null?void 0:b.project,R=M(g||{fullPath:"",path:"",webUrl:""});return(((f=g==null?void 0:g.issues)==null?void 0:f.nodes)||[]).forEach(D=>{c.push(_e(D,R))}),{pageInfo:(P=g==null?void 0:g.issues)==null?void 0:P.pageInfo,data:c.sort((D,_)=>(D.updatedDate||D.createdDate).getTime()-(_.updatedDate||_.createdDate).getTime())}}async getIssuesForRepos(s,e={}){var g,R,h,b,f;let{cursor:r}=s||{},n=s.repoIds.map(P=>P.toString().startsWith(z)?P:`${z}${P}`),{variables:a,variableTypes:o,mergeRequestArguments:i}=this.getVariablesForPullRequests(s),u={projectIds:n,...a},l=`
955
+ }`,d=await b(this.config,{query:p,variables:{...l,after:r}},e),c=[],g=(y=d.body.data)==null?void 0:y.project,m=J(g||{id:"",fullPath:"",path:"",webUrl:""});return(((h=g==null?void 0:g.issues)==null?void 0:h.nodes)||[]).forEach(q=>{c.push(je(q,m,this.getIsSelfHosted(e)))}),{pageInfo:(P=g==null?void 0:g.issues)==null?void 0:P.pageInfo,data:c.sort((q,C)=>(q.updatedDate||q.createdDate).getTime()-(C.updatedDate||C.createdDate).getTime())}}async getIssuesForRepos(s,e={}){var g,m,f,y,h;let{cursor:r}=s||{},n=s.repoIds.map(P=>P.toString().startsWith(j)?P:`${j}${P}`),{variables:o,variableTypes:a,mergeRequestArguments:i}=this.getVariablesForPullRequests(s),u={projectIds:n,...o},l=`
939
956
  query GetIssuesFromProject(
940
957
  $projectIds: [ID!]
941
958
  $after: String
942
- ${o.length?o.join(" "):""}
959
+ ${a.length?a.join(" "):""}
943
960
  ) {
944
961
  projects(
945
962
  ids: $projectIds
@@ -950,6 +967,7 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
950
967
  hasNextPage
951
968
  }
952
969
  nodes {
970
+ id
953
971
  path
954
972
  fullPath
955
973
  webUrl
@@ -960,24 +978,24 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
960
978
  ${i.length?i.join(" "):""}
961
979
  ) {
962
980
  nodes {
963
- ${Ae}
981
+ ${ke}
964
982
  }
965
983
  }
966
984
  }
967
985
  }
968
- }`,p=await y(this.config,{query:l,variables:{...u,after:r}},e),d=[];return(((R=(g=p.body.data)==null?void 0:g.projects)==null?void 0:R.nodes)||[]).forEach(P=>{var Z;let D=M(P);(((Z=P.issues)==null?void 0:Z.nodes)||[]).forEach(pt=>d.push(_e(pt,D)))}),{pageInfo:(f=(b=(h=p.body)==null?void 0:h.data)==null?void 0:b.projects)==null?void 0:f.pageInfo,data:d.sort((P,D)=>(P.updatedDate||P.createdDate).getTime()-(D.updatedDate||D.createdDate).getTime())}}async setIssueStatus(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},issueId:a,status:o}=s,i=`mutation SetIssueState($fullPath: ID!, $issueId: String!, $status: IssueStateEvent!) {
986
+ }`,p=await b(this.config,{query:l,variables:{...u,after:r}},e),d=[];return(((m=(g=p.body.data)==null?void 0:g.projects)==null?void 0:m.nodes)||[]).forEach(P=>{var te;let q=J(P);(((te=P.issues)==null?void 0:te.nodes)||[]).forEach(ft=>d.push(je(ft,q,this.getIsSelfHosted(e))))}),{pageInfo:(h=(y=(f=p.body)==null?void 0:f.data)==null?void 0:y.projects)==null?void 0:h.pageInfo,data:d.sort((P,q)=>(P.updatedDate||P.createdDate).getTime()-(q.updatedDate||q.createdDate).getTime())}}async setIssueStatus(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},issueId:o,status:a}=s,i=`mutation SetIssueState($fullPath: ID!, $issueId: String!, $status: IssueStateEvent!) {
969
987
  updateIssue(input: { projectPath: $fullPath, iid: $issueId, stateEvent: $status }) {
970
988
  issue {
971
989
  id
972
990
  }
973
991
  }
974
- }`;if(!((d=(p=(l=(await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:a,status:o}},e)).body.data)==null?void 0:l.updateIssue)==null?void 0:p.issue)!=null&&d.id))throw new Error("Could not set issue status")}async setIssueLabels(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},issueId:a,labelGraphQLIds:o}=s,i=`mutation SetIssueLabels($fullPath: ID!, $issueId: String!, $labelGraphQLIds: [ID!]) {
992
+ }`;if(!((d=(p=(l=(await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:o,status:a}},e)).body.data)==null?void 0:l.updateIssue)==null?void 0:p.issue)!=null&&d.id))throw new Error("Could not set issue status")}async setIssueLabels(s,e={}){var l,p,d;let{repo:{namespace:r,name:n},issueId:o,labelGraphQLIds:a}=s,i=`mutation SetIssueLabels($fullPath: ID!, $issueId: String!, $labelGraphQLIds: [ID!]) {
975
993
  updateIssue(input: { projectPath: $fullPath, iid: $issueId, labelIds: $labelGraphQLIds }) {
976
994
  issue {
977
995
  id
978
996
  }
979
997
  }
980
- }`;if(!((d=(p=(l=(await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:a,labelGraphQLIds:o}},e)).body.data)==null?void 0:l.updateIssue)==null?void 0:p.issue)!=null&&d.id))throw new Error("Could not set issue labels")}async setIssueMilestone(s,e={}){var p,d,c,g;let{repo:{namespace:r,name:n},issueId:a}=s,o=((p=s.milestoneGraphQLId)==null?void 0:p.replace(lt,""))??"",i=`mutation SetIssueMilestone($fullPath: ID!, $issueId: String!, $milestoneGraphQLId: ID) {
998
+ }`;if(!((d=(p=(l=(await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:o,labelGraphQLIds:a}},e)).body.data)==null?void 0:l.updateIssue)==null?void 0:p.issue)!=null&&d.id))throw new Error("Could not set issue labels")}async setIssueMilestone(s,e={}){var p,d,c,g;let{repo:{namespace:r,name:n},issueId:o}=s,a=((p=s.milestoneGraphQLId)==null?void 0:p.replace(ht,""))??"",i=`mutation SetIssueMilestone($fullPath: ID!, $issueId: String!, $milestoneGraphQLId: ID) {
981
999
  updateIssue(input: { projectPath: $fullPath, iid: $issueId, milestoneId: $milestoneGraphQLId }) {
982
1000
  errors
983
1001
  issue {
@@ -987,14 +1005,14 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
987
1005
  }
988
1006
  }
989
1007
  }
990
- }`,u=await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:a,milestoneGraphQLId:o}},e),l=(d=u.body.data)==null?void 0:d.updateIssue;if(!((c=l==null?void 0:l.issue)!=null&&c.id)||u.body.errors||((g=l==null?void 0:l.errors)==null?void 0:g.length)!==0)throw new Error("Could not set milestone of issue")}async setIssueAssignees(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},issueId:a,assigneeUsernames:o}=s,i=`mutation SetIssueAssignees($fullPath: ID!, $issueId: String!, $assigneeUsernames: [String!]!) {
1008
+ }`,u=await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:o,milestoneGraphQLId:a}},e),l=(d=u.body.data)==null?void 0:d.updateIssue;if(!((c=l==null?void 0:l.issue)!=null&&c.id)||u.body.errors||((g=l==null?void 0:l.errors)==null?void 0:g.length)!==0)throw new Error("Could not set milestone of issue")}async setIssueAssignees(s,e={}){var p,d,c;let{repo:{namespace:r,name:n},issueId:o,assigneeUsernames:a}=s,i=`mutation SetIssueAssignees($fullPath: ID!, $issueId: String!, $assigneeUsernames: [String!]!) {
991
1009
  issueSetAssignees(input: { projectPath: $fullPath, iid: $issueId, assigneeUsernames: $assigneeUsernames }) {
992
1010
  errors,
993
1011
  issue {
994
1012
  id
995
1013
  }
996
1014
  }
997
- }`,l=(p=(await y(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:a,assigneeUsernames:o}},e)).body.data)==null?void 0:p.issueSetAssignees;if(!((d=l==null?void 0:l.issue)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set issue assignees")}async getMilestonesForRepo(s,e={}){var i,u,l,p,d,c,g;let{repo:{namespace:r,name:n},cursor:a}=s,o=await y(this.config,{query:`
1015
+ }`,l=(p=(await b(this.config,{query:i,variables:{fullPath:`${r}/${n}`,issueId:o,assigneeUsernames:a}},e)).body.data)==null?void 0:p.issueSetAssignees;if(!((d=l==null?void 0:l.issue)!=null&&d.id)||((c=l==null?void 0:l.errors)==null?void 0:c.length)!==0)throw new Error("Could not set issue assignees")}async getMilestonesForRepo(s,e={}){var i,u,l,p,d,c,g;let{repo:{namespace:r,name:n},cursor:o}=s,a=await b(this.config,{query:`
998
1016
  query getLabelsForRepo(
999
1017
  $fullPath: ID!
1000
1018
  $after: String
@@ -1005,7 +1023,7 @@ query getLabelsForRepo(
1005
1023
  webUrl
1006
1024
  milestones(after: $after) {
1007
1025
  nodes {
1008
- ${je}
1026
+ ${Be}
1009
1027
  }
1010
1028
  pageInfo {
1011
1029
  endCursor
@@ -1014,7 +1032,7 @@ query getLabelsForRepo(
1014
1032
  }
1015
1033
  }
1016
1034
  }
1017
- `,variables:{fullPath:`${r}/${n}`,after:a}},e);return{pageInfo:((l=(u=(i=o.body.data)==null?void 0:i.project)==null?void 0:u.milestones)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((g=(c=(d=(p=o.body.data)==null?void 0:p.project)==null?void 0:d.milestones)==null?void 0:c.nodes)==null?void 0:g.map(R=>{var h,b;return Fe(R,((b=(h=o.body.data)==null?void 0:h.project)==null?void 0:b.webUrl)||"")}))??[]}}async getLabelsForRepo(s,e={}){var i,u,l,p,d,c,g;let{repo:{namespace:r,name:n},cursor:a}=s,o=await y(this.config,{query:`
1035
+ `,variables:{fullPath:`${r}/${n}`,after:o}},e);return{pageInfo:((l=(u=(i=a.body.data)==null?void 0:i.project)==null?void 0:u.milestones)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((g=(c=(d=(p=a.body.data)==null?void 0:p.project)==null?void 0:d.milestones)==null?void 0:c.nodes)==null?void 0:g.map(m=>{var f,y;return He(m,((y=(f=a.body.data)==null?void 0:f.project)==null?void 0:y.webUrl)||"")}))??[]}}async getLabelsForRepo(s,e={}){var i,u,l,p,d,c,g;let{repo:{namespace:r,name:n},cursor:o}=s,a=await b(this.config,{query:`
1018
1036
  query getLabelsForRepo(
1019
1037
  $fullPath: ID!
1020
1038
  $after: String
@@ -1024,7 +1042,7 @@ query getLabelsForRepo(
1024
1042
  ) {
1025
1043
  labels(after: $after) {
1026
1044
  nodes {
1027
- ${Qe}
1045
+ ${Me}
1028
1046
  }
1029
1047
  pageInfo {
1030
1048
  endCursor
@@ -1033,4 +1051,4 @@ query getLabelsForRepo(
1033
1051
  }
1034
1052
  }
1035
1053
  }
1036
- `,variables:{fullPath:`${r}/${n}`,after:a}},e);return{pageInfo:((l=(u=(i=o.body.data)==null?void 0:i.project)==null?void 0:u.labels)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((g=(c=(d=(p=o.body.data)==null?void 0:p.project)==null?void 0:d.labels)==null?void 0:c.nodes)==null?void 0:g.map(Be))??[]}}};var ts="https://api.atlassian.com/ex/jira",ss=100,rs=(t,s,e)=>{var n,a,o,i;let r=t.fields.assignee;return{id:t.id,commentCount:t.fields.comment.comments.length,number:t.key,title:t.fields.summary,url:s?`${s}/browse/${t.key}`:null,closedDate:null,createdDate:new Date(t.fields.created),author:ae(t.fields.creator,s,e),updatedDate:new Date(t.fields.updated),assignees:r?[ae(r,s,e)]:[],description:null,repository:null,state:is(t.fields.status),statusTransitions:((n=t.transitions)==null?void 0:n.map(ns))??[],components:((a=t.fields.components)==null?void 0:a.map(os))??[],type:t.fields.issuetype.name,upvoteCount:((o=t.fields.votes)==null?void 0:o.votes)||0,labels:((i=t.fields.labels)==null?void 0:i.map(u=>({color:null,description:null,id:null,name:u})))??[]}},ns=t=>({name:t.name,id:t.id}),os=t=>({description:t.description??null,id:t.id,name:t.name}),as=(t,s,e)=>e&&t.name?`${s}/secure/ViewProfile.jspa?name=${encodeURIComponent(t.name)}`:`${s}/jira/people/${t.accountId}`,ae=(t,s,e)=>({id:(e?t.key:t.accountId)??"",name:t.displayName,email:t.emailAddress,avatarUrl:t.avatarUrls["48x48"],username:t.displayName,url:as(t,s,e)}),is=t=>{let s;switch(t.statusCategory.name){case"To Do":s="TO_DO";break;case"In Progress":s="IN_PROGRESS";break;default:s="DONE";break}return{name:t.name,color:t.statusCategory.colorName,category:s}},H=(t,s,e)=>e?`${s.baseUrl||ts}/${e}`:`${(s==null?void 0:s.baseUrl)||t.baseUrl}`,ie=async(t,s,e,r={})=>{let{assigneeLogins:n,authorLogin:a,mentionLogin:o,project:i,resourceId:u}=s||{},l=[`project = "${i}"`,"statusCategory != Done"];return a&&l.push(`creator in ("${a}")`),n&&n.length!==0&&l.push(`assignee in ("${n.join('", "')}")`),o&&l.push(`comment ~ "${o}"`),{data:(await t.request({url:`${H(t,r,u)}/rest/api/2/search?jql=${l.join(" AND ")}&startAt=0&maxResults=${ss}&fields=${["assignee","comment","summary","created","creator","updated","votes","issuetype","status","labels","components"].join(",")}&expand=transitions`,headers:m(r.token||t.token)})).body.issues.map(d=>rs(d,e,!u))}},ue=async(t,s,e={})=>{let{resourceId:r,issueId:n,labelNames:a}=s,o={fields:{labels:a}};await t.request({method:"PUT",url:`${H(t,e,r)}/rest/api/2/issue/${n}`,body:JSON.stringify(o),headers:{...m(e.token||t.token),"Content-Type":"application/json"}})},le=async(t,s,e={})=>{let{resourceId:r,issueId:n,componentIds:a}=s,o={fields:{components:a.map(i=>({id:i}))}};await t.request({method:"PUT",url:`${H(t,e,r)}/rest/api/2/issue/${n}`,body:JSON.stringify(o),headers:{...m(e.token||t.token),"Content-Type":"application/json"}})},pe=async(t,s,e={})=>{let{resourceId:r,issueId:n,status:a}=s,o={transition:{id:a}};await t.request({method:"POST",url:`${H(t,e,r)}/rest/api/2/issue/${n}/transitions`,body:JSON.stringify(o),headers:{...m(e.token||t.token),"Content-Type":"application/json"}})},de=async(t,s,e={})=>{let{resourceId:r,projectIdOrKey:n}=s,a=new URL(`${H(t,e,r)}/rest/api/2/project/${n}/components`);return{data:(await t.request({url:a.toString(),headers:m(e.token||t.token)})).body}};var J="https://api.atlassian.com/ex/jira",Me=100,K=class extends E{constructor(){super(...arguments);this._resourceUrlCache={}}async getResourceUrl(e,r={}){var o;let n=r.token||this.config.token;if(!n)return null;let a=this._resourceUrlCache[n];return a?a[e.resourceId]??null:(await this.getJiraResourcesForCurrentUser(r),((o=this._resourceUrlCache[n])==null?void 0:o[e.resourceId])??null)}async getCurrentUserForResource(e,r={}){let n=await this.getResourceUrl({resourceId:e.resourceId},r),a=await this.config.request({url:`${r.baseUrl||J}/${e.resourceId}/rest/api/2/myself`,headers:m(r.token||this.config.token)});return{data:{name:a.body.displayName,email:a.body.emailAddress,avatarUrl:a.body.avatarUrls["48x48"],id:a.body.accountId,username:a.body.displayName,url:n?`${n}/jira/people/${a.body.accountId}`:null}}}async getJiraResourcesForCurrentUser(e={}){let r=await this.config.request({url:`${e.baseUrl||"https://api.atlassian.com/"}/oauth/token/accessible-resources`,headers:m(e.token||this.config.token)}),n=e.token||this.config.token,a=n?this._resourceUrlCache[n]||{}:void 0,o=r.body.map(i=>(a&&(a[i.id]=i.url),{avatarUrl:i.avatarUrl,id:i.id,name:i.name,url:i.url}));return n&&(this._resourceUrlCache[n]=a),{data:o}}async getJiraProjectsForResource(e,r={}){let n=new URL(`${r.baseUrl||J}/${e.resourceId}/rest/api/2/project/search`);n.searchParams.set("maxResults",Me.toString()),e.cursor&&n.searchParams.set("startAt",e.cursor);let a=await this.config.request({url:n.toString(),headers:m(r.token||this.config.token)});return{pageInfo:{hasNextPage:a.body.values.length!==0,endCursor:(a.body.startAt+a.body.values.length).toString()},data:a.body.values.map(o=>({id:o.id,key:o.key,name:o.name,resourceId:e.resourceId}))}}async getJiraProjectsForResources(e,r={}){let n=[];return await Promise.all(e.resourceIds.map(async a=>{let o=await this.getJiraProjectsForResource({resourceId:a},r);n.push(...o.data)})),{data:n}}async getAccountsForJiraProject(e,r={}){let{resourceId:n,projectKey:a,cursor:o}=e,i=await this.getResourceUrl({resourceId:n},r),u=new URL(`${r.baseUrl||J}/${n}/rest/api/2/user/assignable/search`);u.searchParams.set("maxResults",Me.toString()),o&&u.searchParams.set("startAt",o),u.searchParams.set("project",a);let l=await this.config.request({url:u.toString(),headers:m(r.token||this.config.token)});return{pageInfo:{hasNextPage:l.body.length!==0,endCursor:((o?parseInt(o):0)+l.body.length).toString()},data:l.body.filter(p=>p.accountType!=="app"&&p.active).map(p=>ae(p,i,!1))}}async getComponentsForJiraProject(e,r={}){return await de(this.config,e,r)}async getIssuesForProject(e,r={}){let n=await this.getResourceUrl({resourceId:e.resourceId},r);return await ie(this.config,e,n,r)}async setIssueStatus(e,r={}){await pe(this.config,e,r)}async setIssueAssignee(e,r={}){let{resourceId:n,issueId:a,assigneeId:o}=e,i={accountId:o};await this.config.request({method:"PUT",url:`${r.baseUrl||J}/${n}/rest/api/2/issue/${a}/assignee`,body:JSON.stringify(i),headers:{...m(r.token||this.config.token),"Content-Type":"application/json"}})}async setIssueComponents(e,r={}){await le(this.config,e,r)}async setIssueLabels(e,r={}){await ue(this.config,e,r)}async getLabelsForResource(e,r={}){let{resourceId:n,cursor:a}=e,o=new URL(`${r.baseUrl||J}/${n}/rest/api/2/label`);o.searchParams.set("maxResults",Me.toString()),a&&o.searchParams.set("startAt",a);let i=await this.config.request({url:o.toString(),headers:m(r.token||this.config.token)});return{pageInfo:{hasNextPage:!i.body.isLast,endCursor:(i.body.startAt+i.body.values.length).toString()},data:i.body.values.map(u=>({color:null,description:null,id:null,name:u}))}}};var V=class extends v{async getCurrentUser(s={}){let e=await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/myself`,headers:m((s==null?void 0:s.token)||this.config.token)});return{data:{name:e.body.displayName,email:e.body.emailAddress,avatarUrl:e.body.avatarUrls["48x48"],id:e.body.key,username:e.body.displayName,url:null}}}async getJiraProjects(s={}){return{data:(await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/project`,headers:m((s==null?void 0:s.token)||this.config.token)})).body.map(r=>({id:r.id,name:r.name}))}}async getIssuesForProject(s,e={}){if(!e.baseUrl)throw new Error('Jira Server requires a "baseUrl" for this function.');return await ie(this.config,s,e.baseUrl,e)}async setIssueStatus(s,e={}){await pe(this.config,s,e)}async setIssueLabels(s,e={}){await ue(this.config,s,e)}async setIssueComponents(s,e={}){await le(this.config,s,e)}async getLabels(s={}){return{data:(await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/jql/autocompletedata/suggestions?fieldName=labels`,headers:m(s.token||this.config.token)})).body.results.map(({displayName:r})=>({color:null,description:null,id:null,name:r}))}}async getComponentsForJiraProject(s,e={}){return await de(this.config,s,e)}};var A="https://api.trello.com",us=1e3,ls=(t,s)=>{let e=new Date(1e3*parseInt(t.id.substring(0,8),16));return{id:t.id,commentCount:t.badges.comments,number:t.idShort.toString(),title:t.name,url:t.url,closedDate:null,createdDate:new Date(e.toISOString()),author:null,updatedDate:new Date(t.dateLastActivity),assignees:t.idMembers.map(r=>({id:r,username:null,name:null,email:null,avatarUrl:null,url:null})),description:null,state:s[t.idList??""]?{name:s[t.idList].name,color:null}:null,type:null,repository:null,upvoteCount:t.badges.votes,labels:t.labels.map(r=>({color:r.color,description:null,id:r.id,name:r.name}))}},X=class extends E{async getCurrentUser(s,e={}){let r=await this.config.request({url:`${e.baseUrl||A}/1/members/me?key=${s.appKey}&token=${e.token||this.config.token}`,headers:m(e.token||this.config.token)});return{data:{name:r.body.fullName,email:r.body.email,avatarUrl:r.body.avatarHash?`https://trello-members.s3.amazonaws.com/${r.body.id}/${r.body.avatarHash}/50.png`:null,id:r.body.id,username:r.body.username,url:r.body.url}}}async getBoardsForCurrentUser(s,e={}){return{data:(await this.config.request({url:`${e.baseUrl||A}/1/members/me/boards?fields=name&key=${s.appKey}&token=${e.token||this.config.token}&filter=open`,headers:m(e.token||this.config.token)})).body.map(n=>({id:n.id,name:n.name}))}}async getListsForTrelloBoard(s,e={}){let{appKey:r,boardId:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||A}/1/boards/${n}/lists?key=${r}&token=${e.token||this.config.token}`,headers:m(e.token||this.config.token)})).body}}async getAccountsForTrelloBoard(s,e={}){let{appKey:r,boardId:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||A}/1/boards/${n}/members?key=${r}&token=${e.token||this.config.token}`,headers:m(e.token||this.config.token)})).body.map(o=>({id:o.id,name:o.fullName,username:o.username,email:null,avatarUrl:null,url:null}))}}async getIssuesForBoard(s,e={}){let r=["-is:archived","sort:edited"],{appKey:n,boardId:a,filterText:o,assigneeLogins:i,trelloBoardListsById:u}=s||{};i&&r.push("@me");let l=`${o?`${o}`:""}${r.join(" ")} board:${a}`;return{data:(await this.config.request({url:`${e.baseUrl||A}/1/search?key=${n}&query=${l}&cards_limit=${us}&token=${e.token||this.config.token}`,headers:m(e.token||this.config.token)})).body.cards.map(d=>ls(d,u||{}))}}async updateIssue(s,e,r,n){return await this.config.request({method:"PUT",url:`${n.baseUrl||A}/1/cards/${e}?key=${s}&token=${n.token||this.config.token}&${r}`,headers:m(n.token||this.config.token)})}async setIssueStatus(s,e={}){let{appKey:r,cardId:n,status:a}=s,o=`idList=${a}`;if(!(await this.updateIssue(r,n,o,e)).body.id)throw new Error("Could not set issue status")}async setIssueAssignees(s,e={}){let{appKey:r,cardId:n,assigneeIds:a}=s,o=`idMembers=${encodeURIComponent(a.join(","))}`;if(!(await this.updateIssue(r,n,o,e)).body.id)throw new Error("Could not set issue status")}async setIssueLabels(s,e={}){let{appKey:r,cardId:n,labelIds:a}=s;if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||A}/1/cards/${n}?key=${r}&token=${e.token||this.config.token}&idLabels=${encodeURIComponent(a.join(","))}`,headers:m(e.token||this.config.token)})).body.id)throw new Error("Could not set issue status")}async setIssueArchived(s,e={}){let{appKey:r,cardId:n,archived:a}=s;if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||A}/1/cards/${n}?key=${r}&token=${e.token||this.config.token}&closed=${a}`,headers:m(e.token||this.config.token)})).body.id)throw new Error("Could not update issue archived status")}async getLabelsForBoard(s,e={}){let{appKey:r,boardId:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||A}/1/boards/${n}/labels?key=${r}&token=${e.token||this.config.token}`,headers:m(e.token||this.config.token)})).body.map(o=>({color:o.color,description:null,id:o.id,name:o.name}))}}};var ce={};T(ce,{getIssueUniqueId:()=>ps,getPullRequestUniqueId:()=>ds});var ps=(t,s,e,r="")=>{let n=[];return n.push(r),n.push(t),n.push(s),n.push(e),JSON.stringify(n)},ds=(t,s,e,r,n="")=>{let a=[];return a.push(n),a.push(t),a.push(s),a.push(e),a.push(r),JSON.stringify(a)};var ge={};T(ge,{getIssueUniqueId:()=>cs,getPullRequestUniqueId:()=>gs});var cs=(t,s)=>JSON.stringify(["",t,s]),gs=(t,s)=>JSON.stringify(["",t,s]);var me={};T(me,{getIssueUniqueId:()=>ms,getPullRequestUniqueId:()=>hs});var ms=(t,s,e)=>JSON.stringify([e,t,s]),hs=(t,s,e)=>JSON.stringify([e,t,s]);var he={};T(he,{getIssueUniqueId:()=>fs,getPullRequestRank:()=>Is,getPullRequestUniqueId:()=>Rs});var fs=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)},Rs=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)},Is=(t,s,e)=>{var o,i,u;let r=0,n,a;return(o=t.reviews)==null||o.forEach(l=>{l.reviewer.id===s&&(n=l.state),l.state==="CHANGES_REQUESTED"?a="CHANGES_REQUESTED":l.state==="APPROVED"&&a!=="CHANGES_REQUESTED"&&(a="APPROVED")}),a||(a="REVIEW_REQUESTED"),((i=t.author)==null?void 0:i.id)===s?r+=1e3:(u=t.assignees)!=null&&u.find(l=>l.id===s)?r+=900:n==="REVIEW_REQUESTED"?r+=800:e&&(r+=700),a==="APPROVED"?t.mergeableState==="MERGEABLE"?r+=100:t.mergeableState==="CONFLICTS"?r+=90:r+=80:a=="CHANGES_REQUESTED"&&(r+=70),r};var fe={};T(fe,{getIssueUniqueId:()=>bs,getPullRequestUniqueId:()=>ys});var bs=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)},ys=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)};var Re={};T(Re,{getIssueUniqueId:()=>Ps,getJiraServerIssueUniqueId:()=>ws});var Ps=(t,s,e)=>{let r=[];return r.push(""),r.push(t),r.push(s),r.push(e),JSON.stringify(r)},ws=(t,s,e)=>{let r=[];return r.push(e),r.push(""),r.push(t),r.push(s),JSON.stringify(r)};var Ie={};T(Ie,{getIssueUniqueId:()=>qs});var qs=(t,s,e,r="")=>{let n=[];return n.push(r),n.push(t),n.push(s),n.push(e),JSON.stringify(n)};var Cs=t=>{let s={request:t==null?void 0:t.request};return{azureDevOps:new j({...s,...t==null?void 0:t.azureDevOps}),bitbucket:new Q({...s,...t==null?void 0:t.bitbucket}),bitbucketServer:new B({...s,...t==null?void 0:t.bitbucketServer}),github:new F({...s,...t==null?void 0:t.github}),gitlab:new W({...s,...t==null?void 0:t.gitlab}),jira:new K({...s,...t==null?void 0:t.jira}),jiraServer:new V({...s,...t==null?void 0:t.jiraServer}),trello:new X({...s,...t==null?void 0:t.trello})}},Ds=Cs;var Ss={azureDevOps:ce,bitbucket:ge,bitbucketServer:me,github:he,gitlab:fe,jira:Re,trello:Ie};
1054
+ `,variables:{fullPath:`${r}/${n}`,after:o}},e);return{pageInfo:((l=(u=(i=a.body.data)==null?void 0:i.project)==null?void 0:u.labels)==null?void 0:l.pageInfo)??{endCursor:null,hasNextPage:!1},data:((g=(c=(d=(p=a.body.data)==null?void 0:p.project)==null?void 0:d.labels)==null?void 0:c.nodes)==null?void 0:g.map(ze))??[]}}};var ls="https://api.atlassian.com/ex/jira",ps=100,ds=(t,s,e)=>{var n,o,a,i;let r=t.fields.assignee;return{id:t.id,commentCount:t.fields.comment.comments.length,number:t.key,title:t.fields.summary,url:s?`${s}/browse/${t.key}`:null,closedDate:null,createdDate:new Date(t.fields.created),author:pe(t.fields.creator,s,e),updatedDate:new Date(t.fields.updated),assignees:r?[pe(r,s,e)]:[],description:null,repository:null,state:hs(t.fields.status),statusTransitions:((n=t.transitions)==null?void 0:n.map(cs))??[],components:((o=t.fields.components)==null?void 0:o.map(gs))??[],type:t.fields.issuetype.name,upvoteCount:((a=t.fields.votes)==null?void 0:a.votes)||0,labels:((i=t.fields.labels)==null?void 0:i.map(u=>({color:null,description:null,id:null,name:u})))??[]}},cs=t=>({name:t.name,id:t.id}),gs=t=>({description:t.description??null,id:t.id,name:t.name}),ms=(t,s,e)=>e&&t.name?`${s}/secure/ViewProfile.jspa?name=${encodeURIComponent(t.name)}`:`${s}/jira/people/${t.accountId}`,pe=(t,s,e)=>({id:(e?t.key:t.accountId)??"",name:t.displayName,email:t.emailAddress,avatarUrl:t.avatarUrls["48x48"],username:t.displayName,url:ms(t,s,e)}),hs=t=>{let s;switch(t.statusCategory.name){case"To Do":s="TO_DO";break;case"In Progress":s="IN_PROGRESS";break;default:s="DONE";break}return{name:t.name,color:t.statusCategory.colorName,category:s}},K=(t,s,e)=>e?`${s.baseUrl||ls}/${e}`:`${(s==null?void 0:s.baseUrl)||t.baseUrl}`,de=async(t,s,e,r={})=>{let{assigneeLogins:n,authorLogin:o,mentionLogin:a,project:i,resourceId:u}=s||{},l=[`project = "${i}"`,"statusCategory != Done"];return o&&l.push(`creator in ("${o}")`),n&&n.length!==0&&l.push(`assignee in ("${n.join('", "')}")`),a&&l.push(`comment ~ "${a}"`),{data:(await t.request({url:`${K(t,r,u)}/rest/api/2/search?jql=${l.join(" AND ")}&startAt=0&maxResults=${ps}&fields=${["assignee","comment","summary","created","creator","updated","votes","issuetype","status","labels","components"].join(",")}&expand=transitions`,headers:R(r.token||t.token)})).body.issues.map(d=>ds(d,e,!u))}},ce=async(t,s,e={})=>{let{resourceId:r,issueId:n,labelNames:o}=s,a={fields:{labels:o}};await t.request({method:"PUT",url:`${K(t,e,r)}/rest/api/2/issue/${n}`,body:JSON.stringify(a),headers:{...R(e.token||t.token),"Content-Type":"application/json"}})},ge=async(t,s,e={})=>{let{resourceId:r,issueId:n,componentIds:o}=s,a={fields:{components:o.map(i=>({id:i}))}};await t.request({method:"PUT",url:`${K(t,e,r)}/rest/api/2/issue/${n}`,body:JSON.stringify(a),headers:{...R(e.token||t.token),"Content-Type":"application/json"}})},me=async(t,s,e={})=>{let{resourceId:r,issueId:n,status:o}=s,a={transition:{id:o}};await t.request({method:"POST",url:`${K(t,e,r)}/rest/api/2/issue/${n}/transitions`,body:JSON.stringify(a),headers:{...R(e.token||t.token),"Content-Type":"application/json"}})},he=async(t,s,e={})=>{let{resourceId:r,projectIdOrKey:n}=s,o=new URL(`${K(t,e,r)}/rest/api/2/project/${n}/components`);return{data:(await t.request({url:o.toString(),headers:R(e.token||t.token)})).body}};var X="https://api.atlassian.com/ex/jira",We=100,Z=class extends U{constructor(){super(...arguments);this._resourceUrlCache={}}async getResourceUrl(e,r={}){var a;let n=r.token||this.config.token;if(!n)return null;let o=this._resourceUrlCache[n];return o?o[e.resourceId]??null:(await this.getJiraResourcesForCurrentUser(r),((a=this._resourceUrlCache[n])==null?void 0:a[e.resourceId])??null)}async getCurrentUserForResource(e,r={}){let n=await this.getResourceUrl({resourceId:e.resourceId},r),o=await this.config.request({url:`${r.baseUrl||X}/${e.resourceId}/rest/api/2/myself`,headers:R(r.token||this.config.token)});return{data:{name:o.body.displayName,email:o.body.emailAddress,avatarUrl:o.body.avatarUrls["48x48"],id:o.body.accountId,username:o.body.displayName,url:n?`${n}/jira/people/${o.body.accountId}`:null}}}async getJiraResourcesForCurrentUser(e={}){let r=await this.config.request({url:`${e.baseUrl||"https://api.atlassian.com/"}/oauth/token/accessible-resources`,headers:R(e.token||this.config.token)}),n=e.token||this.config.token,o=n?this._resourceUrlCache[n]||{}:void 0,a=r.body.map(i=>(o&&(o[i.id]=i.url),{avatarUrl:i.avatarUrl,id:i.id,name:i.name,url:i.url}));return n&&(this._resourceUrlCache[n]=o),{data:a}}async getJiraProjectsForResource(e,r={}){let n=new URL(`${r.baseUrl||X}/${e.resourceId}/rest/api/2/project/search`);n.searchParams.set("maxResults",We.toString()),e.cursor&&n.searchParams.set("startAt",e.cursor);let o=await this.config.request({url:n.toString(),headers:R(r.token||this.config.token)});return{pageInfo:{hasNextPage:o.body.values.length!==0,endCursor:(o.body.startAt+o.body.values.length).toString()},data:o.body.values.map(a=>({id:a.id,key:a.key,name:a.name,resourceId:e.resourceId}))}}async getJiraProjectsForResources(e,r={}){let n=[];return await Promise.all(e.resourceIds.map(async o=>{let a=await this.getJiraProjectsForResource({resourceId:o},r);n.push(...a.data)})),{data:n}}async getAccountsForJiraProject(e,r={}){let{resourceId:n,projectKey:o,cursor:a}=e,i=await this.getResourceUrl({resourceId:n},r),u=new URL(`${r.baseUrl||X}/${n}/rest/api/2/user/assignable/search`);u.searchParams.set("maxResults",We.toString()),a&&u.searchParams.set("startAt",a),u.searchParams.set("project",o);let l=await this.config.request({url:u.toString(),headers:R(r.token||this.config.token)});return{pageInfo:{hasNextPage:l.body.length!==0,endCursor:((a?parseInt(a):0)+l.body.length).toString()},data:l.body.filter(p=>p.accountType!=="app"&&p.active).map(p=>pe(p,i,!1))}}async getComponentsForJiraProject(e,r={}){return await he(this.config,e,r)}async getIssuesForProject(e,r={}){let n=await this.getResourceUrl({resourceId:e.resourceId},r);return await de(this.config,e,n,r)}async setIssueStatus(e,r={}){await me(this.config,e,r)}async setIssueAssignee(e,r={}){let{resourceId:n,issueId:o,assigneeId:a}=e,i={accountId:a};await this.config.request({method:"PUT",url:`${r.baseUrl||X}/${n}/rest/api/2/issue/${o}/assignee`,body:JSON.stringify(i),headers:{...R(r.token||this.config.token),"Content-Type":"application/json"}})}async setIssueComponents(e,r={}){await ge(this.config,e,r)}async setIssueLabels(e,r={}){await ce(this.config,e,r)}async getLabelsForResource(e,r={}){let{resourceId:n,cursor:o}=e,a=new URL(`${r.baseUrl||X}/${n}/rest/api/2/label`);a.searchParams.set("maxResults",We.toString()),o&&a.searchParams.set("startAt",o);let i=await this.config.request({url:a.toString(),headers:R(r.token||this.config.token)});return{pageInfo:{hasNextPage:!i.body.isLast,endCursor:(i.body.startAt+i.body.values.length).toString()},data:i.body.values.map(u=>({color:null,description:null,id:null,name:u}))}}};var Y=class extends L{async getCurrentUser(s={}){let e=await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/myself`,headers:R((s==null?void 0:s.token)||this.config.token)});return{data:{name:e.body.displayName,email:e.body.emailAddress,avatarUrl:e.body.avatarUrls["48x48"],id:e.body.key,username:e.body.displayName,url:null}}}async getJiraProjects(s={}){return{data:(await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/project`,headers:R((s==null?void 0:s.token)||this.config.token)})).body.map(r=>({id:r.id,name:r.name}))}}async getIssuesForProject(s,e={}){if(!e.baseUrl)throw new Error('Jira Server requires a "baseUrl" for this function.');return await de(this.config,s,e.baseUrl,e)}async setIssueStatus(s,e={}){await me(this.config,s,e)}async setIssueLabels(s,e={}){await ce(this.config,s,e)}async setIssueComponents(s,e={}){await ge(this.config,s,e)}async getLabels(s={}){return{data:(await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/jql/autocompletedata/suggestions?fieldName=labels`,headers:R(s.token||this.config.token)})).body.results.map(({displayName:r})=>({color:null,description:null,id:null,name:r}))}}async getComponentsForJiraProject(s,e={}){return await he(this.config,s,e)}};var T="https://api.trello.com",fs=1e3,Rs=(t,s)=>{let e=new Date(1e3*parseInt(t.id.substring(0,8),16));return{id:t.id,commentCount:t.badges.comments,number:t.idShort.toString(),title:t.name,url:t.url,closedDate:null,createdDate:new Date(e.toISOString()),author:null,updatedDate:new Date(t.dateLastActivity),assignees:t.idMembers.map(r=>({id:r,username:null,name:null,email:null,avatarUrl:null,url:null})),description:null,state:s[t.idList??""]?{name:s[t.idList].name,color:null}:null,type:null,repository:null,upvoteCount:t.badges.votes,labels:t.labels.map(r=>({color:r.color,description:null,id:r.id,name:r.name}))}},ee=class extends U{async getCurrentUser(s,e={}){let r=await this.config.request({url:`${e.baseUrl||T}/1/members/me?key=${s.appKey}&token=${e.token||this.config.token}`,headers:R(e.token||this.config.token)});return{data:{name:r.body.fullName,email:r.body.email,avatarUrl:r.body.avatarHash?`https://trello-members.s3.amazonaws.com/${r.body.id}/${r.body.avatarHash}/50.png`:null,id:r.body.id,username:r.body.username,url:r.body.url}}}async getBoardsForCurrentUser(s,e={}){return{data:(await this.config.request({url:`${e.baseUrl||T}/1/members/me/boards?fields=name&key=${s.appKey}&token=${e.token||this.config.token}&filter=open`,headers:R(e.token||this.config.token)})).body.map(n=>({id:n.id,name:n.name}))}}async getListsForTrelloBoard(s,e={}){let{appKey:r,boardId:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||T}/1/boards/${n}/lists?key=${r}&token=${e.token||this.config.token}`,headers:R(e.token||this.config.token)})).body}}async getAccountsForTrelloBoard(s,e={}){let{appKey:r,boardId:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||T}/1/boards/${n}/members?key=${r}&token=${e.token||this.config.token}`,headers:R(e.token||this.config.token)})).body.map(a=>({id:a.id,name:a.fullName,username:a.username,email:null,avatarUrl:null,url:null}))}}async getIssuesForBoard(s,e={}){let r=["-is:archived","sort:edited"],{appKey:n,boardId:o,filterText:a,assigneeLogins:i,trelloBoardListsById:u}=s||{};i&&r.push("@me");let l=`${a?`${a}`:""}${r.join(" ")} board:${o}`;return{data:(await this.config.request({url:`${e.baseUrl||T}/1/search?key=${n}&query=${l}&cards_limit=${fs}&token=${e.token||this.config.token}`,headers:R(e.token||this.config.token)})).body.cards.map(d=>Rs(d,u||{}))}}async updateIssue(s,e,r,n){return await this.config.request({method:"PUT",url:`${n.baseUrl||T}/1/cards/${e}?key=${s}&token=${n.token||this.config.token}&${r}`,headers:R(n.token||this.config.token)})}async setIssueStatus(s,e={}){let{appKey:r,cardId:n,status:o}=s,a=`idList=${o}`;if(!(await this.updateIssue(r,n,a,e)).body.id)throw new Error("Could not set issue status")}async setIssueAssignees(s,e={}){let{appKey:r,cardId:n,assigneeIds:o}=s,a=`idMembers=${encodeURIComponent(o.join(","))}`;if(!(await this.updateIssue(r,n,a,e)).body.id)throw new Error("Could not set issue status")}async setIssueLabels(s,e={}){let{appKey:r,cardId:n,labelIds:o}=s;if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||T}/1/cards/${n}?key=${r}&token=${e.token||this.config.token}&idLabels=${encodeURIComponent(o.join(","))}`,headers:R(e.token||this.config.token)})).body.id)throw new Error("Could not set issue status")}async setIssueArchived(s,e={}){let{appKey:r,cardId:n,archived:o}=s;if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||T}/1/cards/${n}?key=${r}&token=${e.token||this.config.token}&closed=${o}`,headers:R(e.token||this.config.token)})).body.id)throw new Error("Could not update issue archived status")}async getLabelsForBoard(s,e={}){let{appKey:r,boardId:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||T}/1/boards/${n}/labels?key=${r}&token=${e.token||this.config.token}`,headers:R(e.token||this.config.token)})).body.map(a=>({color:a.color,description:null,id:a.id,name:a.name}))}}};var fe={};x(fe,{getIssueUniqueId:()=>Is,getPullRequestUniqueId:()=>bs});var Is=(t,s,e,r="")=>{let n=[];return n.push(r),n.push(t),n.push(s),n.push(e),JSON.stringify(n)},bs=(t,s,e,r,n="")=>{let o=[];return o.push(n),o.push(t),o.push(s),o.push(e),o.push(r),JSON.stringify(o)};var Re={};x(Re,{getIssueUniqueId:()=>ys,getPullRequestUniqueId:()=>Ps});var ys=(t,s)=>JSON.stringify(["",t,s]),Ps=(t,s)=>JSON.stringify(["",t,s]);var Ie={};x(Ie,{getIssueUniqueId:()=>ws,getPullRequestUniqueId:()=>Ss});var ws=(t,s,e)=>JSON.stringify([e,t,s]),Ss=(t,s,e)=>JSON.stringify([e,t,s]);var be={};x(be,{getIssueUniqueId:()=>qs,getPullRequestRank:()=>Cs,getPullRequestUniqueId:()=>Ds});var qs=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)},Ds=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)},Cs=(t,s,e)=>{var a,i,u;let r=0,n,o;return(a=t.reviews)==null||a.forEach(l=>{l.reviewer.id===s&&(n=l.state),l.state==="CHANGES_REQUESTED"?o="CHANGES_REQUESTED":l.state==="APPROVED"&&o!=="CHANGES_REQUESTED"&&(o="APPROVED")}),o||(o="REVIEW_REQUESTED"),((i=t.author)==null?void 0:i.id)===s?r+=1e3:(u=t.assignees)!=null&&u.find(l=>l.id===s)?r+=900:n==="REVIEW_REQUESTED"?r+=800:e&&(r+=700),o==="APPROVED"?t.mergeableState==="MERGEABLE"?r+=100:t.mergeableState==="CONFLICTS"?r+=90:r+=80:o=="CHANGES_REQUESTED"&&(r+=70),r};var ye={};x(ye,{getIssueUniqueId:()=>vs,getPullRequestUniqueId:()=>Us});var vs=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)},Us=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)};var Pe={};x(Pe,{getIssueUniqueId:()=>Es,getJiraServerIssueUniqueId:()=>$s});var Es=(t,s,e)=>{let r=[];return r.push(""),r.push(t),r.push(s),r.push(e),JSON.stringify(r)},$s=(t,s,e)=>{let r=[];return r.push(e),r.push(""),r.push(t),r.push(s),JSON.stringify(r)};var we={};x(we,{getIssueUniqueId:()=>Ls});var Ls=(t,s,e,r="")=>{let n=[];return n.push(r),n.push(t),n.push(s),n.push(e),JSON.stringify(n)};var Gs=t=>{let s={request:t==null?void 0:t.request};return{azureDevOps:new B({...s,...t==null?void 0:t.azureDevOps}),bitbucket:new z({...s,...t==null?void 0:t.bitbucket}),bitbucketServer:new H({...s,...t==null?void 0:t.bitbucketServer}),github:new W({...s,...t==null?void 0:t.github}),gitlab:new V({...s,...t==null?void 0:t.gitlab}),jira:new Z({...s,...t==null?void 0:t.jira}),jiraServer:new Y({...s,...t==null?void 0:t.jiraServer}),trello:new ee({...s,...t==null?void 0:t.trello})}},As=Gs;var Os={azureDevOps:fe,bitbucket:Re,bitbucketServer:Ie,github:be,gitlab:ye,jira:Pe,trello:we};