@gitkraken/provider-apis 0.14.0 → 0.14.1

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 et=Object.create;var K=Object.defineProperty;var tt=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var rt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var A=(t,r)=>{for(var e in r)K(t,e,{get:r[e],enumerable:!0})},Te=(t,r,e,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of st(r))!nt.call(t,n)&&n!==e&&K(t,n,{get:()=>r[n],enumerable:!(s=tt(r,n))||s.enumerable});return t};var at=(t,r,e)=>(e=t!=null?et(rt(t)):{},Te(r||!t||!t.__esModule?K(e,"default",{value:t,enumerable:!0}):e,t)),ot=t=>Te(K({},"__esModule",{value:!0}),t);var us={};A(us,{AzureDevOps:()=>j,AzureDevopsUtils:()=>se,Bitbucket:()=>B,BitbucketServer:()=>F,BitbucketServerUtils:()=>ne,BitbucketUtils:()=>re,GitHub:()=>M,GitHubUtils:()=>ae,GitLab:()=>W,GitLabUtils:()=>oe,Jira:()=>J,JiraUtils:()=>ie,Trello:()=>H,TrelloUtils:()=>ue,Utils:()=>is,default:()=>os});module.exports=ot(us);var Fe=require("js-base64");var $=100;var xe=at(require("node-fetch")),ke=globalThis.fetch||xe.default;var _e=t=>t.name==="fetch";var it=async t=>{let r=t.headers.get("content-type")||"",e=null;if(r.startsWith("application/json")){let n=await t.text();e=n.trim().length>0?JSON.parse(n):null}else if(r.startsWith("text/")||r==="")e=await t.text();else throw new Error(`Unsupported content-type: ${r}`);let s={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:s}),n}return s},le=t=>_e(t)?async({url:r,...e})=>{let s=await t(r,e);return it(s)}:t;var E=class{constructor(r){this.config={...r,request:le((r==null?void 0:r.request)||ke)}}updateConfig(r){this.config={...this.config,...r,request:r.request?le(r.request):this.config.request}}},T=class extends E{};var h=(t,r)=>{let e={};return t&&(e.Authorization=`${r?"Basic":"Bearer"} ${t}`),e};var y=(t,r={})=>h(r.token||t.token,r.isPAT||t.isPAT),Qe=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 Ne="https://app.vssps.visualstudio.com/_apis",w="https://dev.azure.com",ut={active:"OPEN",completed:"MERGED",abandoned:"CLOSED"},lt={10:"APPROVED",5:"APPROVED",0:"REVIEW_REQUESTED",[-5]:"CHANGES_REQUESTED",[-10]:"CHANGES_REQUESTED"},pe=t=>({id:t.id,name:t.displayName,username:t.uniqueName||t.displayName,email:null,avatarUrl:t.imageUrl}),X=t=>t.startsWith("refs/heads/")?t.replace("refs/heads/",""):t,je=t=>{var r;return{id:t.pullRequestId.toString(),title:t.title,number:t.codeReviewId,state:ut[t.status],isDraft:t.isDraft,commentCount:null,upvoteCount:null,author:pe(t.createdBy),createdDate:new Date(t.creationDate),updatedDate:new Date(t.closedDate||t.creationDate),closedDate:t.closedDate?new Date(t.closedDate):null,repository:{name:t.repository.name,owner:{login:void 0}},headCommit:{buildStatuses:null},baseRef:{name:X(t.targetRefName),oid:t.lastMergeTargetCommit.commitId},headRef:{name:X(t.sourceRefName),oid:t.lastMergeSourceCommit.commitId},url:Qe(t),assignees:t.reviewers.map(pe),reviews:t.reviewers.filter(e=>e.vote!==0).map(e=>({reviewer:pe(e),state:lt[e.vote]||"REVIEW_REQUESTED"})),additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN",labels:((r=t.labels)==null?void 0:r.map(e=>({color:null,description:null,id:e.id,name:e.name})))??[]}},Be=(t,r)=>({id:r.id,name:r.name,namespace:t,project:r.project.name,webUrl:r.webUrl,httpsUrl:r.remoteUrl,sshUrl:r.sshUrl,defaultBranch:r.defaultBranch?{name:X(r.defaultBranch)}:null,permission:null}),pt=(t,r)=>{var i,u;let e=t.fields,s=e["System.AssignedTo"],n=e["System.State"],o=e["System.WorkItemType"],a;return n&&o&&(a=(i=r[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},createdDate:new Date(e["System.CreatedDate"]),updatedDate:new Date(e["System.ChangedDate"]),url:t._links.html.href,assignees:s?[{avatarUrl:s._links.avatar.href,email:null,id:s.id,name:s.uniqueName,username:s.displayName}]:[],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()})))??[]}},j=class extends E{async getCurrentUser(r={}){if(r.isPAT||this.config.isPAT)throw new Error("Azure DevOps does not support PATs for this function.");let e=await this.config.request({url:`${Ne}/profile/profiles/me`,headers:y(this.config,r)});return{data:{id:e.body.id,name:e.body.displayName,username:e.body.displayName,email:e.body.emailAddress,avatarUrl:null}}}async getCurrentUserForInstance(r,e={}){let n=(await this.config.request({url:`${w}/${encodeURIComponent(r.namespace)}/_apis/ConnectionData`,headers:y(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(r,e={}){if(!r.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let n=(await this.config.request({url:`${w}/${encodeURIComponent(r.repo.namespace)}/${encodeURIComponent(r.repo.project)}/_apis/git/repositories/${encodeURIComponent(r.repo.name)}/commits/${r.oid}`,headers:y(this.config,e)})).body.author;return{data:{name:n.name,email:n.email,avatarUrl:n.imageUrl}}}async getOrgsForUser(r,e={}){return{data:(await this.config.request({url:`${Ne}/accounts?memberId=${r.userId}&api-version=6.0`,headers:y(this.config,e)})).body.value.map(n=>({id:n.accountId,name:n.accountName}))}}async getAzureProjects(r,e={}){let s=new URL(`${w}/${encodeURIComponent(r.namespace)}/_apis/projects`);s.searchParams.set("$top",$.toString()),r.cursor&&s.searchParams.set("$skip",r.cursor);let n=await this.config.request({url:s.toString(),headers:y(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:r.namespace}))}}async getAzureProjectScopeDescriptor(r,e={}){let{namespace:s,projectId:n}=r;return{data:{scope:(await this.config.request({url:`https://vssps.dev.azure.com/${encodeURIComponent(s)}/_apis/graph/descriptors/${n}?api-version=6.0`,headers:y(this.config,e)})).body.value}}}async getAccountsForAzureProject(r,e={}){let{namespace:s,projectScopeDescriptor:n}=r,o=new URL(`https://vssps.dev.azure.com/${encodeURIComponent(s)}/_apis/graph/users`);return n&&o.searchParams.set("scopeDescriptor",n),{data:(await this.config.request({url:o.toString(),headers:y(this.config,e)})).body.value.map(i=>{var u;return{id:Fe.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(r,e={}){if(!r.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let s=await this.config.request({url:`${w}/${encodeURIComponent(r.namespace)}/${encodeURIComponent(r.project)}/_apis/git/repositories/${encodeURIComponent(r.name)}`,headers:y(this.config,e)});return{data:Be(r.namespace,s.body)}}async getRepos(r,e={}){let s=[],n=[];return await Promise.all(r.map(async o=>{try{let a=await this.getRepo(o,e);s.push(a.data)}catch(a){n.push({input:o,error:a})}})),{data:s,errors:n}}async getReposForAzureProject(r,e={}){if(!r.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');return{data:(await this.config.request({url:`${w}/${encodeURIComponent(r.namespace)}/${encodeURIComponent(r.project)}/_apis/git/repositories`,headers:y(this.config,e)})).body.value.map(n=>Be(r.namespace,n))}}async getRefs(r,e,s={}){if(!e.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let n=new URL(`${w}/${encodeURIComponent(e.repo.namespace)}/${encodeURIComponent(e.repo.project)}/_apis/git/repositories/${encodeURIComponent(e.repo.name)}/refs`);n.searchParams.set("filter",r),n.searchParams.set("$top",$.toString()),e.cursor&&n.searchParams.set("continuationToken",e.cursor);let o=await this.config.request({url:n.toString(),headers:y(this.config,s)}),a=o.headers["x-ms-continuationtoken"];return{pageInfo:{hasNextPage:!!a,endCursor:a||null},data:o.body.value.map(i=>({name:X(i.name),commit:{oid:i.objectId,authoredDate:null,committedDate:null}}))}}async getBranches(r,e={}){return this.getRefs("heads",r,e)}async getTags(r,e={}){return this.getRefs("tags",r,e)}async getPullRequestsForRepoBase(r,e={},s=100){let{page:n,repo:o,assigneeLogins:a,authorLogin:i}=r||{},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||w}/${encodeURIComponent(o.namespace)}/${encodeURIComponent(o.project||"")}/_apis/git/repositories/${encodeURIComponent(o.name)}/pullRequests?${l}&%24top=${s}&%24skip=${(u-1)*s}`,headers:y(this.config,e)})}async getPullRequestsForRepo(r,e={}){let n=r.page||1,o=await this.getPullRequestsForRepoBase(r,e,100);return{pageInfo:{hasNextPage:o.body.value.length===100,nextPage:n+1},data:o.body.value.map(je)}}async getPullRequestsForRepos(r,e={}){if(!r.repos.every(o=>o.project))throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repos:s}=r||{},n=[];return await Promise.all(s.map(async o=>{try{(await this.getPullRequestsForRepoBase({repo:o,...r},e)).body.value.forEach(i=>{n.push(je(i))})}catch(a){if(a.statusCode!==404&&a.statusCode!==401)throw a}})),{data:n}}async getAzurePullRequestLastMergeStatus(r,e={}){if(!r.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:s,project:n,name:o},pullRequestId:a}=r,i=await this.config.request({url:`${e.baseUrl||w}/${encodeURIComponent(s)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}?includeCommits=true?api-version=6.0`,headers:{...y(this.config,e)}});if(!i.body.mergeStatus)throw new Error("Could not fetch pull request");return{data:i.body.mergeStatus}}async updatePullRequest(r,e,s,n){let{namespace:o,project:a,name:i}=r;return await this.config.request({method:"PATCH",url:`${n.baseUrl||w}/${encodeURIComponent(o)}/${encodeURIComponent(a||"")}/_apis/git/repositories/${i}/pullrequests/${e}?api-version=6.0`,body:s,headers:{...y(this.config,n),"Content-Type":"application/json"}})}async closePullRequest(r,e={}){if(!r.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:s,pullRequestId:n}=r,o={status:"abandoned"};if(!(await this.updatePullRequest(s,n,JSON.stringify(o),e)).body.status)throw new Error("Could not close pull request")}async mergePullRequest(r,e={}){if(!r.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:s,pullRequestId:n,expectedSourceSha:o,mergeStrategy:a}=r,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(s,n,JSON.stringify(u),e)).body.status)throw new Error("Could not merge pull request")}async addPullRequestLabel(r,e={}){let{repo:{namespace:s,project:n,name:o},pullRequestId:a,labelName:i}=r;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||w}/${encodeURIComponent(s)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/labels?api-version=6.0`,body:JSON.stringify(u),headers:{...y(this.config,e),"Content-Type":"application/json"}})).body.id)throw new Error("Could not add pull request label")}async removePullRequestLabel(r,e={}){let{repo:{namespace:s,project:n,name:o},pullRequestId:a,labelNameOrId:i}=r;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||w}/${encodeURIComponent(s)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/labels/${encodeURIComponent(i)}?api-version=6.0`,headers:{...y(this.config,e)}})}async setPullRequestAsDraft(r,e={}){if(!r.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:s,pullRequestId:n,isDraft:o}=r,a={isDraft:o};if(!(await this.updatePullRequest(s,n,JSON.stringify(a),e)).body.status)throw new Error("Could not set the pull request as draft")}async addPullRequestReviewer(r,e={}){if(!r.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:s,project:n,name:o},pullRequestId:a,reviewerId:i,isRequired:u}=r,l={id:i,isRequired:u};if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||w}/${encodeURIComponent(s)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/reviewers/${i}?api-version=6.0`,body:JSON.stringify(l),headers:{...y(this.config,e),"Content-Type":"application/json"}})).body.id)throw new Error("Could not add pull request reviewer")}async removePullRequestReviewer(r,e={}){if(!r.repo.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{repo:{namespace:s,project:n,name:o},pullRequestId:a,reviewerId:i}=r;await this.config.request({method:"DELETE",url:`${e.baseUrl||w}/${encodeURIComponent(s)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/reviewers/${i}?api-version=6.0`,headers:{...y(this.config,e),Accept:"application/json"}})}async getIssuesForAzureProject(r,e={}){let{page:s,assigneeLogins:n,authorLogin:o,mentionLogin:a,statusByWorkItemIdByStatusId:i}=r||{},u=s||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||w}/${encodeURIComponent(r.namespace)}/${encodeURIComponent(r.project)}/_apis/wit/wiql?api-version=6.0`,body:JSON.stringify({query:d}),method:"POST",headers:{...y(this.config,e),"Content-Type":"application/json"}}),g=c.body.workItems.slice((u-1)*l,l*u).map(R=>R.id);if(g.length==0)return{pageInfo:{hasNextPage:!1,nextPage:null},data:[]};let m=await this.config.request({url:`${e.baseUrl||w}/${encodeURIComponent(r.namespace)}/${encodeURIComponent(r.project)}/_apis/wit/workitemsbatch?api-version=6.0`,body:JSON.stringify({ids:g,$expand:"Links"}),method:"POST",headers:{...y(this.config,e),"Content-Type":"application/json"}});return{pageInfo:{hasNextPage:c.body.workItems.length>l*u,nextPage:u+1},data:m.body.value.map(R=>pt(R,i||{}))}}async updateIssue(r,e,s,n,o={}){return await this.config.request({method:"PATCH",url:`${o.baseUrl||w}/${encodeURIComponent(r)}/${encodeURIComponent(e||"")}/_apis/wit/workitems/${s}?api-version=6.0`,body:JSON.stringify(n),headers:{...y(this.config,o),"Content-Type":"application/json-patch+json"}})}async setIssueStatus(r,e={}){var l;if(!r.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:s,project:n,issueId:o,status:a}=r,i=[{op:"add",path:"/fields/System.State",value:a}];if(!((l=(await this.updateIssue(s,n,o,i,e)).body.fields)!=null&&l["System.State"]))throw new Error("Could not set issue status")}async setIssueAssignee(r,e={}){var l;if(!r.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:s,project:n,issueId:o,assigneeNameOrEmail:a}=r,i=[{op:"add",path:"/fields/System.AssignedTo",value:a??""}];if(!((l=(await this.updateIssue(s,n,o,i,e)).body.fields)!=null&&l["System.State"]))throw new Error("Could not set issue assignee")}async setIssueLabels(r,e={}){var l;let{namespace:s,project:n,issueId:o,tagNames:a}=r,i=[{op:"replace",path:"/fields/System.Tags",value:a.join(";")}];if(!((l=(await this.updateIssue(s,n,o,i,e)).body.fields)!=null&&l["System.Tags"]))throw new Error("Could not set issue tags")}async getIssueTypesForAzureProject(r,e={}){if(!r.project)throw new Error('Azure DevOps requires a "project" (name or ID) for this function.');let{namespace:s,project:n}=r;return{data:(await this.config.request({url:`${e.baseUrl||w}/${encodeURIComponent(s)}/${encodeURIComponent(n||"")}/_apis/wit/workitemtypes?api-version=6.0`,headers:{...y(this.config,e)}})).body.value}}async getLabelsForProject(r,e={}){let{namespace:s,project:n}=r;return{data:(await this.config.request({url:`${e.baseUrl||w}/${encodeURIComponent(s)}/${encodeURIComponent(n||"")}/_apis/wit/tags?api-version=6.0`,headers:{...y(this.config,e)}})).body.value.map(a=>({color:null,description:null,id:a.id,name:a.name}))}}};var C=(t,r={})=>h(r.token||t.token,r.isPAT||t.isPAT);var S="https://api.bitbucket.org/2.0",dt={OPEN:"OPEN",MERGED:"MERGED",DECLINED:"CLOSED"},ze=t=>({id:t.uuid,name:t.display_name||t.nickname,username:t.nickname||t.display_name,email:null,avatarUrl:t.links.avatar.href}),Me=t=>{var r,e;return{id:t.uuid,namespace:t.workspace.slug,name:t.slug,webUrl:t.links.html.href,httpsUrl:((r=t.links.clone.find(s=>s.name==="https"))==null?void 0:r.href)??null,sshUrl:((e=t.links.clone.find(s=>s.name==="ssh"))==null?void 0:e.href)??null,defaultBranch:{name:t.mainbranch.name},permission:null}},me=t=>{let r=t.id;return{id:r.toString(),title:t.title,number:r,state:dt[t.state],isDraft:!1,commentCount:t.comment_count,upvoteCount:null,author:ze(t.author),createdDate:new Date(t.created_on),updatedDate:new Date(t.updated_on),closedDate:null,repository:{name:t.source.repository.name,owner:{login:void 0}},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,additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN"}},B=class extends E{async refreshToken(r){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 ${r.base64ClientIDColonClientSecret}`},body:`grant_type=refresh_token&refresh_token=${r.refreshToken}`})).body}}async getCurrentUser(r={}){let e=await this.config.request({url:`${S}/user`,headers:C(this.config,r)});return{data:ze(e.body)}}async getUserForCommit(r,e={}){var a;let n=(await this.config.request({url:`${S}/repositories/${r.repo.namespace}/${r.repo.name}/commit/${r.oid}`,headers:C(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(r,e={}){let s=await this.config.request({url:`${S}/repositories/${r.namespace}/${r.name}`,headers:C(this.config,e)});return{data:Me(s.body)}}async getRepos(r,e={}){let s=[],n=[];return await Promise.all(r.map(async o=>{try{let a=await this.getRepo(o,e);s.push(a.data)}catch(a){n.push({input:o,error:a})}})),{data:s,errors:n}}async getReposForCurrentUser(r={},e={}){let s=new URL(`${S}/repositories`);s.searchParams.set("role","member"),s.searchParams.set("pagelen",$.toString()),r.cursor&&s.searchParams.set("after",r.cursor);let n=await this.config.request({url:s.toString(),headers:C(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(Me)}}async getBranches(r,e={}){var a;let s=new URL(`${S}/repositories/${r.repo.namespace}/${r.repo.name}/refs/branches`);s.searchParams.set("page",((a=r.page)==null?void 0:a.toString())||"1"),s.searchParams.set("pagelen",$.toString());let n=await this.config.request({url:s.toString(),headers:C(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(r,e={}){let s=new URL(`${S}/repositories/${r.repo.namespace}/${r.repo.name}/refs/tags`);s.searchParams.set("pagelen",$.toString()),r.cursor&&s.searchParams.set("page",r.cursor);let n=await this.config.request({url:s.toString(),headers:C(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(r,e={}){var a;let s=new URL(`${S}/pullrequests/${r.userId}`);s.searchParams.set("page",((a=r.page)==null?void 0:a.toString())||"1"),s.searchParams.set("pagelen","50");let n=await this.config.request({url:`${S}/pullrequests/${r.userId}`,headers:C(this.config,e)}),o=!!n.body.next;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.page+1:null},data:n.body.values.map(me)}}async getPullRequestsForRepoBase(r,e={}){var n;let s=new URL(`${S}/repositories/${encodeURI(r.repo.namespace)}/${encodeURI(r.repo.name)}/pullrequests?state=OPEN`);return s.searchParams.set("page",((n=r.page)==null?void 0:n.toString())||"1"),s.searchParams.set("pagelen","50"),await this.config.request({url:s.toString(),headers:C(this.config,e)})}async getPullRequestsForRepo(r,e={}){let s=[],n=await this.getPullRequestsForRepoBase(r,e);n.body.values.forEach(a=>{if(r.authorLogin&&a.author.uuid!==r.authorLogin)return null;s.push(me(a))});let o=!!n.body.next;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.page+1:null},data:s}}async getPullRequestsForRepos(r,e={}){let s=[];return await Promise.all(r.repos.map(async n=>{try{(await this.getPullRequestsForRepoBase({repo:n,...r},e)).body.values.forEach(a=>{if(r.authorLogin&&a.author.uuid!==r.authorLogin)return null;s.push(me(a))})}catch(o){if(o.statusCode!==404&&o.statusCode!==401)throw o}})),{data:s}}async closePullRequest(r,e={}){let{repo:{namespace:s,name:n},pullRequestId:o}=r;if(!(await this.config.request({method:"POST",url:`${S}/repositories/${s}/${n}/pullrequests/${o}/decline`,headers:C(this.config,e)})).body.title)throw new Error("Could not close pull request")}async mergePullRequest(r,e={}){let{repo:{namespace:s,name:n},pullRequestId:o,mergeStrategy:a}=r,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:`${S}/repositories/${s}/${n}/pullrequests/${o}/merge`,body:JSON.stringify(u),headers:{...C(this.config,e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not merge pull request")}async setPullRequestReviewers(r,e={}){let{repo:{namespace:s,name:n},pullRequestId:o,reviewerUsernames:a}=r,i={reviewers:a.map(l=>({username:l}))};if(!(await this.config.request({method:"PUT",url:`${S}/repositories/${s}/${n}/pullrequests/${o}`,body:JSON.stringify(i),headers:{...C(this.config,e),"Content-Type":"application/json"}})).body.title)throw new Error("Could not set pull request reviewers")}};var F=class extends T{getBaseUrl(r){let e=r.baseUrl||this.config.baseUrl;if(!e)throw new Error('Bitbucket Server requires "baseUrl"');return e}getRequestHeaders(r){return h(r.token||this.config.token)}async getRepo(r,e={}){var n,o,a;let s=await this.config.request({url:`${this.getBaseUrl(e)}/projects/${r.namespace}/repos/${r.name}`,headers:this.getRequestHeaders(e)});return{data:{id:s.body.id.toString(),namespace:s.body.project.key,name:s.body.slug,webUrl:((n=s.body.links.self[0])==null?void 0:n.href)??null,httpsUrl:((o=s.body.links.clone.find(i=>i.name==="https"))==null?void 0:o.href)??null,sshUrl:((a=s.body.links.clone.find(i=>i.name==="ssh"))==null?void 0:a.href)??null,defaultBranch:null,permission:null}}}async getRepos(r,e={}){let s=[],n=[];return await Promise.all(r.map(async o=>{try{let a=await this.getRepo(o,e);s.push(a.data)}catch(a){n.push({input:o,error:a})}})),{data:s,errors:n}}async closePullRequest(r,e){let{repo:{namespace:s,name:n},pullRequestId:o,version:a}=r;if(!(await this.config.request({method:"POST",url:`${this.getBaseUrl(e)}/projects/${s}/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(r,e){let{repo:{namespace:s,name:n},pullRequestId:o,mergeStrategyId:a,version:i}=r;if(!(await this.config.request({method:"POST",url:`${this.getBaseUrl(e)}/projects/${s}/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(r){let e=await this.config.request({url:`${this.getBaseUrl(r)}/admin/pull-requests/git`,headers:{...this.getRequestHeaders(r),"Content-Type":"application/json"}});return{data:{defaultStrategy:e.body.mergeConfig.defaultStrategy,strategies:e.body.mergeConfig.strategies}}}async setPullRequestReviewers(r,e={}){let{repo:{namespace:s,name:n},pullRequestId:o,reviewerUsernames:a,version:i}=r,u={reviewers:a.map(p=>({user:{name:p}})),version:i};if(!(await this.config.request({method:"PUT",url:`${this.getBaseUrl(e)}/projects/${s}/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 he="https://api.github.com",ct=`${he}/graphql`,Y=`
1
+ "use strict";var tt=Object.create;var X=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var rt=Object.getOwnPropertyNames;var nt=Object.getPrototypeOf,at=Object.prototype.hasOwnProperty;var x=(t,s)=>{for(var e in s)X(t,e,{get:s[e],enumerable:!0})},Te=(t,s,e,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of rt(s))!at.call(t,n)&&n!==e&&X(t,n,{get:()=>s[n],enumerable:!(r=st(s,n))||r.enumerable});return t};var ot=(t,s,e)=>(e=t!=null?tt(nt(t)):{},Te(s||!t||!t.__esModule?X(e,"default",{value:t,enumerable:!0}):e,t)),it=t=>Te(X({},"__esModule",{value:!0}),t);var gs={};x(gs,{AzureDevOps:()=>Q,AzureDevopsUtils:()=>re,Bitbucket:()=>B,BitbucketServer:()=>F,BitbucketServerUtils:()=>ae,BitbucketUtils:()=>ne,GitHub:()=>M,GitHubUtils:()=>oe,GitLab:()=>J,GitLabUtils:()=>ie,Jira:()=>W,JiraServer:()=>H,JiraUtils:()=>ue,Trello:()=>V,TrelloUtils:()=>le,Utils:()=>cs,default:()=>ds});module.exports=it(gs);var Me=require("js-base64");var $=100;var ke=ot(require("node-fetch")),_e=globalThis.fetch||ke.default;var Ne=t=>t.name==="fetch";var ut=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},pe=t=>Ne(t)?async({url:s,...e})=>{let r=await t(s,e);return ut(r)}:t;var U=class{constructor(s){this.config={...s,request:pe((s==null?void 0:s.request)||_e)}}updateConfig(s){this.config={...this.config,...s,request:s.request?pe(s.request):this.config.request}}},D=class extends U{};var h=(t,s)=>{let e={};return t&&(e.Authorization=`${s?"Basic":"Bearer"} ${t}`),e};var y=(t,s={})=>h(s.token||t.token,s.isPAT||t.isPAT),je=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 Qe="https://app.vssps.visualstudio.com/_apis",w="https://dev.azure.com",lt={active:"OPEN",completed:"MERGED",abandoned:"CLOSED"},pt={10:"APPROVED",5:"APPROVED",0:"REVIEW_REQUESTED",[-5]:"CHANGES_REQUESTED",[-10]:"CHANGES_REQUESTED"},de=t=>({id:t.id,name:t.displayName,username:t.uniqueName||t.displayName,email:null,avatarUrl:t.imageUrl}),Z=t=>t.startsWith("refs/heads/")?t.replace("refs/heads/",""):t,Be=t=>{var s;return{id:t.pullRequestId.toString(),title:t.title,number:t.codeReviewId,state:lt[t.status],isDraft:t.isDraft,commentCount:null,upvoteCount:null,author:de(t.createdBy),createdDate:new Date(t.creationDate),updatedDate:new Date(t.closedDate||t.creationDate),closedDate:t.closedDate?new Date(t.closedDate):null,repository:{name:t.repository.name,owner:{login:void 0}},headCommit:{buildStatuses:null},baseRef:{name:Z(t.targetRefName),oid:t.lastMergeTargetCommit.commitId},headRef:{name:Z(t.sourceRefName),oid:t.lastMergeSourceCommit.commitId},url:je(t),assignees:t.reviewers.map(de),reviews:t.reviewers.filter(e=>e.vote!==0).map(e=>({reviewer:de(e),state:pt[e.vote]||"REVIEW_REQUESTED"})),additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN",labels:((s=t.labels)==null?void 0:s.map(e=>({color:null,description:null,id:e.id,name:e.name})))??[]}},Fe=(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:Z(s.defaultBranch)}:null,permission:null}),dt=(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},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}]:[],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()})))??[]}},Q=class extends U{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:`${Qe}/profile/profiles/me`,headers:y(this.config,s)});return{data:{id:e.body.id,name:e.body.displayName,username:e.body.displayName,email:e.body.emailAddress,avatarUrl:null}}}async getCurrentUserForInstance(s,e={}){let n=(await this.config.request({url:`${w}/${encodeURIComponent(s.namespace)}/_apis/ConnectionData`,headers:y(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:`${w}/${encodeURIComponent(s.repo.namespace)}/${encodeURIComponent(s.repo.project)}/_apis/git/repositories/${encodeURIComponent(s.repo.name)}/commits/${s.oid}`,headers:y(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:`${Qe}/accounts?memberId=${s.userId}&api-version=6.0`,headers:y(this.config,e)})).body.value.map(n=>({id:n.accountId,name:n.accountName}))}}async getAzureProjects(s,e={}){let r=new URL(`${w}/${encodeURIComponent(s.namespace)}/_apis/projects`);r.searchParams.set("$top",$.toString()),s.cursor&&r.searchParams.set("$skip",s.cursor);let n=await this.config.request({url:r.toString(),headers:y(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:y(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:y(this.config,e)})).body.value.map(i=>{var u;return{id:Me.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:`${w}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/git/repositories/${encodeURIComponent(s.name)}`,headers:y(this.config,e)});return{data:Fe(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:`${w}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/git/repositories`,headers:y(this.config,e)})).body.value.map(n=>Fe(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(`${w}/${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",$.toString()),e.cursor&&n.searchParams.set("continuationToken",e.cursor);let o=await this.config.request({url:n.toString(),headers:y(this.config,r)}),a=o.headers["x-ms-continuationtoken"];return{pageInfo:{hasNextPage:!!a,endCursor:a||null},data:o.body.value.map(i=>({name:Z(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||w}/${encodeURIComponent(o.namespace)}/${encodeURIComponent(o.project||"")}/_apis/git/repositories/${encodeURIComponent(o.name)}/pullRequests?${l}&%24top=${r}&%24skip=${(u-1)*r}`,headers:y(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(Be)}}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(Be(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||w}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}?includeCommits=true?api-version=6.0`,headers:{...y(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||w}/${encodeURIComponent(o)}/${encodeURIComponent(a||"")}/_apis/git/repositories/${i}/pullrequests/${e}?api-version=6.0`,body:r,headers:{...y(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||w}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/labels?api-version=6.0`,body:JSON.stringify(u),headers:{...y(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||w}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/labels/${encodeURIComponent(i)}?api-version=6.0`,headers:{...y(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||w}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/reviewers/${i}?api-version=6.0`,body:JSON.stringify(l),headers:{...y(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||w}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/git/repositories/${o}/pullrequests/${a}/reviewers/${i}?api-version=6.0`,headers:{...y(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||w}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/wit/wiql?api-version=6.0`,body:JSON.stringify({query:d}),method:"POST",headers:{...y(this.config,e),"Content-Type":"application/json"}}),g=c.body.workItems.slice((u-1)*l,l*u).map(R=>R.id);if(g.length==0)return{pageInfo:{hasNextPage:!1,nextPage:null},data:[]};let m=await this.config.request({url:`${e.baseUrl||w}/${encodeURIComponent(s.namespace)}/${encodeURIComponent(s.project)}/_apis/wit/workitemsbatch?api-version=6.0`,body:JSON.stringify({ids:g,$expand:"Links"}),method:"POST",headers:{...y(this.config,e),"Content-Type":"application/json"}});return{pageInfo:{hasNextPage:c.body.workItems.length>l*u,nextPage:u+1},data:m.body.value.map(R=>dt(R,i||{}))}}async updateIssue(s,e,r,n,o={}){return await this.config.request({method:"PATCH",url:`${o.baseUrl||w}/${encodeURIComponent(s)}/${encodeURIComponent(e||"")}/_apis/wit/workitems/${r}?api-version=6.0`,body:JSON.stringify(n),headers:{...y(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||w}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/wit/workitemtypes?api-version=6.0`,headers:{...y(this.config,e)}})).body.value}}async getLabelsForProject(s,e={}){let{namespace:r,project:n}=s;return{data:(await this.config.request({url:`${e.baseUrl||w}/${encodeURIComponent(r)}/${encodeURIComponent(n||"")}/_apis/wit/tags?api-version=6.0`,headers:{...y(this.config,e)}})).body.value.map(a=>({color:null,description:null,id:a.id,name:a.name}))}}};var S=(t,s={})=>h(s.token||t.token,s.isPAT||t.isPAT);var C="https://api.bitbucket.org/2.0",ct={OPEN:"OPEN",MERGED:"MERGED",DECLINED:"CLOSED"},Je=t=>({id:t.uuid,name:t.display_name||t.nickname,username:t.nickname||t.display_name,email:null,avatarUrl:t.links.avatar.href}),ze=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}},he=t=>{let s=t.id;return{id:s.toString(),title:t.title,number:s,state:ct[t.state],isDraft:!1,commentCount:t.comment_count,upvoteCount:null,author:Je(t.author),createdDate:new Date(t.created_on),updatedDate:new Date(t.updated_on),closedDate:null,repository:{name:t.source.repository.name,owner:{login:void 0}},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,additions:null,deletions:null,fileCount:null,commitCount:null,headRepository:null,mergeableState:"UNKNOWN"}},B=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={}){let e=await this.config.request({url:`${C}/user`,headers:S(this.config,s)});return{data:Je(e.body)}}async getUserForCommit(s,e={}){var a;let n=(await this.config.request({url:`${C}/repositories/${s.repo.namespace}/${s.repo.name}/commit/${s.oid}`,headers:S(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:`${C}/repositories/${s.namespace}/${s.name}`,headers:S(this.config,e)});return{data:ze(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(`${C}/repositories`);r.searchParams.set("role","member"),r.searchParams.set("pagelen",$.toString()),s.cursor&&r.searchParams.set("after",s.cursor);let n=await this.config.request({url:r.toString(),headers:S(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(ze)}}async getBranches(s,e={}){var a;let r=new URL(`${C}/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",$.toString());let n=await this.config.request({url:r.toString(),headers:S(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(`${C}/repositories/${s.repo.namespace}/${s.repo.name}/refs/tags`);r.searchParams.set("pagelen",$.toString()),s.cursor&&r.searchParams.set("page",s.cursor);let n=await this.config.request({url:r.toString(),headers:S(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(`${C}/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:`${C}/pullrequests/${s.userId}`,headers:S(this.config,e)}),o=!!n.body.next;return{pageInfo:{hasNextPage:o,nextPage:o?n.body.page+1:null},data:n.body.values.map(he)}}async getPullRequestsForRepoBase(s,e={}){var n;let r=new URL(`${C}/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(a=>{if(s.authorLogin&&a.author.uuid!==s.authorLogin)return null;r.push(he(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(he(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:`${C}/repositories/${r}/${n}/pullrequests/${o}/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: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:`${C}/repositories/${r}/${n}/pullrequests/${o}/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:o,reviewerUsernames:a}=s,i={reviewers:a.map(l=>({username:l}))};if(!(await this.config.request({method:"PUT",url:`${C}/repositories/${r}/${n}/pullrequests/${o}`,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 F=class extends D{getBaseUrl(s){let e=s.baseUrl||this.config.baseUrl;if(!e)throw new Error('Bitbucket Server requires "baseUrl"');return e}getRequestHeaders(s){return h(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 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 fe="https://api.github.com",gt=`${fe}/graphql`,ee=`
2
2
  description
3
3
  dueOn
4
4
  id
@@ -6,26 +6,26 @@ number
6
6
  state
7
7
  title
8
8
  url
9
- `,We=/\/api\/v\d+$/,ee=`
9
+ `,We=/\/api\/v\d+$/,te=`
10
10
  color
11
11
  description
12
12
  id
13
13
  name
14
- `,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.")},mt=(t,r)=>{let e=r.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),gt(e),We.test(e)&&(e=e.replace(We,"")),`${e}/api/graphql`):ct},f=(t,r,e)=>{let s=h(e.token||t.token);return s["X-Github-Next-Global-ID"]="1",s["Content-Type"]="application/json",t.request({url:mt(t,e),method:"POST",headers:s,body:JSON.stringify(r)})},ht={user:!0,"user:email":!0,"read:user":!0},x=t=>t.some(r=>ht[r]),D=(t=!1,r=!1)=>`
14
+ `,mt=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.")},ht=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),mt(e),We.test(e)&&(e=e.replace(We,"")),`${e}/api/graphql`):gt},f=(t,s,e)=>{let r=h(e.token||t.token);return r["X-Github-Next-Global-ID"]="1",r["Content-Type"]="application/json",t.request({url:ht(t,e),method:"POST",headers:r,body:JSON.stringify(s)})},ft={user:!0,"user:email":!0,"read:user":!0},T=t=>t.some(s=>ft[s]),E=(t=!1,s=!1)=>`
15
15
  __typename
16
16
  id
17
17
  databaseId
18
18
  name
19
19
  login
20
- ${r?"email":""}
20
+ ${s?"email":""}
21
21
  avatarUrl${t?"(size: $avatarSize)":""}
22
- `,Je=(t=!1)=>`
22
+ `,He=(t=!1)=>`
23
23
  __typename
24
24
  id
25
25
  databaseId
26
26
  login
27
27
  avatarUrl${t?"(size: $avatarSize)":""}
28
- `,ft=(t,r=!1)=>`
28
+ `,Rt=(t,s=!1)=>`
29
29
  id
30
30
  databaseId
31
31
  number
@@ -33,10 +33,10 @@ title
33
33
  state
34
34
  author {
35
35
  ... on User {
36
- ${D(!1,r)}
36
+ ${E(!1,s)}
37
37
  }
38
38
  ... on Bot {
39
- ${Je(!1)}
39
+ ${He(!1)}
40
40
  }
41
41
  }
42
42
  commits(last: 1) {
@@ -106,7 +106,7 @@ updatedAt
106
106
  closedAt
107
107
  assignees(first: 100) {
108
108
  nodes {
109
- ${D(!1,r)}
109
+ ${E(!1,s)}
110
110
  }
111
111
  }
112
112
  reviewRequests(first: 100) {
@@ -114,7 +114,7 @@ reviewRequests(first: 100) {
114
114
  asCodeOwner
115
115
  requestedReviewer {
116
116
  ... on User {
117
- ${D(!1,r)}
117
+ ${E(!1,s)}
118
118
  }
119
119
  }
120
120
  }
@@ -123,7 +123,7 @@ latestReviews(first: 100) {
123
123
  nodes {
124
124
  author {
125
125
  ... on User {
126
- ${D(!1,r)}
126
+ ${E(!1,s)}
127
127
  }
128
128
  }
129
129
  state
@@ -134,23 +134,23 @@ deletions
134
134
  changedFiles
135
135
  mergeable
136
136
  milestone {
137
- ${Y}
137
+ ${ee}
138
138
  }
139
139
  labels(first: 100) {
140
140
  nodes {
141
- ${ee}
141
+ ${te}
142
142
  }
143
143
  }
144
- `,Rt=(t=!1)=>`
144
+ `,It=(t=!1)=>`
145
145
  id
146
146
  databaseId
147
147
  title
148
148
  author {
149
149
  ... on User {
150
- ${D(!1,t)}
150
+ ${E(!1,t)}
151
151
  }
152
152
  ... on Bot {
153
- ${Je(!1)}
153
+ ${He(!1)}
154
154
  }
155
155
  }
156
156
  createdAt
@@ -171,19 +171,19 @@ comments {
171
171
  }
172
172
  assignees(first: 100) {
173
173
  nodes {
174
- ${D(!1,t)}
174
+ ${E(!1,t)}
175
175
  }
176
176
  }
177
177
  state
178
178
  milestone {
179
- ${Y}
179
+ ${ee}
180
180
  }
181
181
  labels(first: 100) {
182
182
  nodes {
183
- ${ee}
183
+ ${te}
184
184
  }
185
185
  }
186
- `,It={"-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"},yt=new RegExp('(([^\\s]+:)?\\"(?:[^\\"\\\\]|\\\\.)*\\"?)|([^\\"\\s]+)',"g"),fe=t=>{let r=[];return(t.match(yt)??[]).forEach(s=>{if(s.includes(":")&&s!="is:closed"){let n=s.split(":")[0];It[n]&&r.push(s)}}),r},Re=(t,r,e,s,n=!1)=>{let o=t==="issue";return{query:`
186
+ `,yt={"-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"},bt=new RegExp('(([^\\s]+:)?\\"(?:[^\\"\\\\]|\\\\.)*\\"?)|([^\\"\\s]+)',"g"),Re=t=>{let s=[];return(t.match(bt)??[]).forEach(r=>{if(r.includes(":")&&r!="is:closed"){let n=r.split(":")[0];yt[n]&&s.push(r)}}),s},Ie=(t,s,e,r,n=!1)=>{let o=t==="issue";return{query:`
187
187
  query SearchIssuesOrPullRequests($query: String! $after: String) {
188
188
  search(type:ISSUE query:$query first:100 after:$after) {
189
189
  pageInfo {
@@ -192,11 +192,11 @@ query SearchIssuesOrPullRequests($query: String! $after: String) {
192
192
  }
193
193
  nodes {
194
194
  ... on ${o?"Issue":"PullRequest"} {
195
- ${o?Rt(s):ft(n,s)}
195
+ ${o?It(r):Rt(n,r)}
196
196
  }
197
197
  }
198
198
  }
199
- }`,variables:{query:`is:${t} is:open ${r}`,after:e}}},bt="Field 'isDraft' doesn't exist on type 'PullRequest'",He=(t=[])=>t.some(r=>(r==null?void 0:r.message)===bt);var Ie=`
199
+ }`,variables:{query:`is:${t} is:open ${s}`,after:e}}},Pt="Field 'isDraft' doesn't exist on type 'PullRequest'",Ve=(t=[])=>t.some(s=>(s==null?void 0:s.message)===Pt);var ye=`
200
200
  id
201
201
  databaseId
202
202
  owner {
@@ -209,18 +209,18 @@ defaultBranchRef {
209
209
  name
210
210
  }
211
211
  viewerPermission
212
- `,be={__typename:"User",id:"U_kgDNJ5k",databaseId:10137,name:"Deleted user",login:"ghost",email:"",avatarUrl:"https://avatars.githubusercontent.com/u/10137?v=4"},Pt={APPROVED:"APPROVED",CHANGES_REQUESTED:"CHANGES_REQUESTED",COMMENTED:"COMMENTED",REVIEW_REQUESTED:"REVIEW_REQUESTED"},wt={MERGEABLE:"MERGEABLE",CONFLICTING:"CONFLICTS",UNKNOWN:"UNKNOWN"},qt={OPEN:"OPEN",CLOSED:"CLOSED"},Pe=t=>({color:t.color,description:t.description,graphQLId:t.id,id:null,name:t.name}),ye=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}),$t={OPEN:"OPEN",CLOSED:"CLOSED",MERGED:"MERGED"},v=t=>({id:t.databaseId.toString(),graphQLId:t.id,name:t.name??t.login,username:t.login,email:t.email??null,avatarUrl:t.avatarUrl}),Ct=t=>{var n,o,a,i,u,l,p,d,c,g;let r=null;t.author?r=(t.author.__typename==="Bot",t.author):r=be;let e=(((n=t.reviewRequests)==null?void 0:n.nodes)||[]).filter(m=>!m.asCodeOwner),s=(o=t.headRepository)==null?void 0:o.url;return s&&!s.endsWith(".git")&&(s=`${s}.git`),{id:t.databaseId.toString(),graphQLId:t.id,title:t.title,number:t.number,state:$t[t.state],commentCount:t.comments.totalCount,upvoteCount:t.reactions.totalCount,author:r?v(r):null,createdDate:new Date(t.createdAt),isDraft:t.isDraft,repository:{name:t.repository.name,owner:{login:t.repository.owner.login}},headRepository:t.headRepository?{name:t.headRepository.name,owner:{login:t.headRepository.owner.login},remoteInfo:{cloneUrlHTTPS:s,cloneUrlSSH:t.headRepository.sshUrl}}:null,headCommit:{buildStatuses:((u=(i=(a=t.commits.nodes)==null?void 0:a[0].commit.statusCheckRollup)==null?void 0:i.contexts.nodes)==null?void 0:u.map(m=>"context"in m?{description:m.description,name:m.context,state:m.state,stage:null,url:m.targetUrl}:{description:null,name:m.name,state:m.status,stage:null,url:m.permalink}))??[]},headRef:t.headRef?{name:t.headRef.name,oid:((l=t.headRef.target)==null?void 0:l.oid)??null}:null,baseRef:t.baseRef?{name:t.baseRef.name,oid:((p=t.baseRef.target)==null?void 0:p.oid)??null}:null,url:t.url,updatedDate:new Date(t.updatedAt),closedDate:t.closedAt?new Date(t.closedAt):null,assignees:t.assignees.nodes?t.assignees.nodes.map(v):null,reviews:e.map(m=>({reviewer:v(m.requestedReviewer),state:"REVIEW_REQUESTED"})).concat((((d=t.latestReviews)==null?void 0:d.nodes)||[]).map(m=>{let R=m.author||be;return{reviewer:v(R),state:Pt[m.state]}})),additions:t.additions,deletions:t.deletions,fileCount:t.changedFiles,commitCount:t.commits.totalCount,mergeableState:wt[t.mergeable],milestone:t.milestone?we(t.milestone):null,labels:((g=(c=t.labels)==null?void 0:c.nodes)==null?void 0:g.map(Pe))??[]}},St=t=>{var e,s;let r=null;return t.author?r=(t.author.__typename==="Bot",t.author):r=be,{id:t.databaseId.toString(),graphQLId:t.id,number:t.number,title:t.title,author:v(r),commentCount:t.comments.totalCount,createdDate:new Date(t.createdAt),description:null,state:{name:qt[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(v):[],upvoteCount:t.reactions.totalCount,milestone:t.milestone?we(t.milestone):null,labels:((s=(e=t.labels)==null?void 0:e.nodes)==null?void 0:s.map(Pe))??[]}},we=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}),M=class extends T{constructor(){super(...arguments);this._scopesCache={}}async getScopes(e){let s=e.token||this.config.token;if(!s)return[];let n=this._scopesCache[s];if(!n){let a=(await f(this.config,{query:"query { rateLimit(dryRun: true) { __typename } }"},e)).headers["x-oauth-scopes"];n=a?a.split(", "):[],this._scopesCache[s]=n}return n}getEnterpriseAvatarUrlIfNeeded(e,s,n){let o=n.baseUrl||this.config.baseUrl;return!o||o.startsWith(he)?e:s?`https://avatars.githubusercontent.com/u/e?email=${encodeURIComponent(s)}`:""}async getCurrentUser(e={}){var a;let s=await this.getScopes(e),o=(a=(await f(this.config,{query:`
212
+ `,Pe={__typename:"User",id:"U_kgDNJ5k",databaseId:10137,name:"Deleted user",login:"ghost",email:"",avatarUrl:"https://avatars.githubusercontent.com/u/10137?v=4"},wt={APPROVED:"APPROVED",CHANGES_REQUESTED:"CHANGES_REQUESTED",COMMENTED:"COMMENTED",REVIEW_REQUESTED:"REVIEW_REQUESTED"},qt={MERGEABLE:"MERGEABLE",CONFLICTING:"CONFLICTS",UNKNOWN:"UNKNOWN"},$t={OPEN:"OPEN",CLOSED:"CLOSED"},we=t=>({color:t.color,description:t.description,graphQLId:t.id,id:null,name:t.name}),be=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}),St={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}),Ct=t=>{var n,o,a,i,u,l,p,d,c,g;let s=null;t.author?s=(t.author.__typename==="Bot",t.author):s=Pe;let e=(((n=t.reviewRequests)==null?void 0:n.nodes)||[]).filter(m=>!m.asCodeOwner),r=(o=t.headRepository)==null?void 0:o.url;return r&&!r.endsWith(".git")&&(r=`${r}.git`),{id:t.databaseId.toString(),graphQLId:t.id,title:t.title,number:t.number,state:St[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}},headRepository:t.headRepository?{name:t.headRepository.name,owner:{login:t.headRepository.owner.login},remoteInfo:{cloneUrlHTTPS:r,cloneUrlSSH:t.headRepository.sshUrl}}:null,headCommit:{buildStatuses:((u=(i=(a=t.commits.nodes)==null?void 0:a[0].commit.statusCheckRollup)==null?void 0:i.contexts.nodes)==null?void 0:u.map(m=>"context"in m?{description:m.description,name:m.context,state:m.state,stage:null,url:m.targetUrl}:{description:null,name:m.name,state:m.status,stage:null,url:m.permalink}))??[]},headRef:t.headRef?{name:t.headRef.name,oid:((l=t.headRef.target)==null?void 0:l.oid)??null}:null,baseRef:t.baseRef?{name:t.baseRef.name,oid:((p=t.baseRef.target)==null?void 0:p.oid)??null}:null,url:t.url,updatedDate:new Date(t.updatedAt),closedDate:t.closedAt?new Date(t.closedAt):null,assignees:t.assignees.nodes?t.assignees.nodes.map(L):null,reviews:e.map(m=>({reviewer:L(m.requestedReviewer),state:"REVIEW_REQUESTED"})).concat((((d=t.latestReviews)==null?void 0:d.nodes)||[]).map(m=>{let R=m.author||Pe;return{reviewer:L(R),state:wt[m.state]}})),additions:t.additions,deletions:t.deletions,fileCount:t.changedFiles,commitCount:t.commits.totalCount,mergeableState:qt[t.mergeable],milestone:t.milestone?qe(t.milestone):null,labels:((g=(c=t.labels)==null?void 0:c.nodes)==null?void 0:g.map(we))??[]}},Ut=t=>{var e,r;let s=null;return t.author?s=(t.author.__typename==="Bot",t.author):s=Pe,{id:t.databaseId.toString(),graphQLId:t.id,number:t.number,title:t.title,author:L(s),commentCount:t.comments.totalCount,createdDate:new Date(t.createdAt),description:null,state:{name:$t[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?qe(t.milestone):null,labels:((r=(e=t.labels)==null?void 0:e.nodes)==null?void 0:r.map(we))??[]}},qe=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}),M=class extends D{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 a=(await f(this.config,{query:"query { rateLimit(dryRun: true) { __typename } }"},e)).headers["x-oauth-scopes"];n=a?a.split(", "):[],this._scopesCache[r]=n}return n}getEnterpriseAvatarUrlIfNeeded(e,r,n){let o=n.baseUrl||this.config.baseUrl;return!o||o.startsWith(fe)?e:r?`https://avatars.githubusercontent.com/u/e?email=${encodeURIComponent(r)}`:""}async getCurrentUser(e={}){var a;let r=await this.getScopes(e),o=(a=(await f(this.config,{query:`
213
213
  query getCurrentUser {
214
214
  viewer {
215
- ${D(!1,x(s))}
215
+ ${E(!1,T(r))}
216
216
  }
217
217
  }
218
- `},e)).body.data)==null?void 0:a.viewer;if(!o)throw new Error("Current user not found.");return{data:v(o)}}async getAccountsForRepo(e,s={}){var l,p,d,c,g,m;let n=await this.getScopes(s),{repo:{namespace:o,name:a},cursor:i}=e,u=await f(this.config,{query:`
218
+ `},e)).body.data)==null?void 0:a.viewer;if(!o)throw new Error("Current user not found.");return{data:L(o)}}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 f(this.config,{query:`
219
219
  query getAccountsForRepo($owner: String!, $name: String! $cursor: String, $first: Int!) {
220
220
  repository(owner: $owner, name: $name) {
221
221
  assignableUsers(first: $first, after: $cursor) {
222
222
  nodes {
223
- ${D(!1,x(n))}
223
+ ${E(!1,T(n))}
224
224
  }
225
225
  pageInfo {
226
226
  endCursor
@@ -229,7 +229,7 @@ query getAccountsForRepo($owner: String!, $name: String! $cursor: String, $first
229
229
  }
230
230
  }
231
231
  }
232
- `,variables:{owner:o,name:a,cursor:i,first:$}},s);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(v))??[]}}async getUserForCommit(e,s={}){var i,u;let o=(i=(await f(this.config,{query:`
232
+ `,variables:{owner:o,name:a,cursor:i,first:$}},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(L))??[]}}async getUserForCommit(e,r={}){var i,u;let o=(i=(await f(this.config,{query:`
233
233
  query getUserForCommit(
234
234
  $owner: String!
235
235
  $name: String!
@@ -248,23 +248,23 @@ query getUserForCommit(
248
248
  }
249
249
  }
250
250
  }
251
- `,variables:{owner:e.repo.namespace,name:e.repo.name,oid:e.oid,avatarSize:e.avatarSize}},s)).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,s)}}}async getAccountForEmail(e,s={}){var i,u,l;let n=await this.getScopes(s),a=(l=(u=(i=(await f(this.config,{query:`
251
+ `,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 f(this.config,{query:`
252
252
  query getAccountForEmail($query: String! $avatarSize: Int) {
253
253
  search(query: $query, type: USER, first: 1) {
254
254
  nodes {
255
255
  ... on User {
256
- ${D(!0,x(n))}
256
+ ${E(!0,T(n))}
257
257
  }
258
258
  }
259
259
  }
260
260
  }
261
- `,variables:{query:`in:email ${e.email}`,avatarSize:e.avatarSize}},s)).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:v({...a,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(a.avatarUrl,a.email,s)})}}async getAccountForUsername(e,s={}){var i;let n=await this.getScopes(s),a=(i=(await f(this.config,{query:`
261
+ `,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:L({...a,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(a.avatarUrl,a.email,r)})}}async getAccountForUsername(e,r={}){var i;let n=await this.getScopes(r),a=(i=(await f(this.config,{query:`
262
262
  query getUserForUsername($login: String! $avatarSize: Int) {
263
263
  user(login: $login) {
264
- ${D(!0,x(n))}
264
+ ${E(!0,T(n))}
265
265
  }
266
266
  }
267
- `,variables:{login:e.username,avatarSize:e.avatarSize}},s)).body.data)==null?void 0:i.user;if(!a)throw new Error("User not found.");return{data:v({...a,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(a.avatarUrl,a.email,s)})}}async getOrgsForCurrentUser(e={},s={}){var a,i;let n=await f(this.config,{query:`
267
+ `,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:L({...a,avatarUrl:this.getEnterpriseAvatarUrlIfNeeded(a.avatarUrl,a.email,r)})}}async getOrgsForCurrentUser(e={},r={}){var a,i;let n=await f(this.config,{query:`
268
268
  query getOrgsForCurrentUser($cursor: String, $first: Int!) {
269
269
  viewer {
270
270
  organizations(first: $first after: $cursor) {
@@ -283,22 +283,22 @@ query getOrgsForCurrentUser($cursor: String, $first: Int!) {
283
283
  }
284
284
  }
285
285
  }
286
- `,variables:{cursor:e.cursor,first:$}},s);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,s={}){var o;let n=await f(this.config,{query:`
286
+ `,variables:{cursor:e.cursor,first:$}},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 f(this.config,{query:`
287
287
  query getRepo($owner: String!, $name: String!) {
288
288
  repository(owner: $owner, name: $name) {
289
- ${Ie}
289
+ ${ye}
290
290
  }
291
291
  }
292
- `,variables:{owner:e.namespace,name:e.name}},s);if(!((o=n.body.data)!=null&&o.repository))throw new Error(`Repository ${e.namespace}/${e.name} not found`);return{data:ye(n.body.data.repository)}}async getRepos(e,s={}){let n=e.map(({namespace:u,name:l},p)=>`
292
+ `,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:be(n.body.data.repository)}}async getRepos(e,r={}){let n=e.map(({namespace:u,name:l},p)=>`
293
293
  getRepo_${p}: repository(owner: "${u}", name: "${l}") {
294
- ${Ie}
294
+ ${ye}
295
295
  }
296
296
  `).join(`
297
297
  `),o=await f(this.config,{query:`
298
298
  query batchGetRepos {
299
299
  ${n}
300
300
  }
301
- `},s);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(ye(p)):i.push({input:u})}),{data:a,errors:i}}async getReposForUsernames(e,s={}){var a;if(!e.usernames.length)return{pageInfo:{endCursor:null,hasNextPage:!1},data:[]};let n=await f(this.config,{query:`
301
+ `},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(be(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 f(this.config,{query:`
302
302
  query getReposForUsernames($query: String!, $cursor: String, $first: Int!) {
303
303
  search(query: $query, type: REPOSITORY, first: $first, after: $cursor) {
304
304
  pageInfo {
@@ -307,12 +307,12 @@ query getReposForUsernames($query: String!, $cursor: String, $first: Int!) {
307
307
  }
308
308
  nodes {
309
309
  ... on Repository {
310
- ${Ie}
310
+ ${ye}
311
311
  }
312
312
  }
313
313
  }
314
314
  }
315
- `,variables:{query:`fork:true ${e.usernames.map(i=>`user:${i}`).join(" ")}`,cursor:e.cursor,first:$}},s);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(ye)}}async getReposForOwners(e,s={}){return this.getReposForUsernames({usernames:e.owners.filter(n=>n.username).map(n=>n.username),cursor:e.cursor},s)}async getRefs(e,s,n={}){var u;let a=(u=(await f(this.config,{query:`
315
+ `,variables:{query:`fork:true ${e.usernames.map(i=>`user:${i}`).join(" ")}`,cursor:e.cursor,first:$}},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(be)}}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 f(this.config,{query:`
316
316
  query getRefs($owner: String!, $name: String!, $refPrefix: String!, $cursor: String, $first: Int!) {
317
317
  repository(owner: $owner, name: $name) {
318
318
  refs(refPrefix: $refPrefix first: $first after: $cursor) {
@@ -333,7 +333,7 @@ query getRefs($owner: String!, $name: String!, $refPrefix: String!, $cursor: Str
333
333
  }
334
334
  }
335
335
  }
336
- `,variables:{owner:s.repo.namespace,name:s.repo.name,refPrefix:e,cursor:s.cursor,first:$}},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,s={}){return this.getRefs("refs/heads/",e,s)}async getTags(e,s={}){return this.getRefs("refs/tags/",e,s)}async getBlame(e,s={}){var i;let o=(i=(await f(this.config,{query:`
336
+ `,variables:{owner:r.repo.namespace,name:r.repo.name,refPrefix:e,cursor:r.cursor,first:$}},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 f(this.config,{query:`
337
337
  query getBlame($owner: String!, $name: String!, $ref: String!, $path: String!) {
338
338
  repository(owner: $owner, name: $name) {
339
339
  object(expression: $ref) {
@@ -372,13 +372,13 @@ query getBlame($owner: String!, $name: String!, $ref: String!, $path: String!) {
372
372
  }
373
373
  }
374
374
  }
375
- `,variables:{owner:e.repo.namespace,name:e.repo.name,ref:e.ref,path:e.path}},s)).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,s={}){var l,p;let n=await this.getScopes(s),o=x(n),a=d=>{let c=d&&typeof e.isDraft=="boolean"?`${e.query} draft:${e.isDraft}`:e.query;return Re("pr",c,e.cursor,o,d)},i=await f(this.config,a(!0),s);i.body.errors&&He(i.body.errors)&&(this.config.baseUrl||s.baseUrl)&&(i=await f(this.config,a(!1),s));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(Ct))||[]}}async searchIssues(e,s={}){var u,l;let n=await this.getScopes(s),o=x(n),a=await f(this.config,Re("issue",e.query,e.cursor,o),s),{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(St))||[]}}async getPullRequestsAssociatedWithUser(e,s={}){return this.searchPullRequests({query:`involves:${e.username}`,cursor:e.cursor},s)}async getPullRequestsForRepos(e,s={}){let{assigneeLogins:n,updatedBefore:o,authorLogin:a,repos:i,reviewRequestedLogin:u,startQuery:l,mentionLogin:p}=e,d=fe(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},s)}async closePullRequest(e,s={}){var i,u,l;let{pullRequestGraphQLId:n}=e,o=`mutation ClosePullRequest($pullRequestGraphQLId: ID!) {
375
+ `,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 l,p;let n=await this.getScopes(r),o=T(n),a=d=>{let c=d&&typeof e.isDraft=="boolean"?`${e.query} draft:${e.isDraft}`:e.query;return Ie("pr",c,e.cursor,o,d)},i=await f(this.config,a(!0),r);i.body.errors&&Ve(i.body.errors)&&(this.config.baseUrl||r.baseUrl)&&(i=await f(this.config,a(!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(Ct))||[]}}async searchIssues(e,r={}){var u,l;let n=await this.getScopes(r),o=T(n),a=await f(this.config,Ie("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(Ut))||[]}}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=Re(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!) {
376
376
  closePullRequest(input: { pullRequestId: $pullRequestGraphQLId }) {
377
377
  pullRequest {
378
378
  id
379
379
  }
380
380
  }
381
- }`;if(!((l=(u=(i=(await f(this.config,{query:`${o}`,variables:{pullRequestGraphQLId:n}},s)).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,s={}){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(
381
+ }`;if(!((l=(u=(i=(await f(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(
382
382
  $pullRequestGraphQLId: ID!,
383
383
  $expectedSourceSha: GitObjectID!,
384
384
  $mergeStrategy: PullRequestMergeMethod,
@@ -392,84 +392,84 @@ query getBlame($owner: String!, $name: String!, $ref: String!, $path: String!) {
392
392
  id
393
393
  }
394
394
  }
395
- }`;if(!((c=(d=(p=(await f(this.config,{query:`${u}`,variables:{pullRequestGraphQLId:n,expectedSourceSha:o,mergeStrategy:i}},s)).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,s={}){var u,l,p;let{pullRequestGraphQLId:n,milestoneGraphQLId:o}=e,a=`mutation SetPullRequestMilestone($pullRequestGraphQLId: ID!, $milestoneGraphQLId: ID) {
395
+ }`;if(!((c=(d=(p=(await f(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) {
396
396
  updatePullRequest(input: { pullRequestId: $pullRequestGraphQLId, milestoneId: $milestoneGraphQLId }) {
397
397
  pullRequest {
398
398
  id
399
399
  }
400
400
  }
401
- }`;if(!((p=(l=(u=(await f(this.config,{query:`${a}`,variables:{pullRequestGraphQLId:n,milestoneGraphQLId:o}},s)).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,s){var a,i,u;let n=`mutation MarkReadyToReview($pullRequestGraphQLId: ID!) {
401
+ }`;if(!((p=(l=(u=(await f(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!) {
402
402
  markPullRequestReadyForReview(input: { pullRequestId: $pullRequestGraphQLId }) {
403
403
  pullRequest {
404
404
  id
405
405
  }
406
406
  }
407
- }`;if(!((u=(i=(a=(await f(this.config,{query:n,variables:{pullRequestGraphQLId:e}},s)).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,s){var a,i,u;let n=`mutation ConvertToDraft($pullRequestGraphQLId: ID!) {
407
+ }`;if(!((u=(i=(a=(await f(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!) {
408
408
  convertPullRequestToDraft(input: { pullRequestId: $pullRequestGraphQLId }) {
409
409
  pullRequest {
410
410
  id
411
411
  }
412
412
  }
413
- }`;if(!((u=(i=(a=(await f(this.config,{query:n,variables:{pullRequestGraphQLId:e}},s)).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,s={}){let{pullRequestGraphQLId:n,isDraft:o}=e;if(o){await this.convertPullRequestToDraft(n,s);return}await this.markPullRequestReadyForReview(n,s)}async setPullRequestReviewers(e,s={}){var u,l,p;let{pullRequestGraphQLId:n,reviewerGraphQLIds:o}=e,a=`mutation SetPullRequestReviewers($pullRequestGraphQLId: ID!, $reviewerGraphQLIds: [ID!]!) {
413
+ }`;if(!((u=(i=(a=(await f(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!]!) {
414
414
  requestReviews(input: { pullRequestId: $pullRequestGraphQLId, userIds: $reviewerGraphQLIds }) {
415
415
  pullRequest {
416
416
  id
417
417
  }
418
418
  }
419
- }`;if(!((p=(l=(u=(await f(this.config,{query:a,variables:{pullRequestGraphQLId:n,reviewerGraphQLIds:o}},s)).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,s={}){var u,l,p;let{pullRequestGraphQLId:n,assigneeGraphQLIds:o}=e,a=`mutation SetPullRequestAssignees($pullRequestGraphQLId: ID!, $assigneeGraphQLIds: [ID!]!) {
419
+ }`;if(!((p=(l=(u=(await f(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!]!) {
420
420
  updatePullRequest(input: { pullRequestId: $pullRequestGraphQLId, assigneeIds: $assigneeGraphQLIds }) {
421
421
  pullRequest {
422
422
  id
423
423
  }
424
424
  }
425
- }`;if(!((p=(l=(u=(await f(this.config,{query:a,variables:{pullRequestGraphQLId:n,assigneeGraphQLIds:o}},s)).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 getIssuesAssociatedWithUser(e,s={}){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},s),o==="null"?null:this.searchIssues({query:`assignee:${e.username}`,cursor:o},s)]),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,s={}){var u,l,p;let{pullRequestGraphQLId:n,labelGraphQLIds:o}=e,a=`mutation SetPullRequestLabels($pullRequestGraphQLId: ID!, $labelGraphQLIds: [ID!]) {
425
+ }`;if(!((p=(l=(u=(await f(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 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!]) {
426
426
  updatePullRequest(input: { pullRequestId: $pullRequestGraphQLId, labelIds: $labelGraphQLIds }) {
427
427
  pullRequest {
428
428
  id
429
429
  }
430
430
  }
431
- }`;if(!((p=(l=(u=(await f(this.config,{query:a,variables:{pullRequestGraphQLId:n,labelGraphQLIds:o}},s)).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,s={}){let n=fe(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},s)}async closeIssueWithReason(e,s,n){var i,u,l;let o=`mutation CloseIssueWithReason($issueGraphQLId: ID!, $closeReason: IssueClosedStateReason!) {
431
+ }`;if(!((p=(l=(u=(await f(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=Re(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!) {
432
432
  closeIssue(input: { issueId: $issueGraphQLId, stateReason: $closeReason }) {
433
433
  issue {
434
434
  id
435
435
  }
436
436
  }
437
- }`;if(!((l=(u=(i=(await f(this.config,{query:o,variables:{issueGraphQLId:e,closeReason:s}},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,s){var a,i,u;let n=`mutation SetIssueState($issueGraphQLId: ID!) {
437
+ }`;if(!((l=(u=(i=(await f(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!) {
438
438
  updateIssue(input: { id: $issueGraphQLId, state: CLOSED }) {
439
439
  issue {
440
440
  id
441
441
  }
442
442
  }
443
- }`;if(!((u=(i=(a=(await f(this.config,{query:n,variables:{issueGraphQLId:e}},s)).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,s){var a,i,u;let n=`mutation ReOpenIssue($issueGraphQLId: ID!) {
443
+ }`;if(!((u=(i=(a=(await f(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!) {
444
444
  reopenIssue(input: { issueId: $issueGraphQLId }) {
445
445
  issue {
446
446
  id
447
447
  }
448
448
  }
449
- }`;if(!((u=(i=(a=(await f(this.config,{query:n,variables:{issueGraphQLId:e}},s)).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,s={}){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,s):o=="CLOSED"&&!a?await this.closeIssueWithoutReason(n,s):a&&await this.closeIssueWithReason(n,a,s)}async setIssueLabels(e,s={}){var u,l,p;let{issueGraphQLId:n,labelGraphQLIds:o}=e,a=`mutation SetIssueLabels($issueGraphQLId: ID!, $labelGraphQLIds: [ID!]) {
449
+ }`;if(!((u=(i=(a=(await f(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!]) {
450
450
  updateIssue(input: { id: $issueGraphQLId, labelIds: $labelGraphQLIds }) {
451
451
  issue {
452
452
  id
453
453
  }
454
454
  }
455
- }`;if(!((p=(l=(u=(await f(this.config,{query:a,variables:{issueGraphQLId:n,labelGraphQLIds:o}},s)).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,s={}){var u,l,p;let{issueGraphQLId:n,milestoneGraphQLId:o}=e,a=`mutation SetIssueMilestone($issueGraphQLId: ID!, $milestoneGraphQLId: ID) {
455
+ }`;if(!((p=(l=(u=(await f(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) {
456
456
  updateIssue(input: { id: $issueGraphQLId, milestoneId: $milestoneGraphQLId }) {
457
457
  issue {
458
458
  id
459
459
  }
460
460
  }
461
- }`;if(!((p=(l=(u=(await f(this.config,{query:`${a}`,variables:{issueGraphQLId:n,milestoneGraphQLId:o}},s)).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,s={}){var u,l,p;let{issueGraphQLId:n,assigneeGraphQLIds:o}=e,a=`mutation SetIssueAssignees($issueGraphQLId: ID!, $assigneeGraphQLIds: [ID!]!) {
461
+ }`;if(!((p=(l=(u=(await f(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!]!) {
462
462
  updateIssue(input: { id: $issueGraphQLId, assigneeIds: $assigneeGraphQLIds }) {
463
463
  issue {
464
464
  id
465
465
  }
466
466
  }
467
- }`;if(!((p=(l=(u=(await f(this.config,{query:a,variables:{issueGraphQLId:n,assigneeGraphQLIds:o}},s)).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,s={}){var u,l,p,d;let{repo:{namespace:n,name:o},cursor:a}=e,i=await f(this.config,{query:`
467
+ }`;if(!((p=(l=(u=(await f(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 f(this.config,{query:`
468
468
  query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first: Int!) {
469
469
  repository(owner: $owner, name: $name) {
470
470
  milestones(first: $first, after: $cursor) {
471
471
  nodes {
472
- ${Y}
472
+ ${ee}
473
473
  }
474
474
  pageInfo {
475
475
  endCursor
@@ -478,12 +478,12 @@ query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first:
478
478
  }
479
479
  }
480
480
  }
481
- `,variables:{owner:n,name:o,cursor:a,first:$}},s);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(we))??[]}}async getLabelsForRepo(e,s={}){var u,l,p,d;let{repo:{namespace:n,name:o},cursor:a}=e,i=await f(this.config,{query:`
481
+ `,variables:{owner:n,name:o,cursor:a,first:$}},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(qe))??[]}}async getLabelsForRepo(e,r={}){var u,l,p,d;let{repo:{namespace:n,name:o},cursor:a}=e,i=await f(this.config,{query:`
482
482
  query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first: Int!) {
483
483
  repository(owner: $owner, name: $name) {
484
484
  labels(first: $first, after: $cursor) {
485
485
  nodes {
486
- ${ee}
486
+ ${te}
487
487
  }
488
488
  pageInfo {
489
489
  endCursor
@@ -492,7 +492,7 @@ query getLabelsForRepo($owner: String!, $name: String! $cursor: String, $first:
492
492
  }
493
493
  }
494
494
  }
495
- `,variables:{owner:n,name:o,cursor:a,first:$}},s);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(Pe))??[]}}};var Et="https://gitlab.com/api/v4",Dt="https://gitlab.com/api/graphql",Ve=/\/api\/v\d+$/,Ke=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.")},qe=(t,r)=>{let e=r.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),Ke(e),e):Et},Ut=(t,r)=>{let e=r.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),Ke(e),Ve.test(e)&&(e=e.replace(Ve,"")),`${e}/api/graphql`):Dt},I=(t,r,e)=>{let s=h(e.token||t.token);return t.request({url:Ut(t,e),method:"POST",headers:{...s,"Content-Type":"application/json"},body:JSON.stringify(r)})};var Xe=t=>t.split("/").slice(0,-1).join("/"),N=t=>({namespace:Xe(t.fullPath),name:t.path,webUrl:t.webUrl}),vt={assigned:"assignedMergeRequests",authored:"authoredMergeRequests",reviewRequested:"reviewRequestedMergeRequests"},Lt={CAN_BE_MERGED:"MERGEABLE",CANNOT_BE_MERGED:"CONFLICTS",CANNOT_BE_MERGED_RECHECK:"UNKNOWN",UNCHECKED:"UNKNOWN",CHECKING:"UNKNOWN"},ve="gid://gitlab/User/",z="gid://gitlab/Project/",Gt="gid://gitlab/MergeRequest/",Ot="gid://gitlab/Issue/",At="gid://gitlab/ProjectLabel/",Ze="gid://gitlab/Milestone/",Tt="gid://gitlab/Ci::Build/",Le=`
495
+ `,variables:{owner:n,name:o,cursor:a,first:$}},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(we))??[]}}};var Et="https://gitlab.com/api/v4",vt="https://gitlab.com/api/graphql",Ke=/\/api\/v\d+$/,Xe=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.")},$e=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),Xe(e),e):Et},Dt=(t,s)=>{let e=s.baseUrl||t.baseUrl;return e?(e=e.replace(/\/$/,""),Xe(e),Ke.test(e)&&(e=e.replace(Ke,"")),`${e}/api/graphql`):vt},I=(t,s,e)=>{let r=h(e.token||t.token);return t.request({url:Dt(t,e),method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify(s)})};var Ze=t=>t.split("/").slice(0,-1).join("/"),j=t=>({namespace:Ze(t.fullPath),name:t.path,webUrl:t.webUrl}),Lt={assigned:"assignedMergeRequests",authored:"authoredMergeRequests",reviewRequested:"reviewRequestedMergeRequests"},Gt={CAN_BE_MERGED:"MERGEABLE",CANNOT_BE_MERGED:"CONFLICTS",CANNOT_BE_MERGED_RECHECK:"UNKNOWN",UNCHECKED:"UNKNOWN",CHECKING:"UNKNOWN"},Le="gid://gitlab/User/",z="gid://gitlab/Project/",Ot="gid://gitlab/MergeRequest/",At="gid://gitlab/Issue/",xt="gid://gitlab/ProjectLabel/",Ye="gid://gitlab/Milestone/",Tt="gid://gitlab/Ci::Build/",Ge=`
496
496
  description
497
497
  dueDate
498
498
  id
@@ -501,7 +501,7 @@ startDate
501
501
  state
502
502
  title
503
503
  webPath
504
- `,$e=`
504
+ `,Se=`
505
505
  id
506
506
  path
507
507
  fullPath
@@ -511,24 +511,24 @@ sshUrlToRepo
511
511
  repository {
512
512
  rootRef
513
513
  }
514
- `,G=`
514
+ `,O=`
515
515
  id
516
516
  name
517
517
  username
518
518
  publicEmail
519
519
  avatarUrl
520
- `,Ge=`
520
+ `,Oe=`
521
521
  color
522
522
  description
523
523
  id
524
524
  title
525
525
  `,Ce=`
526
526
  author {
527
- ${G}
527
+ ${O}
528
528
  }
529
529
  assignees {
530
530
  nodes {
531
- ${G}
531
+ ${O}
532
532
  }
533
533
  }
534
534
  createdAt
@@ -538,7 +538,7 @@ id
538
538
  iid
539
539
  labels {
540
540
  nodes {
541
- ${Ge}
541
+ ${Oe}
542
542
  }
543
543
  }
544
544
  state
@@ -549,9 +549,9 @@ upvotes
549
549
  userNotesCount
550
550
  webUrl
551
551
  milestone {
552
- ${Le}
552
+ ${Ge}
553
553
  }
554
- `,xt=`
554
+ `,kt=`
555
555
  stages {
556
556
  nodes {
557
557
  jobs {
@@ -564,11 +564,11 @@ stages {
564
564
  name
565
565
  }
566
566
  }
567
- `,Se=(t,r,e)=>`
567
+ `,Ue=(t,s,e)=>`
568
568
  id
569
569
  state
570
570
  author {
571
- ${G}
571
+ ${O}
572
572
  }
573
573
  diffRefs {
574
574
  baseSha
@@ -593,12 +593,12 @@ targetBranch
593
593
  sourceBranch
594
594
  assignees {
595
595
  nodes {
596
- ${G}
596
+ ${O}
597
597
  }
598
598
  }
599
599
  reviewers {
600
600
  nodes {
601
- ${G}
601
+ ${O}
602
602
  mergeRequestInteraction {
603
603
  approved
604
604
  reviewState
@@ -608,19 +608,19 @@ reviewers {
608
608
  mergeStatusEnum
609
609
  labels {
610
610
  nodes {
611
- ${Ge}
611
+ ${Oe}
612
612
  }
613
613
  }
614
614
  ${t?"project { path fullPath webUrl }":""}
615
- ${r?`milestone { ${Le} }`:""}
616
- ${e?`headPipeline { ${xt} }`:""}
617
- `,k=t=>`${t.namespace}/${t.name}`,kt=t=>`${t.namespace}/${t.name}`,Ee=t=>{var r;return{id:t.id.replace(z,""),graphQLId:t.id,namespace:Xe(t.fullPath),name:t.path,webUrl:t.webUrl,httpsUrl:t.httpUrlToRepo,sshUrl:t.sshUrlToRepo,defaultBranch:(r=t.repository)!=null&&r.rootRef?{name:t.repository.rootRef}:null,permission:null}},_t={opened:"OPEN",merged:"MERGED",closed:"CLOSED"},_=t=>({id:t.id.replace(ve,""),graphQLId:t.id,name:t.name,username:t.username,email:t.publicEmail,avatarUrl:t.avatarUrl}),Oe=t=>({color:t.color,description:t.description,id:t.id.replace(At,""),graphQLId:t.id,name:t.title}),De=(t,r)=>{var e,s,n,o,a,i,u,l,p,d,c,g;return{id:t.id.replace(Gt,""),graphQLId:t.id,title:t.title,number:parseInt(t.iid,10),state:_t[t.state],commentCount:t.userNotesCount||0,upvoteCount:t.upvotes,author:t.author?_(t.author):null,createdDate:new Date(t.createdAt),isDraft:t.draft,repository:{name:r.name,owner:{login:r.namespace}},headRepository:null,headCommit:{buildStatuses:((n=(s=(e=t.headPipeline)==null?void 0:e.stages)==null?void 0:s.nodes)==null?void 0:n.flatMap(m=>{var R,b;return((b=(R=m.jobs)==null?void 0:R.nodes)==null?void 0:b.map(P=>({description:null,name:P.name??null,state:P.status??null,stage:m.name??null,url:`${r.webUrl}/-/jobs/${P.id.replace(Tt,"")}`})))??[]}))??[]},baseRef:{name:t.targetBranch,oid:((o=t.diffRefs)==null?void 0:o.baseSha)??null},headRef:{name:t.sourceBranch,oid:((a=t.diffRefs)==null?void 0:a.headSha)??null},url:t.webUrl,updatedDate:new Date(t.updatedAt),closedDate:t.mergedAt?new Date(t.mergedAt):null,assignees:(i=t.assignees)!=null&&i.nodes?t.assignees.nodes.map(_):null,reviews:(u=t.reviewers)!=null&&u.nodes?t.reviewers.nodes.map(m=>{var R,b;return{reviewer:_(m),state:(R=m.mergeRequestInteraction)!=null&&R.approved?"APPROVED":((b=m.mergeRequestInteraction)==null?void 0:b.reviewState)==="REVIEWED"?"CHANGES_REQUESTED":"CHANGES_REQUESTED"}}):null,additions:((l=t.diffStatsSummary)==null?void 0:l.additions)||0,deletions:((p=t.diffStatsSummary)==null?void 0:p.deletions)||0,fileCount:((d=t.diffStatsSummary)==null?void 0:d.fileCount)||0,commitCount:t.commitCount||0,mergeableState:Lt[t.mergeStatusEnum],milestone:t.milestone?Ae(t.milestone,r.webUrl):null,labels:((g=(c=t.labels)==null?void 0:c.nodes)==null?void 0:g.map(Oe))??[]}},Ue=(t,r)=>{var e,s;return{author:{avatarUrl:t.author.avatarUrl,email:null,graphQLId:t.author.id,id:t.author.id.replace(ve,""),name:t.author.name,username:t.author.username},assignees:t.assignees.nodes.map(n=>({avatarUrl:n.avatarUrl,email:null,graphQLId:n.id,id:n.id.replace(ve,""),name:n.name,username:n.username})),commentCount:t.userNotesCount,createdDate:new Date(t.createdAt),description:t.description,graphQLId:t.id,id:t.id.replace(Ot,""),labels:((s=(e=t.labels)==null?void 0:e.nodes)==null?void 0:s.map(Oe))??[],number:t.iid,repository:{name:r.name,owner:{login:r.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?Ae(t.milestone,r.webUrl):null}},Ae=(t,r)=>({id:t.id.replace(Ze,""),graphQLId:t.id,number:parseInt(t.iid,10),title:t.title,description:t.description,isOpen:t.state==="active",url:`${r}/-/${t.webPath.replace(/.+?\/-\//,"")}`,startDate:t.startDate?new Date(t.startDate):null,dueDate:t.dueDate?new Date(t.dueDate):null}),W=class extends T{async getCurrentUser(r={}){var n;let s=(n=(await I(this.config,{query:`
615
+ ${s?`milestone { ${Ge} }`:""}
616
+ ${e?`headPipeline { ${kt} }`:""}
617
+ `,k=t=>`${t.namespace}/${t.name}`,_t=t=>`${t.namespace}/${t.name}`,Ee=t=>{var s;return{id:t.id.replace(z,""),graphQLId:t.id,namespace:Ze(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}},Nt={opened:"OPEN",merged:"MERGED",closed:"CLOSED"},_=t=>({id:t.id.replace(Le,""),graphQLId:t.id,name:t.name,username:t.username,email:t.publicEmail,avatarUrl:t.avatarUrl}),Ae=t=>({color:t.color,description:t.description,id:t.id.replace(xt,""),graphQLId:t.id,name:t.title}),ve=(t,s)=>{var e,r,n,o,a,i,u,l,p,d,c,g;return{id:t.id.replace(Ot,""),graphQLId:t.id,title:t.title,number:parseInt(t.iid,10),state:Nt[t.state],commentCount:t.userNotesCount||0,upvoteCount:t.upvotes,author:t.author?_(t.author):null,createdDate:new Date(t.createdAt),isDraft:t.draft,repository:{name:s.name,owner:{login:s.namespace}},headRepository:null,headCommit:{buildStatuses:((n=(r=(e=t.headPipeline)==null?void 0:e.stages)==null?void 0:r.nodes)==null?void 0:n.flatMap(m=>{var R,b;return((b=(R=m.jobs)==null?void 0:R.nodes)==null?void 0:b.map(P=>({description:null,name:P.name??null,state:P.status??null,stage:m.name??null,url:`${s.webUrl}/-/jobs/${P.id.replace(Tt,"")}`})))??[]}))??[]},baseRef:{name:t.targetBranch,oid:((o=t.diffRefs)==null?void 0:o.baseSha)??null},headRef:{name:t.sourceBranch,oid:((a=t.diffRefs)==null?void 0:a.headSha)??null},url:t.webUrl,updatedDate:new Date(t.updatedAt),closedDate:t.mergedAt?new Date(t.mergedAt):null,assignees:(i=t.assignees)!=null&&i.nodes?t.assignees.nodes.map(_):null,reviews:(u=t.reviewers)!=null&&u.nodes?t.reviewers.nodes.map(m=>{var R,b;return{reviewer:_(m),state:(R=m.mergeRequestInteraction)!=null&&R.approved?"APPROVED":((b=m.mergeRequestInteraction)==null?void 0:b.reviewState)==="REVIEWED"?"CHANGES_REQUESTED":"CHANGES_REQUESTED"}}):null,additions:((l=t.diffStatsSummary)==null?void 0:l.additions)||0,deletions:((p=t.diffStatsSummary)==null?void 0:p.deletions)||0,fileCount:((d=t.diffStatsSummary)==null?void 0:d.fileCount)||0,commitCount:t.commitCount||0,mergeableState:Gt[t.mergeStatusEnum],milestone:t.milestone?xe(t.milestone,s.webUrl):null,labels:((g=(c=t.labels)==null?void 0:c.nodes)==null?void 0:g.map(Ae))??[]}},De=(t,s)=>{var e,r;return{author:{avatarUrl:t.author.avatarUrl,email:null,graphQLId:t.author.id,id:t.author.id.replace(Le,""),name:t.author.name,username:t.author.username},assignees:t.assignees.nodes.map(n=>({avatarUrl:n.avatarUrl,email:null,graphQLId:n.id,id:n.id.replace(Le,""),name:n.name,username:n.username})),commentCount:t.userNotesCount,createdDate:new Date(t.createdAt),description:t.description,graphQLId:t.id,id:t.id.replace(At,""),labels:((r=(e=t.labels)==null?void 0:e.nodes)==null?void 0:r.map(Ae))??[],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?xe(t.milestone,s.webUrl):null}},xe=(t,s)=>({id:t.id.replace(Ye,""),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}),J=class extends D{async getCurrentUser(s={}){var n;let r=(n=(await I(this.config,{query:`
618
618
  query getCurrentUser {
619
619
  currentUser {
620
- ${G}
620
+ ${O}
621
621
  }
622
622
  }
623
- `},r)).body.data)==null?void 0:n.currentUser;if(!s)throw new Error("Current user not found.");return{data:_(s)}}async getUserForCommit(r,e={}){var a,i,u,l;let s=k(r.repo),o=(l=(u=(i=(a=(await I(this.config,{query:`
623
+ `},s)).body.data)==null?void 0:n.currentUser;if(!r)throw new Error("Current user not found.");return{data:_(r)}}async getUserForCommit(s,e={}){var a,i,u,l;let r=k(s.repo),o=(l=(u=(i=(a=(await I(this.config,{query:`
624
624
  query getUserForCommit($fullPath: ID!, $oid: String!) {
625
625
  project(fullPath: $fullPath) {
626
626
  repository {
@@ -634,21 +634,21 @@ query getUserForCommit($fullPath: ID!, $oid: String!) {
634
634
  }
635
635
  }
636
636
  }
637
- `,variables:{fullPath:s,oid:r.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(r,e={}){var o,a,i;let n=(i=(a=(o=(await I(this.config,{query:`
637
+ `,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 I(this.config,{query:`
638
638
  query getAccountForEmail($email: String!) {
639
639
  users(search: $email) {
640
640
  nodes {
641
- ${G}
641
+ ${O}
642
642
  }
643
643
  }
644
644
  }
645
- `,variables:{email:r.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:_(n)}}async getAccountForUsername(r,e={}){var o;let n=(o=(await I(this.config,{query:`
645
+ `,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:_(n)}}async getAccountForUsername(s,e={}){var o;let n=(o=(await I(this.config,{query:`
646
646
  query getAccountForUsername($username: String!) {
647
647
  user(username: $username) {
648
- ${G}
648
+ ${O}
649
649
  }
650
650
  }
651
- `,variables:{username:r.username}},e)).body.data)==null?void 0:o.user;if(!n)throw new Error("User not found.");return{data:_(n)}}async getAccountsForRepo(r,e={}){var u,l,p,d,c,g,m;let{repo:{namespace:s,name:n},cursor:o}=r,a=await I(this.config,{query:`
651
+ `,variables:{username:s.username}},e)).body.data)==null?void 0:o.user;if(!n)throw new Error("User not found.");return{data:_(n)}}async getAccountsForRepo(s,e={}){var u,l,p,d,c,g,m;let{repo:{namespace:r,name:n},cursor:o}=s,a=await I(this.config,{query:`
652
652
  query getAccountsForRepo(
653
653
  $fullPath: ID!
654
654
  $after: String
@@ -659,7 +659,7 @@ query getAccountsForRepo(
659
659
  projectMembers(after: $after) {
660
660
  nodes {
661
661
  user {
662
- ${G}
662
+ ${O}
663
663
  }
664
664
  }
665
665
  pageInfo {
@@ -669,22 +669,22 @@ query getAccountsForRepo(
669
669
  }
670
670
  }
671
671
  }
672
- `,variables:{fullPath:`${s}/${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(R=>R.user).filter(R=>R!==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(_))??[]}}async getRepo(r,e={}){var o;let s=k(r),n=await I(this.config,{query:`
672
+ `,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(R=>R.user).filter(R=>R!==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(_))??[]}}async getRepo(s,e={}){var o;let r=k(s),n=await I(this.config,{query:`
673
673
  query getRepo($fullPath: ID!) {
674
674
  project(fullPath: $fullPath) {
675
- ${$e}
675
+ ${Se}
676
676
  }
677
677
  }
678
- `,variables:{fullPath:s}},e);if(!((o=n.body.data)!=null&&o.project))throw new Error(`Repository ${s} not found`);return{data:Ee(n.body.data.project)}}async getRepos(r,e={}){let n=r.map(k).map((u,l)=>`
678
+ `,variables:{fullPath:r}},e);if(!((o=n.body.data)!=null&&o.project))throw new Error(`Repository ${r} not found`);return{data:Ee(n.body.data.project)}}async getRepos(s,e={}){let n=s.map(k).map((u,l)=>`
679
679
  getRepo_${l}: project(fullPath: "${u}") {
680
- ${$e}
680
+ ${Se}
681
681
  }
682
682
  `).join(`
683
683
  `),o=await I(this.config,{query:`
684
684
  query batchGetRepos {
685
685
  ${n}
686
686
  }
687
- `},e);if(!o.body.data)throw new Error(o.statusText||"Unknown error");let a=[],i=[];return r.forEach((u,l)=>{let p=o.body.data[`getRepo_${l}`];p?a.push(Ee(p)):i.push({input:u})}),{data:a,errors:i}}async getReposForCurrentUser(r={},e={}){var o,a,i,u,l,p;let s=await I(this.config,{query:`
687
+ `},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(Ee(p)):i.push({input:u})}),{data:a,errors:i}}async getReposForCurrentUser(s={},e={}){var o,a,i,u,l,p;let r=await I(this.config,{query:`
688
688
  query getReposForCurrentUser($after: String) {
689
689
  projects(membership: true first: 100 after: $after) {
690
690
  pageInfo {
@@ -692,25 +692,25 @@ query getReposForCurrentUser($after: String) {
692
692
  hasNextPage
693
693
  }
694
694
  nodes {
695
- ${$e}
695
+ ${Se}
696
696
  }
697
697
  }
698
698
  }
699
- `,variables:{after:r.cursor}},e);if(!((o=s.body.data)!=null&&o.projects))throw new Error(((a=s.body.errors)==null?void 0:a[0].message)||s.statusText||"Unknown error");let n=((u=(i=s.body.data)==null?void 0:i.projects)==null?void 0:u.nodes)||[];return{pageInfo:(p=(l=s.body.data)==null?void 0:l.projects)==null?void 0:p.pageInfo,data:n.map(Ee)}}async getRefs(r,e,s={}){var u;let n=k(e.repo),o=new URL(`${qe(this.config,s)}/projects/${encodeURIComponent(n)}/repository/${r}`);o.searchParams.set("page",((u=e.page)==null?void 0:u.toString())||"1"),o.searchParams.set("per_page",$.toString());let a=await this.config.request({url:o.toString(),headers:h(s.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(r,e={}){return this.getRefs("branches",r,e)}async getTags(r,e={}){return this.getRefs("tags",r,e)}async getBlame(r,e={}){let s=k(r.repo),n=new URL(`${qe(this.config,e)}/projects/${encodeURIComponent(s)}/repository/files/${encodeURIComponent(r.path)}/blame`);n.searchParams.set("ref",r.ref);let o=await this.config.request({url:n.toString(),headers:h(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(r,e={}){var a,i;let s=vt[r.association],n=await I(this.config,{query:`
699
+ `,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(Ee)}}async getRefs(s,e,r={}){var u;let n=k(e.repo),o=new URL(`${$e(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",$.toString());let a=await this.config.request({url:o.toString(),headers:h(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=k(s.repo),n=new URL(`${$e(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:h(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=Lt[s.association],n=await I(this.config,{query:`
700
700
  query getPullRequestsForUser($username: String! $cursor: String) {
701
701
  user(username: $username) {
702
- ${s}(state:opened first:100 after:$cursor) {
702
+ ${r}(state:opened first:100 after:$cursor) {
703
703
  pageInfo {
704
704
  endCursor
705
705
  hasNextPage
706
706
  }
707
707
  nodes {
708
- ${Se(!0,!0,!0)}
708
+ ${Ue(!0,!0,!0)}
709
709
  }
710
710
  }
711
711
  }
712
712
  }
713
- `,variables:{username:r.username,cursor:r.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[s];if(!o)throw new Error("Unexpected response");return{pageInfo:o.pageInfo,data:((i=o.nodes)==null?void 0:i.map(u=>De(u,N(u.project))))||[]}}async getPullRequestsAssociatedWithUser(r,e={}){var c;let[s,n,o]=((c=r.cursor)==null?void 0:c.split(";"))||[void 0,void 0,void 0],[a,i,u]=await Promise.all([s==="null"?null:this.getPullRequestsForUser({username:r.username,association:"authored",cursor:s},e),n==="null"?null:this.getPullRequestsForUser({username:r.username,association:"assigned",cursor:n},e),o==="null"?null:this.getPullRequestsForUser({username:r.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(r){let{updatedBefore:e,isDraft:s,authorLogin:n,assigneeLogins:o,reviewRequestedLogin:a}=r||{},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"),s!=null&&p("draft",s,"Boolean"),a&&p("reviewerUsername",a,"String"),{variables:i,variableTypes:u,mergeRequestArguments:l}}async getPullRequestsForRepo(r,e={}){var R,b,P;let{cursor:s,repo:n}=r||{},o=k(n),{variables:a,variableTypes:i,mergeRequestArguments:u}=this.getVariablesForPullRequests(r),l={fullPath:o,...a},p=await I(this.config,{query:`
713
+ `,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=>ve(u,j(u.project))))||[]}}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 R,b,P;let{cursor:r,repo:n}=s||{},o=k(n),{variables:a,variableTypes:i,mergeRequestArguments:u}=this.getVariablesForPullRequests(s),l={fullPath:o,...a},p=await I(this.config,{query:`
714
714
  query getPullRequestsForRepo(
715
715
  $fullPath: ID!
716
716
  $after: String
@@ -734,12 +734,12 @@ query getPullRequestsForRepo(
734
734
  hasNextPage
735
735
  }
736
736
  nodes {
737
- ${Se(!1,!0,!0)}
737
+ ${Ue(!1,!0,!0)}
738
738
  }
739
739
  }
740
740
  }
741
741
  }
742
- `,variables:{...l,after:s}},e),d=[],c=(R=p.body.data)==null?void 0:R.project,g=N(c||{fullPath:"",path:"",webUrl:""});return(((b=c==null?void 0:c.mergeRequests)==null?void 0:b.nodes)||[]).forEach(q=>{d.push(De(q,g))}),{pageInfo:(P=c==null?void 0:c.mergeRequests)==null?void 0:P.pageInfo,data:d}}async getPullRequestsForRepos(r,e={}){var c,g,m,R,b;let{cursor:s}=r||{},n=r.repoIds.map(P=>P.toString().startsWith(z)?P:`${z}${P}`),{variables:o,variableTypes:a,mergeRequestArguments:i}=this.getVariablesForPullRequests(r),u={projectIds:n,...o},l=await I(this.config,{query:`
742
+ `,variables:{...l,after:r}},e),d=[],c=(R=p.body.data)==null?void 0:R.project,g=j(c||{fullPath:"",path:"",webUrl:""});return(((b=c==null?void 0:c.mergeRequests)==null?void 0:b.nodes)||[]).forEach(q=>{d.push(ve(q,g))}),{pageInfo:(P=c==null?void 0:c.mergeRequests)==null?void 0:P.pageInfo,data:d}}async getPullRequestsForRepos(s,e={}){var c,g,m,R,b;let{cursor:r}=s||{},n=s.repoIds.map(P=>P.toString().startsWith(z)?P:`${z}${P}`),{variables:o,variableTypes:a,mergeRequestArguments:i}=this.getVariablesForPullRequests(s),u={projectIds:n,...o},l=await I(this.config,{query:`
743
743
  query getPullRequests(
744
744
  $projectIds: [ID!]
745
745
  $after: String
@@ -764,20 +764,20 @@ query getPullRequests(
764
764
  ${i.length?i.join(" "):""}
765
765
  ) {
766
766
  nodes {
767
- ${Se(!1,!1,!1)}
767
+ ${Ue(!1,!1,!1)}
768
768
  }
769
769
  }
770
770
  }
771
771
  }
772
772
  }
773
- `,variables:{...u,after:s}},e),p=[];return(((g=(c=l.body.data)==null?void 0:c.projects)==null?void 0:g.nodes)||[]).forEach(P=>{var Q;let q=N(P);(((Q=P.mergeRequests)==null?void 0:Q.nodes)||[]).forEach(V=>{p.push(De(V,q))})}),{pageInfo:(b=(R=(m=l.body)==null?void 0:m.data)==null?void 0:R.projects)==null?void 0:b.pageInfo,data:p}}async closePullRequest(r,e={}){var l,p,d;let{repo:{namespace:s,name:n},pullRequestId:o}=r,a=`mutation ClosePullRequest($fullPath: ID!, $pullRequestId: String!) {
773
+ `,variables:{...u,after:r}},e),p=[];return(((g=(c=l.body.data)==null?void 0:c.projects)==null?void 0:g.nodes)||[]).forEach(P=>{var N;let q=j(P);(((N=P.mergeRequests)==null?void 0:N.nodes)||[]).forEach(K=>{p.push(ve(K,q))})}),{pageInfo:(b=(R=(m=l.body)==null?void 0:m.data)==null?void 0:R.projects)==null?void 0:b.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!) {
774
774
  mergeRequestUpdate(input: { projectPath: $fullPath, iid: $pullRequestId, state: CLOSED }) {
775
775
  errors,
776
776
  mergeRequest {
777
777
  id
778
778
  }
779
779
  }
780
- }`,u=(l=(await I(this.config,{query:a,variables:{fullPath:`${s}/${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(r,e={}){var d,c,g;let{repo:{namespace:s,name:n},pullRequestId:o,expectedSourceSha:a,mergeStrategy:i}=r,u=`mutation MergePullRequest(
780
+ }`,u=(l=(await I(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(
781
781
  $fullPath: ID!,
782
782
  $pullRequestId: String!,
783
783
  $expectedSourceSha: String!,
@@ -794,41 +794,41 @@ query getPullRequests(
794
794
  id
795
795
  }
796
796
  }
797
- }`,p=(d=(await I(this.config,{query:u,variables:{fullPath:`${s}/${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(r,e={}){var p,d,c;let{repo:{namespace:s,name:n},pullRequestId:o,milestoneGraphQLId:a}=r,i=`mutation SetPullRequestMilestone($fullPath: ID!, $pullRequestId: String!, $milestoneGraphQLId: MilestoneID) {
797
+ }`,p=(d=(await I(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) {
798
798
  mergeRequestSetMilestone(input: { projectPath: $fullPath, iid: $pullRequestId, milestoneId: $milestoneGraphQLId }) {
799
799
  errors,
800
800
  mergeRequest {
801
801
  id
802
802
  }
803
803
  }
804
- }`,u=await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var p,d,c;let{repo:{namespace:s,name:n},pullRequestId:o,isDraft:a}=r,i=`mutation MergeRequestSetDraft($fullPath: ID!, $pullRequestId: String!, $isDraft: Boolean!) {
804
+ }`,u=await I(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!) {
805
805
  mergeRequestSetDraft(input: { projectPath: $fullPath, iid: $pullRequestId, draft: $isDraft }) {
806
806
  errors,
807
807
  mergeRequest {
808
808
  id
809
809
  }
810
810
  }
811
- }`,l=(p=(await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var p,d,c;let{repo:{namespace:s,name:n},pullRequestId:o,reviewerUsernames:a}=r,i=`mutation MergeRequestSetReviewers($fullPath: ID!, $pullRequestId: String!, $reviewerUsernames: [String!]!) {
811
+ }`,l=(p=(await I(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!]!) {
812
812
  mergeRequestSetReviewers(input: { projectPath: $fullPath, iid: $pullRequestId, reviewerUsernames: $reviewerUsernames }) {
813
813
  errors,
814
814
  mergeRequest {
815
815
  id
816
816
  }
817
817
  }
818
- }`,l=(p=(await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var p,d,c;let{repo:{namespace:s,name:n},pullRequestId:o,assigneeUsernames:a}=r,i=`mutation MergeRequestSetAssignees($fullPath: ID!, $pullRequestId: String!, $assigneeUsernames: [String!]!) {
818
+ }`,l=(p=(await I(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!]!) {
819
819
  mergeRequestSetAssignees(input: { projectPath: $fullPath, iid: $pullRequestId, assigneeUsernames: $assigneeUsernames }) {
820
820
  errors,
821
821
  mergeRequest {
822
822
  id
823
823
  }
824
824
  }
825
- }`,l=(p=(await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var l,p,d;let{repo:{namespace:s,name:n},pullRequestId:o,labelGraphQLIds:a}=r,i=`mutation SetPullRequestLabels($fullPath: ID!, $pullRequestId: String!, $labelGraphQLIds: [LabelID!]!) {
825
+ }`,l=(p=(await I(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!]!) {
826
826
  mergeRequestSetLabels(input: { projectPath: $fullPath, iid: $pullRequestId, labelIds: $labelGraphQLIds }) {
827
827
  mergeRequest {
828
828
  id
829
829
  }
830
830
  }
831
- }`;if(!((d=(p=(l=(await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var o,a,i;let s=kt(r),n=await I(this.config,{query:`
831
+ }`;if(!((d=(p=(l=(await I(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=_t(s),n=await I(this.config,{query:`
832
832
  query GetSingleIssue($projectId: ID!, $issueId: String!) {
833
833
  project(fullPath: $projectId) {
834
834
  path
@@ -839,7 +839,7 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
839
839
  }
840
840
  }
841
841
  }
842
- `,variables:{issueId:r.id,projectId:s}},e);if(!((o=n.body.data)!=null&&o.project))throw new Error(`Repository ${s} not found`);if(!((i=(a=n.body.data)==null?void 0:a.project)!=null&&i.issue))throw new Error(`Issue ${r.id} not found`);return{data:Ue(n.body.data.project.issue,N(n.body.data.project))}}getVariablesForIssues(r){let{updatedBefore:e,authorLogin:s,assigneeLogins:n}=r||{},o={},a=[],i=[],u=(l,p,d)=>{a.push(`$${l}: ${d}`),i.push(`${l}: $${l}`),o[l]=p};return e&&u("updatedBefore",e,"Time"),s&&u("authorUsername",s,"String"),n&&u("assigneeUsername",n[0],"String"),{variables:o,variableTypes:a,issueArguments:i}}async getIssuesForRepo(r,e={}){var b,P,q;let{cursor:s,repo:n}=r||{},o=k(n),{variables:a,variableTypes:i,issueArguments:u}=this.getVariablesForIssues(r),l={fullPath:o,...a},p=`
842
+ `,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:De(n.body.data.project.issue,j(n.body.data.project))}}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 b,P,q;let{cursor:r,repo:n}=s||{},o=k(n),{variables:a,variableTypes:i,issueArguments:u}=this.getVariablesForIssues(s),l={fullPath:o,...a},p=`
843
843
  query GetIssuesFromProject(
844
844
  $fullPath: ID!
845
845
  $after: String
@@ -867,7 +867,7 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
867
867
  }
868
868
  }
869
869
  }
870
- }`,d=await I(this.config,{query:p,variables:{...l,after:s}},e),c=[],g=(b=d.body.data)==null?void 0:b.project,m=N(g||{fullPath:"",path:"",webUrl:""});return(((P=g==null?void 0:g.issues)==null?void 0:P.nodes)||[]).forEach(U=>{c.push(Ue(U,m))}),{pageInfo:(q=g==null?void 0:g.issues)==null?void 0:q.pageInfo,data:c.sort((U,Q)=>(U.updatedDate||U.createdDate).getTime()-(Q.updatedDate||Q.createdDate).getTime())}}async getIssuesForRepos(r,e={}){var g,m,R,b,P;let{cursor:s}=r||{},n=r.repoIds.map(q=>q.toString().startsWith(z)?q:`${z}${q}`),{variables:o,variableTypes:a,mergeRequestArguments:i}=this.getVariablesForPullRequests(r),u={projectIds:n,...o},l=`
870
+ }`,d=await I(this.config,{query:p,variables:{...l,after:r}},e),c=[],g=(b=d.body.data)==null?void 0:b.project,m=j(g||{fullPath:"",path:"",webUrl:""});return(((P=g==null?void 0:g.issues)==null?void 0:P.nodes)||[]).forEach(v=>{c.push(De(v,m))}),{pageInfo:(q=g==null?void 0:g.issues)==null?void 0:q.pageInfo,data:c.sort((v,N)=>(v.updatedDate||v.createdDate).getTime()-(N.updatedDate||N.createdDate).getTime())}}async getIssuesForRepos(s,e={}){var g,m,R,b,P;let{cursor:r}=s||{},n=s.repoIds.map(q=>q.toString().startsWith(z)?q:`${z}${q}`),{variables:o,variableTypes:a,mergeRequestArguments:i}=this.getVariablesForPullRequests(s),u={projectIds:n,...o},l=`
871
871
  query GetIssuesFromProject(
872
872
  $projectIds: [ID!]
873
873
  $after: String
@@ -897,19 +897,19 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
897
897
  }
898
898
  }
899
899
  }
900
- }`,p=await I(this.config,{query:l,variables:{...u,after:s}},e),d=[];return(((m=(g=p.body.data)==null?void 0:g.projects)==null?void 0:m.nodes)||[]).forEach(q=>{var V;let U=N(q);(((V=q.issues)==null?void 0:V.nodes)||[]).forEach(Ye=>d.push(Ue(Ye,U)))}),{pageInfo:(P=(b=(R=p.body)==null?void 0:R.data)==null?void 0:b.projects)==null?void 0:P.pageInfo,data:d.sort((q,U)=>(q.updatedDate||q.createdDate).getTime()-(U.updatedDate||U.createdDate).getTime())}}async setIssueStatus(r,e={}){var l,p,d;let{repo:{namespace:s,name:n},issueId:o,status:a}=r,i=`mutation SetIssueState($fullPath: ID!, $issueId: String!, $status: IssueStateEvent!) {
900
+ }`,p=await I(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(q=>{var K;let v=j(q);(((K=q.issues)==null?void 0:K.nodes)||[]).forEach(et=>d.push(De(et,v)))}),{pageInfo:(P=(b=(R=p.body)==null?void 0:R.data)==null?void 0:b.projects)==null?void 0:P.pageInfo,data:d.sort((q,v)=>(q.updatedDate||q.createdDate).getTime()-(v.updatedDate||v.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!) {
901
901
  updateIssue(input: { projectPath: $fullPath, iid: $issueId, stateEvent: $status }) {
902
902
  issue {
903
903
  id
904
904
  }
905
905
  }
906
- }`;if(!((d=(p=(l=(await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var l,p,d;let{repo:{namespace:s,name:n},issueId:o,labelGraphQLIds:a}=r,i=`mutation SetIssueLabels($fullPath: ID!, $issueId: String!, $labelGraphQLIds: [ID!]) {
906
+ }`;if(!((d=(p=(l=(await I(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!]) {
907
907
  updateIssue(input: { projectPath: $fullPath, iid: $issueId, labelIds: $labelGraphQLIds }) {
908
908
  issue {
909
909
  id
910
910
  }
911
911
  }
912
- }`;if(!((d=(p=(l=(await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var p,d,c,g;let{repo:{namespace:s,name:n},issueId:o}=r,a=((p=r.milestoneGraphQLId)==null?void 0:p.replace(Ze,""))??"",i=`mutation SetIssueMilestone($fullPath: ID!, $issueId: String!, $milestoneGraphQLId: ID) {
912
+ }`;if(!((d=(p=(l=(await I(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(Ye,""))??"",i=`mutation SetIssueMilestone($fullPath: ID!, $issueId: String!, $milestoneGraphQLId: ID) {
913
913
  updateIssue(input: { projectPath: $fullPath, iid: $issueId, milestoneId: $milestoneGraphQLId }) {
914
914
  errors
915
915
  issue {
@@ -919,14 +919,14 @@ query GetSingleIssue($projectId: ID!, $issueId: String!) {
919
919
  }
920
920
  }
921
921
  }
922
- }`,u=await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var p,d,c;let{repo:{namespace:s,name:n},issueId:o,assigneeUsernames:a}=r,i=`mutation SetIssueAssignees($fullPath: ID!, $issueId: String!, $assigneeUsernames: [String!]!) {
922
+ }`,u=await I(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!]!) {
923
923
  issueSetAssignees(input: { projectPath: $fullPath, iid: $issueId, assigneeUsernames: $assigneeUsernames }) {
924
924
  errors,
925
925
  issue {
926
926
  id
927
927
  }
928
928
  }
929
- }`,l=(p=(await I(this.config,{query:i,variables:{fullPath:`${s}/${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(r,e={}){var i,u,l,p,d,c,g;let{repo:{namespace:s,name:n},cursor:o}=r,a=await I(this.config,{query:`
929
+ }`,l=(p=(await I(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 I(this.config,{query:`
930
930
  query getLabelsForRepo(
931
931
  $fullPath: ID!
932
932
  $after: String
@@ -937,7 +937,7 @@ query getLabelsForRepo(
937
937
  webUrl
938
938
  milestones(after: $after) {
939
939
  nodes {
940
- ${Le}
940
+ ${Ge}
941
941
  }
942
942
  pageInfo {
943
943
  endCursor
@@ -946,7 +946,7 @@ query getLabelsForRepo(
946
946
  }
947
947
  }
948
948
  }
949
- `,variables:{fullPath:`${s}/${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 R,b;return Ae(m,((b=(R=a.body.data)==null?void 0:R.project)==null?void 0:b.webUrl)||"")}))??[]}}async getLabelsForRepo(r,e={}){var i,u,l,p,d,c,g;let{repo:{namespace:s,name:n},cursor:o}=r,a=await I(this.config,{query:`
949
+ `,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 R,b;return xe(m,((b=(R=a.body.data)==null?void 0:R.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:o}=s,a=await I(this.config,{query:`
950
950
  query getLabelsForRepo(
951
951
  $fullPath: ID!
952
952
  $after: String
@@ -956,7 +956,7 @@ query getLabelsForRepo(
956
956
  ) {
957
957
  labels(after: $after) {
958
958
  nodes {
959
- ${Ge}
959
+ ${Oe}
960
960
  }
961
961
  pageInfo {
962
962
  endCursor
@@ -965,4 +965,4 @@ query getLabelsForRepo(
965
965
  }
966
966
  }
967
967
  }
968
- `,variables:{fullPath:`${s}/${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(Oe))??[]}}};var L="https://api.atlassian.com/ex/jira",te=100,Qt=(t,r)=>{var s,n,o,a,i,u,l;let e=t.fields.assignee;return{id:t.id,commentCount:t.fields.comment.comments.length,number:t.key,title:t.fields.summary,url:r?`${r}/browse/${t.key}`:null,createdDate:new Date(t.fields.created),author:{id:t.fields.creator.accountId,name:t.fields.creator.displayName,email:t.fields.creator.emailAddress,avatarUrl:t.fields.creator.avatarUrls["32x32"],username:t.fields.creator.displayName},updatedDate:new Date(t.fields.updated),assignees:e?[{id:e.accountId,name:e.displayName,email:e.emailAddress,avatarUrl:e.avatarUrls["32x32"],username:e.displayName}]:[],description:null,repository:null,state:{name:(s=t.fields.status)==null?void 0:s.name,color:(o=(n=t.fields.status)==null?void 0:n.statusCategory)==null?void 0:o.colorName},statusTransitions:((a=t.transitions)==null?void 0:a.map(Nt))??[],components:((i=t.fields.components)==null?void 0:i.map(jt))??[],type:t.fields.issuetype.name,upvoteCount:((u=t.fields.votes)==null?void 0:u.votes)||0,labels:((l=t.fields.labels)==null?void 0:l.map(p=>({color:null,description:null,id:null,name:p})))??[]}},Nt=t=>({name:t.name,id:t.id}),jt=t=>({description:t.description??null,id:t.id,name:t.name}),Bt=t=>({id:t.accountId,name:t.displayName,email:t.emailAddress,avatarUrl:t.avatarUrls["48x48"],username:t.displayName}),J=class extends E{constructor(){super(...arguments);this._resourceUrlCache={}}async getResourceUrl(e,s={}){var a;let n=s.token||this.config.token;if(!n)return null;let o=this._resourceUrlCache[n];return o?o[e.resourceId]??null:(await this.getJiraResourcesForCurrentUser(s),((a=this._resourceUrlCache[n])==null?void 0:a[e.resourceId])??null)}async getCurrentUserForResource(e,s={}){let n=await this.config.request({url:`${s.baseUrl||L}/${e.resourceId}/rest/api/2/myself`,headers:h(s.token||this.config.token)});return{data:{name:n.body.displayName,email:n.body.emailAddress,avatarUrl:n.body.avatarUrls["48x48"],id:n.body.accountId,username:n.body.displayName}}}async getJiraResourcesForCurrentUser(e={}){let s=await this.config.request({url:`${e.baseUrl||"https://api.atlassian.com/"}/oauth/token/accessible-resources`,headers:h(e.token||this.config.token)}),n=e.token||this.config.token,o=n?this._resourceUrlCache[n]||{}:void 0,a=s.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,s={}){let n=new URL(`${s.baseUrl||L}/${e.resourceId}/rest/api/2/project/search`);n.searchParams.set("maxResults",te.toString()),e.cursor&&n.searchParams.set("startAt",e.cursor);let o=await this.config.request({url:n.toString(),headers:h(s.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,s={}){let n=[];return await Promise.all(e.resourceIds.map(async o=>{let a=await this.getJiraProjectsForResource({resourceId:o},s);n.push(...a.data)})),{data:n}}async getAccountsForJiraProject(e,s={}){let{resourceId:n,projectKey:o,cursor:a}=e,i=new URL(`${s.baseUrl||L}/${n}/rest/api/2/user/assignable/search`);i.searchParams.set("maxResults",te.toString()),a&&i.searchParams.set("startAt",a),i.searchParams.set("project",o);let u=await this.config.request({url:i.toString(),headers:h(s.token||this.config.token)});return{pageInfo:{hasNextPage:u.body.length!==0,endCursor:((a?parseInt(a):0)+u.body.length).toString()},data:u.body.filter(l=>l.accountType!=="app"&&l.active).map(Bt)}}async getComponentsForJiraProject(e,s={}){let{resourceId:n,projectIdOrKey:o}=e,a=new URL(`${s.baseUrl||L}/${n}/rest/api/2/project/${o}/components`);return{data:(await this.config.request({url:a.toString(),headers:h(s.token||this.config.token)})).body}}async getIssuesForProject(e,s={}){let{assigneeLogins:n,authorLogin:o,mentionLogin:a,project:i}=e||{},u=[`project = "${i}"`,"statusCategory != Done"];o&&u.push(`creator in ("${o}")`),n&&n.length!==0&&u.push(`assignee in ("${n.join('", "')}")`),a&&u.push(`comment ~ "${a}"`);let l=await this.config.request({url:`${s.baseUrl||L}/${e.resourceId}/rest/api/2/search?jql=${u.join(" AND ")}&startAt=0&maxResults=${te}&fields=${["assignee","comment","summary","created","creator","updated","votes","issuetype","status","labels","components"].join(",")}&expand=transitions`,headers:h(s.token||this.config.token)}),p=await this.getResourceUrl({resourceId:e.resourceId},s);return{data:l.body.issues.map(d=>Qt(d,p))}}async setIssueStatus(e,s={}){let{resourceId:n,issueId:o,status:a}=e,i={transition:{id:a}};await this.config.request({method:"POST",url:`${s.baseUrl||L}/${n}/rest/api/2/issue/${o}/transitions`,body:JSON.stringify(i),headers:{...h(s.token||this.config.token),"Content-Type":"application/json"}})}async setIssueAssignee(e,s={}){let{resourceId:n,issueId:o,assigneeId:a}=e,i={accountId:a};await this.config.request({method:"PUT",url:`${s.baseUrl||L}/${n}/rest/api/2/issue/${o}/assignee`,body:JSON.stringify(i),headers:{...h(s.token||this.config.token),"Content-Type":"application/json"}})}async setIssueComponents(e,s={}){let{resourceId:n,issueId:o,componentIds:a}=e,i={fields:{components:a.map(u=>({id:u}))}};await this.config.request({method:"PUT",url:`${s.baseUrl||L}/${n}/rest/api/2/issue/${o}`,body:JSON.stringify(i),headers:{...h(s.token||this.config.token),"Content-Type":"application/json"}})}async setIssueLabels(e,s={}){let{resourceId:n,issueId:o,labelNames:a}=e,i={fields:{labels:a}};if(!(await this.config.request({method:"PUT",url:`${s.baseUrl||L}/${n}/rest/api/2/issue/${o}?returnIssue=true`,body:JSON.stringify(i),headers:{...h(s.token||this.config.token),"Content-Type":"application/json"}})).body.id)throw new Error("Could not set issue labels")}async getLabelsForResource(e,s={}){let{resourceId:n,cursor:o}=e,a=new URL(`${s.baseUrl||L}/${n}/rest/api/2/label`);a.searchParams.set("maxResults",te.toString()),o&&a.searchParams.set("startAt",o);let i=await this.config.request({url:a.toString(),headers:h(s.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 O="https://api.trello.com",Ft=1e3,Mt=(t,r)=>{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,createdDate:new Date(e.toISOString()),author:null,updatedDate:new Date(t.dateLastActivity),assignees:t.idMembers.map(s=>({id:s,username:null,name:null,email:null,avatarUrl:null})),description:null,state:r[t.idList??""]?{name:r[t.idList].name,color:null}:null,type:null,repository:null,upvoteCount:t.badges.votes,labels:t.labels.map(s=>({color:s.color,description:null,id:s.id,name:s.name}))}},H=class extends E{async getCurrentUser(r,e={}){let s=await this.config.request({url:`${e.baseUrl||O}/1/members/me?key=${r.appKey}&token=${e.token||this.config.token}`,headers:h(e.token||this.config.token)});return{data:{name:s.body.fullName,email:s.body.email,avatarUrl:s.body.avatarHash?`https://trello-members.s3.amazonaws.com/${s.body.id}/${s.body.avatarHash}/50.png`:null,id:s.body.id,username:s.body.username}}}async getBoardsForCurrentUser(r,e={}){return{data:(await this.config.request({url:`${e.baseUrl||O}/1/members/me/boards?fields=name&key=${r.appKey}&token=${e.token||this.config.token}&filter=open`,headers:h(e.token||this.config.token)})).body.map(n=>({id:n.id,name:n.name}))}}async getListsForTrelloBoard(r,e={}){let{appKey:s,boardId:n}=r;return{data:(await this.config.request({url:`${e.baseUrl||O}/1/boards/${n}/lists?key=${s}&token=${e.token||this.config.token}`,headers:h(e.token||this.config.token)})).body}}async getAccountsForTrelloBoard(r,e={}){let{appKey:s,boardId:n}=r;return{data:(await this.config.request({url:`${e.baseUrl||O}/1/boards/${n}/members?key=${s}&token=${e.token||this.config.token}`,headers:h(e.token||this.config.token)})).body.map(a=>({id:a.id,name:a.fullName,username:a.username,email:null,avatarUrl:null}))}}async getIssuesForBoard(r,e={}){let s=["-is:archived","sort:edited"],{appKey:n,boardId:o,filterText:a,assigneeLogins:i,trelloBoardListsById:u}=r||{};i&&s.push("@me");let l=`${a?`${a}`:""}${s.join(" ")} board:${o}`;return{data:(await this.config.request({url:`${e.baseUrl||O}/1/search?key=${n}&query=${l}&cards_limit=${Ft}&token=${e.token||this.config.token}`,headers:h(e.token||this.config.token)})).body.cards.map(d=>Mt(d,u||{}))}}async updateIssue(r,e,s,n){return await this.config.request({method:"PUT",url:`${n.baseUrl||O}/1/cards/${e}?key=${r}&token=${n.token||this.config.token}&${s}`,headers:h(n.token||this.config.token)})}async setIssueStatus(r,e={}){let{appKey:s,cardId:n,status:o}=r,a=`idList=${o}`;if(!(await this.updateIssue(s,n,a,e)).body.id)throw new Error("Could not set issue status")}async setIssueAssignees(r,e={}){let{appKey:s,cardId:n,assigneeIds:o}=r,a=`idMembers=${encodeURIComponent(o.join(","))}`;if(!(await this.updateIssue(s,n,a,e)).body.id)throw new Error("Could not set issue status")}async setIssueLabels(r,e={}){let{appKey:s,cardId:n,labelIds:o}=r;if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||O}/1/cards/${n}?key=${s}&token=${e.token||this.config.token}&idLabels=${encodeURIComponent(o.join(","))}`,headers:h(e.token||this.config.token)})).body.id)throw new Error("Could not set issue status")}async setIssueArchived(r,e={}){let{appKey:s,cardId:n,archived:o}=r;if(!(await this.config.request({method:"PUT",url:`${e.baseUrl||O}/1/cards/${n}?key=${s}&token=${e.token||this.config.token}&closed=${o}`,headers:h(e.token||this.config.token)})).body.id)throw new Error("Could not update issue archived status")}async getLabelsForBoard(r,e={}){let{appKey:s,boardId:n}=r;return{data:(await this.config.request({url:`${e.baseUrl||O}/1/boards/${n}/labels?key=${s}&token=${e.token||this.config.token}`,headers:h(e.token||this.config.token)})).body.map(a=>({color:a.color,description:null,id:a.id,name:a.name}))}}};var se={};A(se,{getIssueUniqueId:()=>zt,getPullRequestUniqueId:()=>Wt});var zt=(t,r,e,s="")=>{let n=[];return n.push(s),n.push(t),n.push(r),n.push(e),JSON.stringify(n)},Wt=(t,r,e,s,n="")=>{let o=[];return o.push(n),o.push(t),o.push(r),o.push(e),o.push(s),JSON.stringify(o)};var re={};A(re,{getIssueUniqueId:()=>Jt,getPullRequestUniqueId:()=>Ht});var Jt=(t,r)=>JSON.stringify(["",t,r]),Ht=(t,r)=>JSON.stringify(["",t,r]);var ne={};A(ne,{getIssueUniqueId:()=>Vt,getPullRequestUniqueId:()=>Kt});var Vt=(t,r,e)=>JSON.stringify([e,t,r]),Kt=(t,r,e)=>JSON.stringify([e,t,r]);var ae={};A(ae,{getIssueUniqueId:()=>Xt,getPullRequestRank:()=>Yt,getPullRequestUniqueId:()=>Zt});var Xt=(t,r="")=>{let e=[];return e.push(r),e.push(t),JSON.stringify(e)},Zt=(t,r="")=>{let e=[];return e.push(r),e.push(t),JSON.stringify(e)},Yt=(t,r,e)=>{var a,i,u;let s=0,n,o;return(a=t.reviews)==null||a.forEach(l=>{l.reviewer.id===r&&(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)===r?s+=1e3:(u=t.assignees)!=null&&u.find(l=>l.id===r)?s+=900:n==="REVIEW_REQUESTED"?s+=800:e&&(s+=700),o==="APPROVED"?t.mergeableState==="MERGEABLE"?s+=100:t.mergeableState==="CONFLICTS"?s+=90:s+=80:o=="CHANGES_REQUESTED"&&(s+=70),s};var oe={};A(oe,{getIssueUniqueId:()=>es,getPullRequestUniqueId:()=>ts});var es=(t,r="")=>{let e=[];return e.push(r),e.push(t),JSON.stringify(e)},ts=(t,r="")=>{let e=[];return e.push(r),e.push(t),JSON.stringify(e)};var ie={};A(ie,{getIssueUniqueId:()=>ss,getJiraServerIssueUniqueId:()=>rs});var ss=(t,r,e)=>{let s=[];return s.push(""),s.push(t),s.push(r),s.push(e),JSON.stringify(s)},rs=(t,r,e)=>{let s=[];return s.push(e),s.push(""),s.push(t),s.push(r),JSON.stringify(s)};var ue={};A(ue,{getIssueUniqueId:()=>ns});var ns=(t,r,e,s="")=>{let n=[];return n.push(s),n.push(t),n.push(r),n.push(e),JSON.stringify(n)};var as=t=>{let r={request:t==null?void 0:t.request};return{azureDevOps:new j({...r,...t==null?void 0:t.azureDevOps}),bitbucket:new B({...r,...t==null?void 0:t.bitbucket}),bitbucketServer:new F({...r,...t==null?void 0:t.bitbucketServer}),github:new M({...r,...t==null?void 0:t.github}),gitlab:new W({...r,...t==null?void 0:t.gitlab}),jira:new J({...r,...t==null?void 0:t.jira}),trello:new H({...r,...t==null?void 0:t.trello})}},os=as;var is={azureDevOps:se,bitbucket:re,bitbucketServer:ne,github:ae,gitlab:oe,jira:ie,trello:ue};
968
+ `,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(Ae))??[]}}};var G="https://api.atlassian.com/ex/jira",se=100,jt=(t,s)=>{var r,n,o,a;let e=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,createdDate:new Date(t.fields.created),author:{id:t.fields.creator.accountId,name:t.fields.creator.displayName,email:t.fields.creator.emailAddress,avatarUrl:t.fields.creator.avatarUrls["32x32"],username:t.fields.creator.displayName},updatedDate:new Date(t.fields.updated),assignees:e?[{id:e.accountId,name:e.displayName,email:e.emailAddress,avatarUrl:e.avatarUrls["32x32"],username:e.displayName}]:[],description:null,repository:null,state:Mt(t.fields.status),statusTransitions:((r=t.transitions)==null?void 0:r.map(Qt))??[],components:((n=t.fields.components)==null?void 0:n.map(Bt))??[],type:t.fields.issuetype.name,upvoteCount:((o=t.fields.votes)==null?void 0:o.votes)||0,labels:((a=t.fields.labels)==null?void 0:a.map(i=>({color:null,description:null,id:null,name:i})))??[]}},Qt=t=>({name:t.name,id:t.id}),Bt=t=>({description:t.description??null,id:t.id,name:t.name}),Ft=t=>({id:t.accountId,name:t.displayName,email:t.emailAddress,avatarUrl:t.avatarUrls["48x48"],username:t.displayName}),Mt=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}},W=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.config.request({url:`${r.baseUrl||G}/${e.resourceId}/rest/api/2/myself`,headers:h(r.token||this.config.token)});return{data:{name:n.body.displayName,email:n.body.emailAddress,avatarUrl:n.body.avatarUrls["48x48"],id:n.body.accountId,username:n.body.displayName}}}async getJiraResourcesForCurrentUser(e={}){let r=await this.config.request({url:`${e.baseUrl||"https://api.atlassian.com/"}/oauth/token/accessible-resources`,headers:h(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||G}/${e.resourceId}/rest/api/2/project/search`);n.searchParams.set("maxResults",se.toString()),e.cursor&&n.searchParams.set("startAt",e.cursor);let o=await this.config.request({url:n.toString(),headers:h(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=new URL(`${r.baseUrl||G}/${n}/rest/api/2/user/assignable/search`);i.searchParams.set("maxResults",se.toString()),a&&i.searchParams.set("startAt",a),i.searchParams.set("project",o);let u=await this.config.request({url:i.toString(),headers:h(r.token||this.config.token)});return{pageInfo:{hasNextPage:u.body.length!==0,endCursor:((a?parseInt(a):0)+u.body.length).toString()},data:u.body.filter(l=>l.accountType!=="app"&&l.active).map(Ft)}}async getComponentsForJiraProject(e,r={}){let{resourceId:n,projectIdOrKey:o}=e,a=new URL(`${r.baseUrl||G}/${n}/rest/api/2/project/${o}/components`);return{data:(await this.config.request({url:a.toString(),headers:h(r.token||this.config.token)})).body}}async getIssuesForProject(e,r={}){let{assigneeLogins:n,authorLogin:o,mentionLogin:a,project:i}=e||{},u=[`project = "${i}"`,"statusCategory != Done"];o&&u.push(`creator in ("${o}")`),n&&n.length!==0&&u.push(`assignee in ("${n.join('", "')}")`),a&&u.push(`comment ~ "${a}"`);let l=await this.config.request({url:`${r.baseUrl||G}/${e.resourceId}/rest/api/2/search?jql=${u.join(" AND ")}&startAt=0&maxResults=${se}&fields=${["assignee","comment","summary","created","creator","updated","votes","issuetype","status","labels","components"].join(",")}&expand=transitions`,headers:h(r.token||this.config.token)}),p=await this.getResourceUrl({resourceId:e.resourceId},r);return{data:l.body.issues.map(d=>jt(d,p))}}async setIssueStatus(e,r={}){let{resourceId:n,issueId:o,status:a}=e,i={transition:{id:a}};await this.config.request({method:"POST",url:`${r.baseUrl||G}/${n}/rest/api/2/issue/${o}/transitions`,body:JSON.stringify(i),headers:{...h(r.token||this.config.token),"Content-Type":"application/json"}})}async setIssueAssignee(e,r={}){let{resourceId:n,issueId:o,assigneeId:a}=e,i={accountId:a};await this.config.request({method:"PUT",url:`${r.baseUrl||G}/${n}/rest/api/2/issue/${o}/assignee`,body:JSON.stringify(i),headers:{...h(r.token||this.config.token),"Content-Type":"application/json"}})}async setIssueComponents(e,r={}){let{resourceId:n,issueId:o,componentIds:a}=e,i={fields:{components:a.map(u=>({id:u}))}};await this.config.request({method:"PUT",url:`${r.baseUrl||G}/${n}/rest/api/2/issue/${o}`,body:JSON.stringify(i),headers:{...h(r.token||this.config.token),"Content-Type":"application/json"}})}async setIssueLabels(e,r={}){let{resourceId:n,issueId:o,labelNames:a}=e,i={fields:{labels:a}};if(!(await this.config.request({method:"PUT",url:`${r.baseUrl||G}/${n}/rest/api/2/issue/${o}?returnIssue=true`,body:JSON.stringify(i),headers:{...h(r.token||this.config.token),"Content-Type":"application/json"}})).body.id)throw new Error("Could not set issue labels")}async getLabelsForResource(e,r={}){let{resourceId:n,cursor:o}=e,a=new URL(`${r.baseUrl||G}/${n}/rest/api/2/label`);a.searchParams.set("maxResults",se.toString()),o&&a.searchParams.set("startAt",o);let i=await this.config.request({url:a.toString(),headers:h(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 zt=100,Jt=t=>{var r,n,o,a,i,u,l,p,d;let s=t.fields.assignee,e=new URL(t.self);return{id:t.id,commentCount:((o=(n=(r=t.fields)==null?void 0:r.comment)==null?void 0:n.comments)==null?void 0:o.length)||0,number:t.key,title:t.fields.summary,url:`${e.origin}/browse/${t.key}`,createdDate:new Date(t.fields.created),author:{id:t.fields.creator.key,name:t.fields.creator.displayName,email:t.fields.creator.emailAddress,avatarUrl:t.fields.creator.avatarUrls["32x32"],username:t.fields.creator.displayName},updatedDate:new Date(t.fields.updated),assignees:s?[{id:s.key,name:s.displayName,email:s.emailAddress,avatarUrl:s.avatarUrls["32x32"],username:s.displayName}]:[],description:null,repository:null,state:{name:(a=t.fields.status)==null?void 0:a.name,color:(u=(i=t.fields.status)==null?void 0:i.statusCategory)==null?void 0:u.colorName},statusTransitions:((l=t.transitions)==null?void 0:l.map(Wt))??[],type:t.fields.issuetype.name,upvoteCount:((p=t.fields.votes)==null?void 0:p.votes)||0,labels:((d=t.fields.labels)==null?void 0:d.map(c=>({color:null,description:null,id:null,name:c})))??[]}},Wt=t=>({name:t.name,id:t.id}),H=class extends D{async getCurrentUser(s){let e=await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/myself`,headers:h((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}}}async getJiraProjects(s){return{data:(await this.config.request({url:`${(s==null?void 0:s.baseUrl)||this.config.baseUrl}/rest/api/2/project`,headers:h((s==null?void 0:s.token)||this.config.token)})).body.map(r=>({id:r.id,name:r.name}))}}async getIssuesForProject(s,e){let{assigneeLogins:r,authorLogin:n,mentionLogin:o,project:a}=s||{},i=[`project = "${a}"`];return n&&i.push(`creator in ("${n}")`),r&&r.length!==0&&i.push(`assignee in ("${r.join('", "')}")`),o&&i.push(`comment ~ "${o}"`),{data:(await this.config.request({url:`${(e==null?void 0:e.baseUrl)||this.config.baseUrl}/rest/api/2/search?jql=${i.join(" AND ")}&startAt=0&maxResults=${zt}&fields=${["assignee","comment","summary","created","creator","updated","votes","issuetype","status","labels"].join(",")}&expand=transitions`,headers:h((e==null?void 0:e.token)||this.config.token)})).body.issues.map(Jt)}}async setIssueStatus(s,e){let{issueId:r,status:n}=s,o={transition:{id:n}};try{await this.config.request({method:"POST",url:`${(e==null?void 0:e.baseUrl)||this.config.baseUrl}/rest/api/2/issue/${r}/transitions`,body:JSON.stringify(o),headers:{...h((e==null?void 0:e.token)||this.config.token),"Content-Type":"application/json"}})}catch(a){if(a.message=="Unexpected end of JSON input")return;throw new Error("Could not set issue status")}}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:h(s.token||this.config.token)})).body.results.map(({displayName:r})=>({color:null,description:null,id:null,name:r}))}}};var A="https://api.trello.com",Ht=1e3,Vt=(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,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})),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}))}},V=class extends U{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:h(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}}}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:h(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:h(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:h(e.token||this.config.token)})).body.map(a=>({id:a.id,name:a.fullName,username:a.username,email:null,avatarUrl: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||A}/1/search?key=${n}&query=${l}&cards_limit=${Ht}&token=${e.token||this.config.token}`,headers:h(e.token||this.config.token)})).body.cards.map(d=>Vt(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:h(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||A}/1/cards/${n}?key=${r}&token=${e.token||this.config.token}&idLabels=${encodeURIComponent(o.join(","))}`,headers:h(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||A}/1/cards/${n}?key=${r}&token=${e.token||this.config.token}&closed=${o}`,headers:h(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:h(e.token||this.config.token)})).body.map(a=>({color:a.color,description:null,id:a.id,name:a.name}))}}};var re={};x(re,{getIssueUniqueId:()=>Kt,getPullRequestUniqueId:()=>Xt});var Kt=(t,s,e,r="")=>{let n=[];return n.push(r),n.push(t),n.push(s),n.push(e),JSON.stringify(n)},Xt=(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 ne={};x(ne,{getIssueUniqueId:()=>Zt,getPullRequestUniqueId:()=>Yt});var Zt=(t,s)=>JSON.stringify(["",t,s]),Yt=(t,s)=>JSON.stringify(["",t,s]);var ae={};x(ae,{getIssueUniqueId:()=>es,getPullRequestUniqueId:()=>ts});var es=(t,s,e)=>JSON.stringify([e,t,s]),ts=(t,s,e)=>JSON.stringify([e,t,s]);var oe={};x(oe,{getIssueUniqueId:()=>ss,getPullRequestRank:()=>ns,getPullRequestUniqueId:()=>rs});var ss=(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)},ns=(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 ie={};x(ie,{getIssueUniqueId:()=>as,getPullRequestUniqueId:()=>os});var as=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)},os=(t,s="")=>{let e=[];return e.push(s),e.push(t),JSON.stringify(e)};var ue={};x(ue,{getIssueUniqueId:()=>is,getJiraServerIssueUniqueId:()=>us});var is=(t,s,e)=>{let r=[];return r.push(""),r.push(t),r.push(s),r.push(e),JSON.stringify(r)},us=(t,s,e)=>{let r=[];return r.push(e),r.push(""),r.push(t),r.push(s),JSON.stringify(r)};var le={};x(le,{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 ps=t=>{let s={request:t==null?void 0:t.request};return{azureDevOps:new Q({...s,...t==null?void 0:t.azureDevOps}),bitbucket:new B({...s,...t==null?void 0:t.bitbucket}),bitbucketServer:new F({...s,...t==null?void 0:t.bitbucketServer}),github:new M({...s,...t==null?void 0:t.github}),gitlab:new J({...s,...t==null?void 0:t.gitlab}),jira:new W({...s,...t==null?void 0:t.jira}),jiraServer:new H({...s,...t==null?void 0:t.jiraServer}),trello:new V({...s,...t==null?void 0:t.trello})}},ds=ps;var cs={azureDevOps:re,bitbucket:ne,bitbucketServer:ae,github:oe,gitlab:ie,jira:ue,trello:le};