@candriajs/git-neko-kit 0.7.3 → 0.7.4

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.cjs CHANGED
@@ -1,4 +1,6 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var mt=require('path'),url=require('url'),Ve=require('fs'),ht=require('color-convert'),q=require('dayjs'),yt=require('dayjs/plugin/relativeTime.js'),wt=require('git-url-parse'),ft=require('language-colors'),uuid=require('uuid'),$=require('axios'),httpProxyAgent=require('http-proxy-agent'),httpsProxyAgent=require('https-proxy-agent'),socksProxyAgent=require('socks-proxy-agent'),lodashEs=require('lodash-es'),lt=require('crypto'),vt=require('jsonwebtoken');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var mt__default=/*#__PURE__*/_interopDefault(mt);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var ht__default=/*#__PURE__*/_interopDefault(ht);var q__default=/*#__PURE__*/_interopDefault(q);var yt__default=/*#__PURE__*/_interopDefault(yt);var wt__default=/*#__PURE__*/_interopDefault(wt);var ft__default=/*#__PURE__*/_interopDefault(ft);var $__default=/*#__PURE__*/_interopDefault($);var lt__default=/*#__PURE__*/_interopDefault(lt);var vt__default=/*#__PURE__*/_interopDefault(vt);var ct=Object.defineProperty;var y=(p,e)=>()=>(p&&(e=p(p=0)),e);var k=(p,e)=>{for(var a in e)ct(p,a,{get:e[a],enumerable:true});};var fe,K,I,be,M,P,Te,Re,Ce,d,ke,L,V,N,Pe,v,A,Ie,Ee,Y,ve,m,Ae,xe,$e,Me,Le,f,T,Ne,Ue,Se,qe,U,S,R,Oe,X,x,De,Q,E,Be=y(()=>{fe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",K="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",I="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",be="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",M="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",P="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Te="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A",Re="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u6216\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",Ce="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",d="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u62E5\u6709\u8005\u548C\u4ED3\u5E93\u540D\u79F0",ke="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",L="\u55B5\u545C~ \u53C2\u6570\u597D\u50CF\u4E0D\u592A\u5BF9\u5462",V="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",N="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Pe="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",v="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",A="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Ie="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Ee="\u55B5\u545C~ \u6743\u9650\u4E0D\u6B63\u786E\uFF0C\u8BF7\u68C0\u67E5\u6743\u9650",Y="\u55B5\u545C~ \u8FD9\u4E2A\u5237\u65B0\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",ve="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",m="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ae="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",xe="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",$e="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",Me="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",Le="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",f="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",T="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",Ne="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",Ue="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u9501\u5B9A\u5931\u8D25\u54E6",Se="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u5931\u8D25\u54E6",qe="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u89E3\u9501\u5931\u8D25\u54E6",U="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",S="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",R="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",Oe="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",X="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",x="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",De="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",Q="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",E="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var He,Z,ze,We,Ge,je,Fe=y(()=>{He="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",Z="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",ze="\u55B5\u545C~ WebHook \u7B7E\u540D\u6210\u529F",We="\u55B5\u545C~ \u8BAE\u9898\u9501\u5B9A\u6210\u529F",Ge="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",je="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u6210\u529F";});var _t,Je,Ke=y(()=>{_t=url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))),Je=Object.freeze(mt__default.default.join(_t,"../..").replace(/\\/g,"/"));});function Ye(p="",e=""){e=e||Je;try{let a=`${e}/${p}`;if(!Ve__default.default.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let r=Ve__default.default.readFileSync(a,"utf8");return JSON.parse(r)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${p}`,a),{}}}async function Xe(p="zh-cn"){let e=String(p).toLowerCase();await import(`dayjs/locale/${e}.js`),q__default.default.locale(e);}async function _(p,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await Xe(e),q__default.default(p).format(a)}async function bt(p,e="zh-cn"){return await Xe(e),q__default.default.extend(yt__default.default),q__default.default(p).fromNow()}function Qe(p){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=p.match(e);if(a){let o=a[1];p=o.startsWith("https")?o:`https://${o}`;}let r=wt__default.default(p);return {owner:r.owner,repo:r.name}}function Tt(p){if(!Array.isArray(p))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(p.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!p.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${ht__default.default.rgb.hex(p)}`}function ee(p){return p=String(p).toLowerCase(),Tt(ft__default.default[p].color)??"#ededed"}async function Rt(p,e){return Promise.resolve(Array.from({length:Math.ceil(p.length/e)},(a,r)=>p.slice(r*e,r*e+e)))}async function Ze(p){let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,r=Array.from(p.matchAll(e),n=>n[1]),o=Array.from(p.matchAll(a),n=>String(n[1]).toLowerCase()==="no"?0:parseInt(n[1]));if(!r.length||!o.length)return {total:0,contributions:[]};let t=r.map((n,u)=>({date:n,count:o[u]})).sort((n,u)=>n.date.localeCompare(u.date)),s=await Rt(t,7);return {total:o.reduce((n,u)=>n+u,0),contributions:s}}var te=y(()=>{Ke();});var ae,et=y(()=>{te();ae=Ye("package.json");});var b=y(()=>{Be();Fe();te();et();});function se(p="github",e,a="common"){let r={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${r[p??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[p]}`}function re(p="github",e,a="common"){let r={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${r[p??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[p]}`}async function kt(){return Promise.resolve(uuid.v4().replace(/-/g,""))}var oe=y(()=>{});var O,ne=y(()=>{b();O=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",r,o,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=r,this.proxy=o,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,r,o,t){let s=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),n={headers:this.createHeaders(t),params:r,validateStatus:()=>true};if(this.proxy){let u=this.proxy.type,i=this.proxy.address;switch(u){case "http":n.httpAgent=new httpProxyAgent.HttpProxyAgent(i),n.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(i);break;case "https":n.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(i);break;case "socks":case "socks5":{let l=new socksProxyAgent.SocksProxyAgent(i);n.httpAgent=l,n.httpsAgent=l;break}}}try{let u;switch(e){case "get":u=await $__default.default.get(s,n);break;case "post":u=await $__default.default.post(s,o,n);break;case "patch":u=await $__default.default.patch(s,o,n);break;case "put":u=await $__default.default.put(s,o,n);break;case "delete":u=await $__default.default.delete(s,{...n,data:o});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let i=Object.fromEntries(Object.entries(u.headers).filter(([l,h])=>h!==void 0).map(([l,h])=>[l.toLowerCase(),h]));return {success:!0,statusCode:u.status,headers:i,data:u.data,msg:u.status>=200&&u.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(u){let i=u,l=i.response?.headers?Object.fromEntries(Object.entries(i.response.headers).filter(([h,w])=>w!==void 0).map(([h,w])=>[h,w])):{};return {success:false,statusCode:i.response?.status??500,headers:l,msg:i.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,r){return this.request("get",e,a,null,r)}async post(e,a,r,o){return this.request("post",e,a,r,o)}async patch(e,a=null,r,o){return this.request("patch",e,a,r,o)}async put(e,a,r,o){return this.request("put",e,a,r,o)}async delete(e,a=null,r,o){return this.request("delete",e,a,r,o)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${ae.name}/v${ae.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let r=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${r}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var at={};k(at,{Auth:()=>D});var D,ie=y(()=>{b();C();D=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_token_by_code(e){try{if(!e.code)throw new Error(K);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!r)throw new Error(xe);let o={success:r,info:Z,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=o;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{let a=e?.access_token??this.userToken;if(!a)throw new Error(I);if(!a.startsWith("ghu_"))throw new Error(Ie);this.setRequestConfig({url:this.ApiUrl,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let r=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(r.data){let o=!(r.status==="ok"&&(r.statusCode===404||r.statusCode===422));r.data={success:o,info:o?Z:ve};}return r}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!e.refresh_token)throw new Error(K);if(!e.refresh_token.startsWith("ghr_"))throw new Error(Y);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error,o=Ae;switch(a.data.error){case "bad_refresh_token":o=Y;break;case "unauthorized":o=m;break}if(a.data){if(!r)throw new Error(o);let t={success:r,info:He,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{let a=new URL("/login/oauth/authorize",this.BaseUrl);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`\u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var rt={};k(rt,{Commit:()=>B});var B,ue=y(()=>{b();C();B=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,r,o,t;if("url"in e){o=e.url;let u=Qe(o);a=u?.owner,r=u?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,r=e.repo;else throw new Error(ke);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:r});let s=await this.get(`/repos/${a}/${r}/commits/${t}`);switch(s.statusCode){case 401:throw new Error(m);case 404:throw new Error(Le);case 422:throw new Error(Me)}let n=e.format??this.format;if(s.data){let u=s.data?.commit?.message??"",[i,...l]=u.split(`
2
- `),h={html_url:s.data.html_url,sha:s.data.sha,comments_url:s.data.comments_url,commit:{url:s.data.commit.url,author:{id:s.data.commit.author.id,login:s.data.commit.author.login,name:s.data.commit.author.name,avatar_url:s.data.commit.author.avatar_url,email:s.data.commit.author.email,html_url:s.data.commit.author.html_url,type:lodashEs.capitalize(String(s.data.commit.author.type).toLowerCase()),date:n?await _(s.data.commit.author.date):s.data.commit.author.date},committer:{id:s.data.commit.committer.id,login:s.data.commit.committer.login,name:s.data.commit.committer.name,avatar_url:s.data.commit.committer.avatar_url,email:s.data.commit.committer.email,html_url:s.data.commit.committer.html_url,type:lodashEs.capitalize(String(s.data.commit.committer.type).toLowerCase()),date:n?await _(s.data.commit.committer.date):s.data.commit.committer.date},message:s.data.commit.message,...n&&{title:i,body:l.join(`
3
- `)},tree:{url:s.data.commit.tree.url,sha:s.data.commit.tree.sha}},parents:s.data.parents.map(w=>({sha:w.sha,url:w.url})),stats:{additions:s.data.stats.additions,deletions:s.data.stats.deletions,total:s.data.stats.total},files:s.data.files.map(w=>({sha:w.sha,filename:w.filename,status:w.status,additions:w.additions,deletions:w.deletions,changes:w.changes,blob_url:w.blob_url,raw_url:w.raw_url}))};s.data=h;}return s}catch(a){throw new Error(`\u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}};});var ot={};k(ot,{Issue:()=>H});var H,le=y(()=>{b();C();H=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_issue_info(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.get(`/repos/${a}/${r}/issues/${Number(o)}`);switch(t.statusCode){case 404:throw new Error(T);case 301:throw new Error(Ne)}if(t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6Issue\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_repo_issue_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.milestone&&(t.milestone=o.milestone.toString()),o.state&&(t.state=o.state),o.assignee&&(t.assignee=o.assignee),o.creator&&(t.creator=o.creator),o.labels&&(t.labels=o.labels),o.sort&&(t.sort=o.sort),o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues`,n=await this.get(s,t);if(n.statusCode===401)throw new Error(m);if(n.data){let u=n.data.map(i=>({id:i.id,html_url:i.html_url,number:i.number,comments:i.comments,state:i.state,state_reason:i.state_reason,title:i.title,body:i.body,user:i.user?{id:i.user.id,login:i.user.login,name:i.user.name,email:i.user.email,html_url:i.user.html_url,avatar_url:i.user.avatar_url,type:lodashEs.capitalize(i.user.type.toLowerCase())}:null,labels:i.labels?i.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:i.assignee?{id:i.assignee.id,login:i.assignee.login,name:i.assignee.name,email:i.assignee.email,html_url:i.assignee.html_url,avatar_url:i.assignee.avatar_url,type:lodashEs.capitalize(i.assignee.type.toLowerCase())}:null,milestone:i.milestone?{id:i.milestone.id,url:i.milestone.url,number:i.milestone.number,state:i.milestone.state,title:i.milestone.title,description:i.milestone.description,open_issues:i.milestone.open_issues,closed_issues:i.milestone.closed_issues,created_at:i.milestone.created_at,updated_at:i.milestone.updated_at,closed_at:i.milestone.closed_at,due_on:i.milestone.due_on}:null,closed_at:i.closed_at,created_at:i.created_at,updated_at:i.updated_at}));n.data=u;}return n}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u7684Issue\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.title)throw new Error(Te);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={...o,...o.labels&&{labels:Array.isArray(o.labels)?o.labels:[o.labels]},...o.assignees&&{assignees:Array.isArray(o.assignees)?o.assignees:[o.assignees]}},s=await this.post(`/repos/${a}/${r}/issues`,t);switch(s.statusCode){case 403:throw new Error(m);case 301:throw new Error(R)}if(s.data&&s.data){let n={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:lodashEs.capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u521B\u5EFAIssue\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},n=await this.patch(`/repos/${a}/${r}/issues/${Number(o)}`,null,s);switch(n.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}if(n.data&&n.data){let u={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:lodashEs.capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:lodashEs.capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=u;}return n}catch(a){throw new Error(`\u66F4\u65B0Issue\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u6253\u5F00Issue\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u5173\u95EDIssue\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,lock_reason:t}=e,s=await this.put(`/repos/${a}/${r}/issues/${Number(o)}`,{locked:!0,lock_reason:t});switch(s.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}let n;return s.statusCode===204?n={info:We}:n={info:Ue},s.data=n,s}catch(a){throw new Error(`\u9501\u5B9AIssue${e.issue_number}\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/${o}/lock`);switch(t.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}let s;return t.statusCode===204?s={info:Ge}:s={info:qe},t.data=s,t}catch(a){throw new Error(`\u89E3\u9501Issue\u5931\u8D25: ${a.message}`)}}async get_repo_comments_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.sort&&(t.sort=o.sort),o.sort&&o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues/comments/`,n=await this.get(s,t);if(n.statusCode===404)throw new Error(f);if(n.data){let u=n.data.map(i=>({id:i.id,html_url:i.html_url,body:i.body,user:{id:i.user.id,login:i.user.login,name:i.user.name,email:i.user.email,html_url:i.user.html_url,avatar_url:i.user.avatar_url,type:lodashEs.capitalize(i.user.type.toLowerCase())},created_at:i.created_at,updated_at:i.updated_at}));n.data=u;}return n}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93${e.owner}/${e.repo}\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.since&&(s.since=t.since),t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let n=`/repos/${a}/${r}/issues/${Number(o)}/comments`,u=await this.get(n,s);if(u.statusCode===404)throw new Error(f);if(u.data){let i=u.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));u.data=i;}return u}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.comment_id)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.get(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);if(t.data){let s={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.body)throw new Error(be);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,body:t}=e,s=await this.post(`/repos/${a}/${r}/issues/${Number(o)}/comments`,{body:t});if(s.statusCode===404)throw new Error(f);if(s.data){let n={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.comment_id)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o,...t}=e,s=await this.patch(`/repos/${a}/${r}/issues/comments/${Number(o)}`,null,t);if(s.statusCode===404)throw new Error(f);if(s.data){let n={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.comment_id)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);let s;return t.statusCode===204?s={info:je}:s={info:Se},t.data=s,t}catch(a){throw new Error(`\u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let n=`/repos/${a}/${r}/issues/${Number(o)}/sub_issues`,u=await this.get(n,s);if(u.statusCode===404)throw new Error(T);if(u.data){let i=u.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(h=>({id:h.id,name:h.name,color:h.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:lodashEs.capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));u.data=i;}return u}catch(a){throw new Error(`\u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,replace_parent:s}=e,n=await this.post(`/repos/${a}/${r}/issues/${o}/sub_issues`,{sub_issue_id:t,replace_parent:s});if(n.statusCode===404)throw new Error(T);if(n.data){let u={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:lodashEs.capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:lodashEs.capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=u;}return n}catch(a){throw new Error(`\u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t}=e,s=await this.delete(`/repos/${a}/${r}/issues/${o}/sub_issue`,null,{sub_issue_id:t});if(s.statusCode===404)throw new Error(T);if(s.data){let n={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:lodashEs.capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,...s}=e,n={};s.before_id&&!s.after_id&&(n.before_id=s.before_id.toString()),s.after_id&&!s.before_id&&(n.after_id=s.after_id.toString());let u=`/repos/${a}/${r}/issues/${o}/sub_issues/priority`,i=await this.patch(u,n,{sub_issue_id:String(t)});if(i.statusCode===404)throw new Error(T);if(i.data){let l={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:lodashEs.capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(h=>({id:h.id,name:h.name,color:h.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:lodashEs.capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=l;}return i}catch(a){throw new Error(`\u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var nt={};k(nt,{Repo:()=>z});var z,pe=y(()=>{b();C();z=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_repos_list(e){if(!e.org)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{org:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=`/orgs/${a}/repos`,s=await this.get(t,o);switch(s.statusCode){case 404:throw new Error(U);case 401:throw new Error(m)}let n=e.format??this.format;if(s.data){let u=await Promise.all(s.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name??null,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email??null},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:n?await _(i.created_at):i.created_at,updated_at:n?await _(i.updated_at):i.updated_at,pushed_at:n?await _(i.pushed_at):i.pushed_at})));s.data=u;}return s}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,r={};!e?.visibility&&!e?.affiliation&&a?.type&&(r.type=a.type),a?.visibility&&(r.visibility=a.visibility),a?.affiliation&&(r.affiliation=a.affiliation),a?.sort&&(r.sort=a.sort),a?.direction&&(r.direction=a.direction),a?.per_page&&(r.per_page=a.per_page.toString()),a?.page&&(r.page=a.page.toString());let t=await this.get("/uses/repos",r);if(t.statusCode===401)throw new Error(m);let s=e?.format??this.format;if(t.data){let n=await Promise.all(t.data.map(async u=>({id:u.id,name:u.name,full_name:u.full_name,owner:{id:u.owner.id,login:u.owner.login,name:u.owner.name,avatar_url:u.owner.avatar_url,type:u.owner.type,html_url:u.owner.html_url,email:u.owner.email},public:!u.private,private:u.private,visibility:u.private?"private":"public",fork:u.fork,archived:u.archived,disabled:u.disabled,html_url:u.html_url,description:u.description,stargazers_count:u.stargazers_count,watchers_count:u.watchers_count,language:u.language,forks_count:u.forks_count,open_issues_count:u.open_issues_count,default_branch:u.default_branch,created_at:s?await _(u.created_at):u.created_at,updated_at:s?await _(u.updated_at):u.updated_at,pushed_at:s?await _(u.pushed_at):u.pushed_at})));t.data=n;}return t}catch(a){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error(v);this.setRequestConfig({token:this.userToken});let{username:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=e?.format??this.format,s=`/users/${a}/repos`,n=await this.get(s,o);switch(n.statusCode){case 404:throw new Error(x);case 401:throw new Error(m)}if(n.data){let u=await Promise.all(n.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:t?await _(i.created_at):i.created_at,updated_at:t?await _(i.updated_at):i.updated_at,pushed_at:t?await _(i.pushed_at):i.pushed_at})));n.data=u;}return n}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}`);switch(o.statusCode){case 401:throw new Error(m);case 404:throw new Error(S)}let t=e?.format??this.format;if(o.data){let s={id:o.data.id,name:o.data.name,full_name:o.data.full_name,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,avatar_url:o.data.owner.avatar_url,type:o.data.owner.type,html_url:o.data.owner.html_url,email:o.data.owner.email},public:!o.data.private,private:o.data.private,visibility:o.data.private?"private":"public",fork:o.data.fork,archived:o.data.archived,disabled:o.data.disabled,html_url:o.data.html_url,description:o.data.description,stargazers_count:o.data.stargazers_count,watchers_count:o.data.watchers_count,language:o.data.language,forks_count:o.data.forks_count,open_issues_count:o.data.open_issues_count,default_branch:o.data.default_branch,created_at:t?await _(o.data.created_at):o.data.created_at,updated_at:t?await _(o.data.updated_at):o.data.updated_at,pushed_at:t?await _(o.data.pushed_at):o.data.pushed_at};o.data=s;}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/languages`);switch(o.statusCode){case 401:throw new Error(m);case 404:throw new Error(R)}if(o.data){let t=Object.values(o.data).reduce((s,n)=>s+n,0);o.data={languages:await Promise.all(Object.entries(o.data).map(([s,n])=>{let u=String(s).toLowerCase();return {language:s,color:ee(u),percent:Number((n/t*100).toFixed(2)),bytes:n}}))};}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{owner:a,...r}=e,o={...r},t=await this.post(`/orgs/${a}/repos`,o);if(t.statusCode===401)throw new Error(m);let s=e?.format??this.format;if(t.data){let n={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:s?await _(t.data.created_at):t.data.created_at,updated_at:s?await _(t.data.updated_at):t.data.updated_at,pushed_at:s?await _(t.data.pushed_at):t.data.pushed_at};t.data=n;}return t}catch(a){throw new Error(`\u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,{...o}=e,t={};o.affiliation&&(t.milestone=o.affiliation.toString()),o.permission&&(t.permission=o.permission.toString()),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=await this.get(`/repos/${a}/${r}/collaborators`,t);return s.data&&(s.data=await Promise.all(s.data.map(n=>({id:n.id,login:n.login,avatar_url:n.avatar_url,email:n.email,name:n.name,permissions:n.permissions,role_name:n.role_name})))),s}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.put(`/repos/${a}/${r}/collaborators/${o}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(X);if(t.statusCode===422){let s=t.data.message;if(s&&s.includes("is not a valid permission"))throw new Error(Ee)}if(t.data){let s={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,avatar_url:t.data.inviter.avatar_url,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=s;}return t}catch(a){throw new Error(`\u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.delete(`/repos/${a}/${r}/collaborators/${o}`);if(t.statusCode===404)throw new Error(X);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u5931\u8D25`},t}catch(a){throw new Error(`\u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(d);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.visibility}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(d);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.default_branch}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(d);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.language}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var it={};k(it,{User:()=>W});var W,ce=y(()=>{b();C();W=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(Re);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:a});let r=await this.get(`/users/${e.username}`);if(r.statusCode===401)throw new Error(m);if(r.statusCode===404)throw new Error(S);return r.data&&(r.data={id:r.data.id,login:r.data.login,name:r.data.name||null,type:lodashEs.capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following}),r}catch(r){throw new Error(`\u83B7\u53D6\u7528\u6237\u6216\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Pe);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:this.userToken});let r=await this.get(`/user/${e.user_id}`);if(r.statusCode===401)throw new Error(m);if(r.statusCode===404)throw new Error(x);return r.data&&(r.data={id:r.data.id,login:r.data.login,name:r.data.name||null,type:lodashEs.capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following}),r}catch(r){throw new Error(`\u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_auth(e){let a=e?.access_token??this.userToken;if(!e||!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get("/user");switch(r.statusCode){case 401:throw new Error(m);case 404:throw new Error(x)}return r.data&&(r.data={id:r.data.id,login:r.data.login,name:r.data.name||null,type:lodashEs.capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following}),r}catch(r){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_token(e){return this.get_user_info_by_auth(e)}async get_user_contribution(e){try{if(!e.username)throw new Error(v);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${$e}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.BaseUrl});let r=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(r.statusCode===404)throw new Error(v);let o=await Ze(r.data);return {...r,data:o}}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var ut={};k(ut,{Org:()=>G});var G,me=y(()=>{b();C();G=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_info(e){if(!e.org)throw new Error(Ce);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/orgs/${e.org}`);if(a.statusCode===404)throw new Error(U);if(a.data){let r={id:a.data.id,login:a.data.login,name:a.data.name,avatar_url:a.data.avatar_url,description:a.data.description,html_url:a.data.html_url};a.data=r;}return a}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}};});var pt={};k(pt,{WebHook:()=>j});var j,ge=y(()=>{b();C();j=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a||!e.payload||!e.signature)throw new Error(L);if(!e.signature.startsWith("sha256="))throw new Error(De);let r=false,o="error",t=400,s=Q,n;try{let u=lt__default.default.createHmac("sha256",a),i=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);u.update(i,"utf8");let l=u.digest("hex"),h=e.signature.replace("sha256=","");lt__default.default.timingSafeEqual(Buffer.from(l),Buffer.from(h))?(r=!0,o="ok",t=200,s="\u8BF7\u6C42\u6210\u529F",n={info:ze}):(r=!1,o="error",t=403,s="\u8BF7\u6C42\u5931\u8D25",n={info:Q});}catch(u){throw new Error(`\u8BF7\u6C42\u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${u.message}`)}return Promise.resolve({success:r,status:o,statusCode:t,msg:s,data:n})}};});var F;exports.GitHubClient=void 0;var C=y(()=>{b();oe();ne();F="github",exports.GitHubClient=class{BaseUrl;ApiUrl;jwtToken;userToken;format;Private_Key;Client_ID;Client_Secret;WebHook_Secret;currentRequestConfig;proxy;constructor(e){this.Private_Key=e.Private_Key,this.Client_ID=e.Client_ID,this.Client_Secret=e.Client_Secret,this.WebHook_Secret=e.WebHook_Secret,this.jwtToken=this.generate_jwt(),this.BaseUrl=re(F),this.ApiUrl=se(F),this.userToken=null,this.currentRequestConfig={url:this.ApiUrl,token:null,tokenType:"Bearer"},this.format=e.format??false;}async get_app(){let{App:e}=await Promise.resolve().then(()=>(_e(),dt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(ie(),at));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(ue(),rt));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(le(),ot));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(pe(),nt));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>(ce(),it));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>(me(),ut));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(ge(),pt));return this.webhook=new e(this),this.webhook}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new url.URL(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(V)}switch(e?.type){case "common":case "reverse":this.BaseUrl=re(F,e.address,e.type),this.ApiUrl=se(F,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(V)}}setToken(e){if(!e.startsWith("ghu_"))throw this.userToken=null,new Error(A);return this.userToken=e,this}generate_jwt(){let e=this.Private_Key,a={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return vt__default.default.sign(a,e,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:r}=this.currentRequestConfig,o=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new O(e,r,a??null,o,t)}async get(e,a,r){try{let t=await this.createRequest().get(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`GET \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async post(e,a,r){try{let t=await this.createRequest().post(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`POST \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async patch(e,a=null,r,o){try{let s=await this.createRequest().patch(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,r){try{let t=await this.createRequest().put(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`PUT \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async delete(e,a=null,r,o){try{let s=await this.createRequest().delete(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var dt={};k(dt,{App:()=>J});var J,_e=y(()=>{b();C();J=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_app_info(e){let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(fe);if(!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get(`/apps/${e.app_slug}`);if(r.statusCode===200){let o={id:r.data.id,name:r.data.name,client_id:r.data.client_id,slug:r.data.slug,owner:{id:r.data.owner.id,login:r.data.owner.login,name:r.data.owner.name,email:r.data.owner.email,html_url:r.data.owner.html_url,avatar_url:r.data.owner.avatar_url,type:lodashEs.capitalize(r.data.owner.type.toLowerCase())},description:r.data.description,external_url:r.data.external_url,html_url:r.data.html_url,permissions:r.data.permissions,events:r.data.events,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_app_info_by_auth(){try{this.setRequestConfig({url:this.ApiUrl,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:lodashEs.capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/installation`);switch(o.statusCode){case 404:throw new Error(R);case 301:throw new Error(Oe)}if(o.data){let t={id:o.data.id,html_url:o.data.html_url,app_id:o.data.app_id,app_slug:o.data.app_slug,target_id:o.data.target_id,target_type:o.data.target_type,account:{id:o.data.account.id,login:o.data.account.login,name:o.data.account.name,email:o.data.account.email,html_url:o.data.account.html_url,avatar_url:o.data.account.avatar_url,type:lodashEs.capitalize(o.data.account.type.toLowerCase())},repository_selection:o.data.repository_selection,access_tokens_url:o.data.access_tokens_url,repositories_url:o.data.repositories_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=t;}return o}catch(a){throw new Error(`\u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}};});b();oe();ne();var ye={};k(ye,{App:()=>J,Auth:()=>D,Commit:()=>B,GitHubClient:()=>exports.GitHubClient,Issue:()=>H,Org:()=>G,Repo:()=>z,User:()=>W,WebHook:()=>j});_e();ie();C();ue();le();me();pe();ce();ge();var we=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new exports.GitHubClient(e.github);}};var fs=we;
4
- exports.Client=we;exports.create_state_id=kt;exports.default=fs;exports.formatDate=_;exports.get_langage_color=ee;exports.get_relative_time=bt;exports.github=ye;
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var ht=require('path'),url=require('url'),Ze=require('fs'),ft=require('color-convert'),O=require('dayjs'),bt=require('dayjs/plugin/relativeTime.js'),Tt=require('git-url-parse'),Rt=require('language-colors'),uuid=require('uuid'),M=require('axios'),httpProxyAgent=require('http-proxy-agent'),httpsProxyAgent=require('https-proxy-agent'),socksProxyAgent=require('socks-proxy-agent'),lodashEs=require('lodash-es'),pt=require('crypto'),$t=require('jsonwebtoken');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ht__default=/*#__PURE__*/_interopDefault(ht);var Ze__default=/*#__PURE__*/_interopDefault(Ze);var ft__default=/*#__PURE__*/_interopDefault(ft);var O__default=/*#__PURE__*/_interopDefault(O);var bt__default=/*#__PURE__*/_interopDefault(bt);var Tt__default=/*#__PURE__*/_interopDefault(Tt);var Rt__default=/*#__PURE__*/_interopDefault(Rt);var M__default=/*#__PURE__*/_interopDefault(M);var pt__default=/*#__PURE__*/_interopDefault(pt);var $t__default=/*#__PURE__*/_interopDefault($t);var _t=Object.defineProperty;var w=(d,e)=>()=>(d&&(e=d(d=0)),e);var P=(d,e)=>{for(var a in e)_t(d,a,{get:e[a],enumerable:true});};var Pe,Y,I,Ee,L,E,Ie,ve,xe,c,X,U,Q,N,Ae,x,A,$e,Me,Z,Le,_,Ue,Ne,Se,qe,ee,f,R,Oe,De,Be,He,S,q,C,ze,te,$,We,ae,v,Ge=w(()=>{Pe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",Y="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",I="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",Ee="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",L="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",E="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Ie="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A",ve="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u6216\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",xe="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",c="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u62E5\u6709\u8005\u548C\u4ED3\u5E93\u540D\u79F0",X="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",U="\u55B5\u545C~ \u53C2\u6570\u597D\u50CF\u4E0D\u592A\u5BF9\u5462",Q="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",N="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Ae="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",x="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",A="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",$e="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Me="\u55B5\u545C~ \u6743\u9650\u4E0D\u6B63\u786E\uFF0C\u8BF7\u68C0\u67E5\u6743\u9650",Z="\u55B5\u545C~ \u8FD9\u4E2A\u5237\u65B0\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Le="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",_="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ue="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",Ne="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",Se="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",qe="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",ee="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",f="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",R="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",Oe="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",De="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u9501\u5B9A\u5931\u8D25\u54E6",Be="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u5931\u8D25\u54E6",He="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u89E3\u9501\u5931\u8D25\u54E6",S="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",q="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",C="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",ze="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",te="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",$="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",We="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",ae="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",v="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var je,se,Fe,Je,Ke,Ve,Ye=w(()=>{je="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",se="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",Fe="\u55B5\u545C~ WebHook \u7B7E\u540D\u6210\u529F",Je="\u55B5\u545C~ \u8BAE\u9898\u9501\u5B9A\u6210\u529F",Ke="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",Ve="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u6210\u529F";});var wt,Xe,Qe=w(()=>{wt=url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))),Xe=Object.freeze(ht__default.default.join(wt,"../..").replace(/\\/g,"/"));});function et(d="",e=""){e=e||Xe;try{let a=`${e}/${d}`;if(!Ze__default.default.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let r=Ze__default.default.readFileSync(a,"utf8");return JSON.parse(r)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${d}`,a),{}}}async function tt(d="zh-cn"){let e=String(d).toLowerCase();await import(`dayjs/locale/${e}.js`),O__default.default.locale(e);}async function h(d,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await tt(e),O__default.default(d).format(a)}async function Ct(d,e="zh-cn"){return await tt(e),O__default.default.extend(bt__default.default),O__default.default(d).fromNow()}function re(d){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=d.match(e);if(a){let o=a[1];d=o.startsWith("https")?o:`https://${o}`;}let r=Tt__default.default(d);return {owner:r.owner,repo:r.name}}function kt(d){if(!Array.isArray(d))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(d.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!d.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${ft__default.default.rgb.hex(d)}`}function oe(d){return d=String(d).toLowerCase(),kt(Rt__default.default[d].color)??"#ededed"}async function Pt(d,e){return Promise.resolve(Array.from({length:Math.ceil(d.length/e)},(a,r)=>d.slice(r*e,r*e+e)))}async function at(d){let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,r=Array.from(d.matchAll(e),i=>i[1]),o=Array.from(d.matchAll(a),i=>String(i[1]).toLowerCase()==="no"?0:parseInt(i[1]));if(!r.length||!o.length)return {total:0,contributions:[]};let t=r.map((i,u)=>({date:i,count:o[u]})).sort((i,u)=>i.date.localeCompare(u.date)),s=await Pt(t,7);return {total:o.reduce((i,u)=>i+u,0),contributions:s}}var ne=w(()=>{Qe();});var ie,st=w(()=>{ne();ie=et("package.json");});var b=w(()=>{Ge();Ye();ne();st();});function ue(d="github",e,a="common"){let r={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${r[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[d]}`}function le(d="github",e,a="common"){let r={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${r[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[d]}`}async function It(){return Promise.resolve(uuid.v4().replace(/-/g,""))}var de=w(()=>{});var D,pe=w(()=>{b();D=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",r,o,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=r,this.proxy=o,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,r,o,t){let s=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),i={headers:this.createHeaders(t),params:r,validateStatus:()=>true};if(this.proxy){let u=this.proxy.type,n=this.proxy.address;switch(u){case "http":i.httpAgent=new httpProxyAgent.HttpProxyAgent(n),i.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(n);break;case "https":i.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(n);break;case "socks":case "socks5":{let l=new socksProxyAgent.SocksProxyAgent(n);i.httpAgent=l,i.httpsAgent=l;break}}}try{let u;switch(e){case "get":u=await M__default.default.get(s,i);break;case "post":u=await M__default.default.post(s,o,i);break;case "patch":u=await M__default.default.patch(s,o,i);break;case "put":u=await M__default.default.put(s,o,i);break;case "delete":u=await M__default.default.delete(s,{...i,data:o});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let n=Object.fromEntries(Object.entries(u.headers).filter(([l,g])=>g!==void 0).map(([l,g])=>[l.toLowerCase(),g]));return {success:!0,statusCode:u.status,headers:n,data:u.data,msg:u.status>=200&&u.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(u){let n=u,l=n.response?.headers?Object.fromEntries(Object.entries(n.response.headers).filter(([g,p])=>p!==void 0).map(([g,p])=>[g,p])):{};return {success:false,statusCode:n.response?.status??500,headers:l,msg:n.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,r){return this.request("get",e,a,null,r)}async post(e,a,r,o){return this.request("post",e,a,r,o)}async patch(e,a=null,r,o){return this.request("patch",e,a,r,o)}async put(e,a,r,o){return this.request("put",e,a,r,o)}async delete(e,a=null,r,o){return this.request("delete",e,a,r,o)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${ie.name}/v${ie.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let r=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${r}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var ot={};P(ot,{Auth:()=>B});var B,ce=w(()=>{b();k();B=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_token_by_code(e){try{if(!e.code)throw new Error(Y);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!r)throw new Error(Ne);let o={success:r,info:se,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=o;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{let a=e?.access_token??this.userToken;if(!a)throw new Error(I);if(!a.startsWith("ghu_"))throw new Error($e);this.setRequestConfig({url:this.ApiUrl,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let r=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(r.data){let o=!(r.status==="ok"&&(r.statusCode===404||r.statusCode===422));r.data={success:o,info:o?se:Le};}return r}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!e.refresh_token)throw new Error(Y);if(!e.refresh_token.startsWith("ghr_"))throw new Error(Z);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error,o=Ue;switch(a.data.error){case "bad_refresh_token":o=Z;break;case "unauthorized":o=_;break}if(a.data){if(!r)throw new Error(o);let t={success:r,info:je,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{let a=new URL("/login/oauth/authorize",this.BaseUrl);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`\u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var nt={};P(nt,{Commit:()=>z});var z,me=w(()=>{b();k();z=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,r,o,t;if("url"in e){o=e.url;let u=re(o);a=u?.owner,r=u?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,r=e.repo;else throw new Error(X);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:r});let s=await this.get(`/repos/${a}/${r}/commits/${t}`);switch(s.statusCode){case 401:throw new Error(_);case 404:throw new Error(ee);case 422:throw new Error(qe)}let i=e.format??this.format;if(s.data){let u=s.data?.commit?.message??"",[n,...l]=u.split(`
2
+ `),g={html_url:s.data.html_url,sha:s.data.sha,comments_url:s.data.comments_url,commit:{url:s.data.commit.url,author:{id:s.data.author.id,login:s.data.author.login,name:s.data.commit.author.name,avatar_url:s.data.author.avatar_url,email:s.data.commit.author.email,html_url:s.data.author.html_url,type:lodashEs.capitalize(String(s.data.author.type).toLowerCase()),date:i?await h(s.data.commit.author.date):s.data.commit.author.date},committer:{id:s.data.committer.id,login:s.data.committer.login,name:s.data.commit.committer.name,avatar_url:s.data.committer.avatar_url,email:s.data.commit.committer.email,html_url:s.data.committer.html_url,type:lodashEs.capitalize(String(s.data.committer.type).toLowerCase()),date:i?await h(s.data.commit.committer.date):s.data.commit.committer.date},message:s.data.commit.message,...i&&{title:n,body:l<0?l.join(`
3
+ `):null},tree:{url:s.data.commit.tree.url,sha:s.data.commit.tree.sha}},parents:s.data.parents.map(p=>({sha:p.sha,url:p.url})),stats:{additions:s.data.stats.additions,deletions:s.data.stats.deletions,total:s.data.stats.total},files:s.data.files.map(p=>({sha:p.sha,filename:p.filename,status:p.status,additions:p.additions,deletions:p.deletions,changes:p.changes,blob_url:p.blob_url,raw_url:p.raw_url}))};s.data=g;}return s}catch(a){throw new Error(`\u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_commit_list(e){try{this.setRequestConfig({token:this.userToken});let a,r,o,t;if("url"in e){o=e.url;let g=re(o);a=g?.owner,r=g?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,r=e.repo;else throw new Error(X);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:r});let{...s}=e,i={};s.sha&&(i.sha=s.sha),s.path&&(i.path=s.path),s.author&&(i.author=s.author),s.since&&(i.since=s.since),s.until&&(i.until=s.until),s.per_page&&(i.per_page=s.per_page.toString()),s.page&&(i.page=s.page.toString());let u=`/repos/${a}/${r}/commits`,n=await this.get(u,i);switch(n.statusCode){case 401:throw new Error(_);case 404:throw new Error(ee)}let l=e?.format??this.format;if(n.data){let g=await Promise.all(n.data.map(async p=>{let[gt,...ke]=p.commit.message.split(`
4
+ `);return {html_url:p.html_url,sha:p.sha,comments_url:p.comments_url,commit:{url:p.commit.url,author:{id:p.author.id,login:p.author.login,name:p.commit.author.name,avatar_url:p.author.avatar_url,email:p.commit.author.email,html_url:p.author.html_url,type:lodashEs.capitalize(String(p.author.type).toLowerCase()),date:l?await h(p.commit.author.date):p.commit.author.date},committer:{id:p.committer.id,login:p.committer.login,name:p.commit.committer.name,avatar_url:p.committer.avatar_url,email:p.commit.committer.email,html_url:p.committer.html_url,type:lodashEs.capitalize(String(p.committer.type).toLowerCase()),date:l?await h(p.commit.committer.date):p.commit.committer.date},message:p.commit.message,...l&&{title:gt,body:ke.length>0?ke.join(`
5
+ `):null},tree:{url:p.commit.tree.url,sha:p.commit.tree.sha}},parents:p.parents.map(T=>({sha:T.sha,url:T.url})),stats:{additions:p.stats.additions,deletions:p.stats.deletions,total:p.stats.total},files:p.files.map(T=>({sha:T.sha,filename:T.filename,status:T.status,additions:T.additions,deletions:T.deletions,changes:T.changes,blob_url:T.blob_url,raw_url:T.raw_url}))}}));n.data=g;}return n}catch(a){throw new Error(`\u83B7\u53D6\u63D0\u4EA4\u5217\u8868\u5931\u8D25: ${a.message}`)}}};});var it={};P(it,{Issue:()=>W});var W,ge=w(()=>{b();k();W=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_issue_info(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.get(`/repos/${a}/${r}/issues/${Number(o)}`);switch(t.statusCode){case 404:throw new Error(R);case 301:throw new Error(Oe)}if(t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6Issue\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_issues_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.milestone&&(t.milestone=o.milestone.toString()),o.state&&(t.state=o.state),o.assignee&&(t.assignee=o.assignee),o.creator&&(t.creator=o.creator),o.labels&&(t.labels=o.labels),o.sort&&(t.sort=o.sort),o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues`,i=await this.get(s,t);if(i.statusCode===401)throw new Error(_);if(i.data){let u=i.data.map(n=>({id:n.id,html_url:n.html_url,number:n.number,comments:n.comments,state:n.state,state_reason:n.state_reason,title:n.title,body:n.body,user:{id:n.user.id,login:n.user.login,name:n.user.name,email:n.user.email,html_url:n.user.html_url,avatar_url:n.user.avatar_url,type:lodashEs.capitalize(n.user.type.toLowerCase())},labels:n.labels?n.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:n.assignee?{id:n.assignee.id,login:n.assignee.login,name:n.assignee.name,email:n.assignee.email,html_url:n.assignee.html_url,avatar_url:n.assignee.avatar_url,type:lodashEs.capitalize(n.assignee.type.toLowerCase())}:null,milestone:n.milestone?{id:n.milestone.id,url:n.milestone.url,number:n.milestone.number,state:n.milestone.state,title:n.milestone.title,description:n.milestone.description,open_issues:n.milestone.open_issues,closed_issues:n.milestone.closed_issues,created_at:n.milestone.created_at,updated_at:n.milestone.updated_at,closed_at:n.milestone.closed_at,due_on:n.milestone.due_on}:null,closed_at:n.closed_at,created_at:n.created_at,updated_at:n.updated_at}));i.data=u;}return i}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u7684Issue\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.title)throw new Error(Ie);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={...o,...o.labels&&{labels:Array.isArray(o.labels)?o.labels:[o.labels]},...o.assignees&&{assignees:Array.isArray(o.assignees)?o.assignees:[o.assignees]}},s=await this.post(`/repos/${a}/${r}/issues`,t);switch(s.statusCode){case 403:throw new Error(_);case 301:throw new Error(C)}if(s.data&&s.data){let i={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:lodashEs.capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u521B\u5EFAIssue\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},i=await this.patch(`/repos/${a}/${r}/issues/${Number(o)}`,null,s);switch(i.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}if(i.data&&i.data){let u={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:lodashEs.capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:lodashEs.capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=u;}return i}catch(a){throw new Error(`\u66F4\u65B0Issue\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u6253\u5F00Issue\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u5173\u95EDIssue\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,lock_reason:t}=e,s=await this.put(`/repos/${a}/${r}/issues/${Number(o)}`,{locked:!0,lock_reason:t});switch(s.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}let i;return s.statusCode===204?i={info:Je}:i={info:De},s.data=i,s}catch(a){throw new Error(`\u9501\u5B9AIssue${e.issue_number}\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/${o}/lock`);switch(t.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}let s;return t.statusCode===204?s={info:Ke}:s={info:He},t.data=s,t}catch(a){throw new Error(`\u89E3\u9501Issue\u5931\u8D25: ${a.message}`)}}async get_comments_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.sort&&(t.sort=o.sort),o.direction&&o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues/comments/`,i=await this.get(s,t);if(i.statusCode===404)throw new Error(f);if(i.data){let u=i.data.map(n=>({id:n.id,html_url:n.html_url,body:n.body,user:{id:n.user.id,login:n.user.login,name:n.user.name,email:n.user.email,html_url:n.user.html_url,avatar_url:n.user.avatar_url,type:lodashEs.capitalize(n.user.type.toLowerCase())},created_at:n.created_at,updated_at:n.updated_at}));i.data=u;}return i}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93${e.owner}/${e.repo}\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.since&&(s.since=t.since),t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let i=`/repos/${a}/${r}/issues/${Number(o)}/comments`,u=await this.get(i,s);if(u.statusCode===404)throw new Error(f);if(u.data){let n=u.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));u.data=n;}return u}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.comment_id)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.get(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);if(t.data){let s={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.body)throw new Error(Ee);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,body:t}=e,s=await this.post(`/repos/${a}/${r}/issues/${Number(o)}/comments`,{body:t});if(s.statusCode===404)throw new Error(f);if(s.data){let i={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.comment_id)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o,...t}=e,s=await this.patch(`/repos/${a}/${r}/issues/comments/${Number(o)}`,null,t);if(s.statusCode===404)throw new Error(f);if(s.data){let i={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.comment_id)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);let s;return t.statusCode===204?s={info:Ve}:s={info:Be},t.data=s,t}catch(a){throw new Error(`\u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let i=`/repos/${a}/${r}/issues/${Number(o)}/sub_issues`,u=await this.get(i,s);if(u.statusCode===404)throw new Error(R);if(u.data){let n=u.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(g=>({id:g.id,name:g.name,color:g.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:lodashEs.capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));u.data=n;}return u}catch(a){throw new Error(`\u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,replace_parent:s}=e,i=await this.post(`/repos/${a}/${r}/issues/${o}/sub_issues`,{sub_issue_id:t,replace_parent:s});if(i.statusCode===404)throw new Error(R);if(i.data){let u={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:lodashEs.capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:lodashEs.capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=u;}return i}catch(a){throw new Error(`\u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t}=e,s=await this.delete(`/repos/${a}/${r}/issues/${o}/sub_issue`,null,{sub_issue_id:t});if(s.statusCode===404)throw new Error(R);if(s.data){let i={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:lodashEs.capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:lodashEs.capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,...s}=e,i={};s.before_id&&!s.after_id&&(i.before_id=s.before_id.toString()),s.after_id&&!s.before_id&&(i.after_id=s.after_id.toString());let u=`/repos/${a}/${r}/issues/${o}/sub_issues/priority`,n=await this.patch(u,i,{sub_issue_id:String(t)});if(n.statusCode===404)throw new Error(R);if(n.data){let l={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:lodashEs.capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(g=>({id:g.id,name:g.name,color:g.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:lodashEs.capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=l;}return n}catch(a){throw new Error(`\u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var ut={};P(ut,{Repo:()=>G});var G,_e=w(()=>{b();k();G=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_repos_list(e){if(!e.org)throw new Error(U);try{this.setRequestConfig({token:this.userToken});let{org:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=`/orgs/${a}/repos`,s=await this.get(t,o);switch(s.statusCode){case 404:throw new Error(S);case 401:throw new Error(_)}let i=e.format??this.format;if(s.data){let u=await Promise.all(s.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name??null,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email??null},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:i?await h(n.created_at):n.created_at,updated_at:i?await h(n.updated_at):n.updated_at,pushed_at:i?await h(n.pushed_at):n.pushed_at})));s.data=u;}return s}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,r={};!e?.visibility&&!e?.affiliation&&a?.type&&(r.type=a.type),a?.visibility&&(r.visibility=a.visibility),a?.affiliation&&(r.affiliation=a.affiliation),a?.sort&&(r.sort=a.sort),a?.direction&&(r.direction=a.direction),a?.per_page&&(r.per_page=a.per_page.toString()),a?.page&&(r.page=a.page.toString());let t=await this.get("/uses/repos",r);if(t.statusCode===401)throw new Error(_);let s=e?.format??this.format;if(t.data){let i=await Promise.all(t.data.map(async u=>({id:u.id,name:u.name,full_name:u.full_name,owner:{id:u.owner.id,login:u.owner.login,name:u.owner.name,avatar_url:u.owner.avatar_url,type:u.owner.type,html_url:u.owner.html_url,email:u.owner.email},public:!u.private,private:u.private,visibility:u.private?"private":"public",fork:u.fork,archived:u.archived,disabled:u.disabled,html_url:u.html_url,description:u.description,stargazers_count:u.stargazers_count,watchers_count:u.watchers_count,language:u.language,forks_count:u.forks_count,open_issues_count:u.open_issues_count,default_branch:u.default_branch,created_at:s?await h(u.created_at):u.created_at,updated_at:s?await h(u.updated_at):u.updated_at,pushed_at:s?await h(u.pushed_at):u.pushed_at})));t.data=i;}return t}catch(a){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error(x);this.setRequestConfig({token:this.userToken});let{username:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=e?.format??this.format,s=`/users/${a}/repos`,i=await this.get(s,o);switch(i.statusCode){case 404:throw new Error($);case 401:throw new Error(_)}if(i.data){let u=await Promise.all(i.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:t?await h(n.created_at):n.created_at,updated_at:t?await h(n.updated_at):n.updated_at,pushed_at:t?await h(n.pushed_at):n.pushed_at})));i.data=u;}return i}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}`);switch(o.statusCode){case 401:throw new Error(_);case 404:throw new Error(q)}let t=e?.format??this.format;if(o.data){let s={id:o.data.id,name:o.data.name,full_name:o.data.full_name,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,avatar_url:o.data.owner.avatar_url,type:o.data.owner.type,html_url:o.data.owner.html_url,email:o.data.owner.email},public:!o.data.private,private:o.data.private,visibility:o.data.private?"private":"public",fork:o.data.fork,archived:o.data.archived,disabled:o.data.disabled,html_url:o.data.html_url,description:o.data.description,stargazers_count:o.data.stargazers_count,watchers_count:o.data.watchers_count,language:o.data.language,forks_count:o.data.forks_count,open_issues_count:o.data.open_issues_count,default_branch:o.data.default_branch,created_at:t?await h(o.data.created_at):o.data.created_at,updated_at:t?await h(o.data.updated_at):o.data.updated_at,pushed_at:t?await h(o.data.pushed_at):o.data.pushed_at};o.data=s;}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/languages`);switch(o.statusCode){case 401:throw new Error(_);case 404:throw new Error(C)}if(o.data){let t=Object.entries(o.data),s=t.reduce((n,[,l])=>n+l,0),u={languages:t.map(([n,l])=>({language:n,color:oe(n.toLowerCase()),percent:Number((l/s*100).toFixed(2)),bytes:l}))};o.data=u;}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{owner:a,...r}=e,o={...r},t=await this.post(`/orgs/${a}/repos`,o);if(t.statusCode===401)throw new Error(_);let s=e?.format??this.format;if(t.data){let i={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:s?await h(t.data.created_at):t.data.created_at,updated_at:s?await h(t.data.updated_at):t.data.updated_at,pushed_at:s?await h(t.data.pushed_at):t.data.pushed_at};t.data=i;}return t}catch(a){throw new Error(`\u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,{...o}=e,t={};o.affiliation&&(t.milestone=o.affiliation.toString()),o.permission&&(t.permission=o.permission.toString()),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=await this.get(`/repos/${a}/${r}/collaborators`,t);if(s.data){let i=await Promise.all(s.data.map(u=>({id:u.id,login:u.login,avatar_url:u.avatar_url,email:u.email,name:u.name,permissions:u.permissions,role_name:u.role_name})));s.data=i;}return s}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.put(`/repos/${a}/${r}/collaborators/${o}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(te);if(t.statusCode===422){let s=t.data.message;if(s&&s.includes("is not a valid permission"))throw new Error(Me)}if(t.data){let s={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,avatar_url:t.data.inviter.avatar_url,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=s;}return t}catch(a){throw new Error(`\u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.delete(`/repos/${a}/${r}/collaborators/${o}`);if(t.statusCode===404)throw new Error(te);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u5931\u8D25`},t}catch(a){throw new Error(`\u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(c);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.visibility}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(c);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.default_branch}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(c);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.language}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var lt={};P(lt,{User:()=>j});var j,ye=w(()=>{b();k();j=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(ve);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:a});let r=await this.get(`/users/${e.username}`);if(r.statusCode===401)throw new Error(_);if(r.statusCode===404)throw new Error(q);if(r.data){let o={id:r.data.id,login:r.data.login,name:r.data.name||null,type:lodashEs.capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u7528\u6237\u6216\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Ae);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:this.userToken});let r=await this.get(`/user/${e.user_id}`);if(r.statusCode===401)throw new Error(_);if(r.statusCode===404)throw new Error($);if(r.data){let o={id:r.data.id,login:r.data.login,name:r.data.name||null,type:lodashEs.capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following};r.data=o;}return r}catch(r){throw new Error(`\u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_auth(e){let a=e?.access_token??this.userToken;if(!e||!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get("/user");switch(r.statusCode){case 401:throw new Error(_);case 404:throw new Error($)}if(r.data){let o={id:r.data.id,login:r.data.login,name:r.data.name||null,type:lodashEs.capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_token(e){return this.get_user_info_by_auth(e)}async get_user_contribution(e){try{if(!e.username)throw new Error(x);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${Se}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.BaseUrl});let r=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(r.statusCode===404)throw new Error(x);let o=await at(r.data);return {...r,data:o}}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var dt={};P(dt,{Org:()=>F});var F,we=w(()=>{b();k();F=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_info(e){if(!e.org)throw new Error(xe);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/orgs/${e.org}`);if(a.statusCode===404)throw new Error(S);if(a.data){let r={id:a.data.id,login:a.data.login,name:a.data.name,avatar_url:a.data.avatar_url,description:a.data.description,html_url:a.data.html_url};a.data=r;}return a}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}};});var ct={};P(ct,{WebHook:()=>J});var J,fe=w(()=>{b();k();J=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a||!e.payload||!e.signature)throw new Error(U);if(!e.signature.startsWith("sha256="))throw new Error(We);let r=false,o="error",t=400,s=ae,i;try{let u=pt__default.default.createHmac("sha256",a),n=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);u.update(n,"utf8");let l=u.digest("hex"),g=e.signature.replace("sha256=","");pt__default.default.timingSafeEqual(Buffer.from(l),Buffer.from(g))?(r=!0,o="ok",t=200,s="\u8BF7\u6C42\u6210\u529F",i={info:Fe}):(r=!1,o="error",t=403,s="\u8BF7\u6C42\u5931\u8D25",i={info:ae});}catch(u){throw new Error(`\u8BF7\u6C42\u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${u.message}`)}return Promise.resolve({success:r,status:o,statusCode:t,msg:s,data:i})}};});var K;exports.GitHubClient=void 0;var k=w(()=>{b();de();pe();K="github",exports.GitHubClient=class{BaseUrl;ApiUrl;jwtToken;userToken;format;Private_Key;Client_ID;Client_Secret;WebHook_Secret;currentRequestConfig;proxy;constructor(e){this.Private_Key=e.Private_Key,this.Client_ID=e.Client_ID,this.Client_Secret=e.Client_Secret,this.WebHook_Secret=e.WebHook_Secret,this.jwtToken=this.generate_jwt(),this.BaseUrl=le(K),this.ApiUrl=ue(K),this.userToken=null,this.currentRequestConfig={url:this.ApiUrl,token:null,tokenType:"Bearer"},this.format=e.format??false;}async get_app(){let{App:e}=await Promise.resolve().then(()=>(be(),mt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(ce(),ot));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(me(),nt));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(ge(),it));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(_e(),ut));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>(ye(),lt));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>(we(),dt));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(fe(),ct));return this.webhook=new e(this),this.webhook}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new url.URL(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(Q)}switch(e?.type){case "common":case "reverse":this.BaseUrl=le(K,e.address,e.type),this.ApiUrl=ue(K,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(Q)}}setToken(e){if(!e.startsWith("ghu_"))throw this.userToken=null,new Error(A);return this.userToken=e,this}generate_jwt(){let e=this.Private_Key,a={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return $t__default.default.sign(a,e,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:r}=this.currentRequestConfig,o=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new D(e,r,a??null,o,t)}async get(e,a,r){try{let t=await this.createRequest().get(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`GET \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async post(e,a,r){try{let t=await this.createRequest().post(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`POST \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async patch(e,a=null,r,o){try{let s=await this.createRequest().patch(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,r){try{let t=await this.createRequest().put(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`PUT \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async delete(e,a=null,r,o){try{let s=await this.createRequest().delete(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var mt={};P(mt,{App:()=>V});var V,be=w(()=>{b();k();V=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_app_info(e){let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(Pe);if(!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get(`/apps/${e.app_slug}`);if(r.statusCode===200){let o={id:r.data.id,name:r.data.name,client_id:r.data.client_id,slug:r.data.slug,owner:{id:r.data.owner.id,login:r.data.owner.login,name:r.data.owner.name,email:r.data.owner.email,html_url:r.data.owner.html_url,avatar_url:r.data.owner.avatar_url,type:lodashEs.capitalize(r.data.owner.type.toLowerCase())},description:r.data.description,external_url:r.data.external_url,html_url:r.data.html_url,permissions:r.data.permissions,events:r.data.events,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_app_info_by_auth(){try{this.setRequestConfig({url:this.ApiUrl,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:lodashEs.capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/installation`);switch(o.statusCode){case 404:throw new Error(C);case 301:throw new Error(ze)}if(o.data){let t={id:o.data.id,html_url:o.data.html_url,app_id:o.data.app_id,app_slug:o.data.app_slug,target_id:o.data.target_id,target_type:o.data.target_type,account:{id:o.data.account.id,login:o.data.account.login,name:o.data.account.name,email:o.data.account.email,html_url:o.data.account.html_url,avatar_url:o.data.account.avatar_url,type:lodashEs.capitalize(o.data.account.type.toLowerCase())},repository_selection:o.data.repository_selection,access_tokens_url:o.data.access_tokens_url,repositories_url:o.data.repositories_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=t;}return o}catch(a){throw new Error(`\u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}};});b();de();pe();var Re={};P(Re,{App:()=>V,Auth:()=>B,Commit:()=>z,GitHubClient:()=>exports.GitHubClient,Issue:()=>W,Org:()=>F,Repo:()=>G,User:()=>j,WebHook:()=>J});be();ce();k();me();ge();we();_e();ye();fe();var Ce=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new exports.GitHubClient(e.github);}};var bs=Ce;
6
+ exports.Client=Ce;exports.create_state_id=It;exports.default=bs;exports.formatDate=h;exports.get_langage_color=oe;exports.get_relative_time=Ct;exports.github=Re;
package/dist/index.d.ts CHANGED
@@ -382,16 +382,6 @@ interface CommitInfoCommonParamType {
382
382
  /** 是否格式化消息和日期 */
383
383
  format?: formatParamType['format'];
384
384
  }
385
- /**
386
- * 提交信息基础参数类型
387
- * 用于获取提交信息的基础参数类型,包含仓库的拥有者、仓库名称、提交SHA等信息。
388
- * */
389
- type CommitInfoBaseParamType = RepoBaseParamType & CommitInfoCommonParamType;
390
- /**
391
- * 提交信息URL参数类型
392
- * 用于获取提交信息的URL参数类型,包含仓库的URL和提交SHA等信息。
393
- * */
394
- type CommitInfoUrlParamType = RepoUrlParamType & CommitInfoCommonParamType;
395
385
  /** Git提交用户信息 */
396
386
  interface GitUser extends Omit<UserInfoResponseType, 'company' | 'bio' | 'blog' | 'followers' | 'following'> {
397
387
  /** 日期字符串 */
@@ -420,7 +410,7 @@ interface Commit$1 {
420
410
  * 仅在开启格式化消息时返回
421
411
  * @example "- add new feature"
422
412
  */
423
- body?: string;
413
+ body?: string | null;
424
414
  /** 提交树信息 */
425
415
  tree: {
426
416
  /** 树对象的SHA */
@@ -462,7 +452,7 @@ interface ParentCommit {
462
452
  url: string;
463
453
  }
464
454
  /** 提交参数类型 */
465
- type CommitInfoParamType = CommitInfoBaseParamType | CommitInfoUrlParamType;
455
+ type CommitInfoParamType = RepoParamType & CommitInfoCommonParamType;
466
456
  /** 提交信息响应类型 */
467
457
  interface CommitInfoResponseType {
468
458
  /** HTML URL */
@@ -480,6 +470,27 @@ interface CommitInfoResponseType {
480
470
  /** 变更文件列表 */
481
471
  files: DiffEntry[];
482
472
  }
473
+ /** 提交列表参数类型 */
474
+ type CommitListParamType = RepoParamType & {
475
+ /** SHA 或分支名称,用于指定从哪里开始列出提交 */
476
+ sha?: ShaParamType['sha'];
477
+ /** 仅返回包含此文件路径的提交 */
478
+ path?: string;
479
+ /** GitHub 用户名或电子邮件地址,用于按提交作者筛选 */
480
+ author?: string;
481
+ /** ISO 8601 格式的时间戳 (YYYY-MM-DDTHH:MM:SSZ),仅显示此时间之后更新的结果 */
482
+ since?: string;
483
+ /** ISO 8601 格式的时间戳 (YYYY-MM-DDTHH:MM:SSZ),仅返回此时间之前的提交 */
484
+ until?: string;
485
+ /** 每页的结果数(最多 100),默认: 30 */
486
+ per_page?: number;
487
+ /** 要获取的结果页码,默认: 1 */
488
+ page?: number;
489
+ /** 是否格式化消息和日期 */
490
+ format?: formatParamType['format'];
491
+ };
492
+ /** 提交列表响应类型 */
493
+ type CommitListResponseType = CommitInfoResponseType[];
483
494
 
484
495
  /** 议题用户信息响应类型 */
485
496
  type IssueUser = Omit<UserInfoResponseType, 'company' | 'bio' | 'blog' | 'followers' | 'following'>;
@@ -1190,10 +1201,10 @@ interface OrgRepoListParmType extends RepoListBaseParamType {
1190
1201
  format?: formatParamType['format'];
1191
1202
  }
1192
1203
  /**
1193
- * 组织仓库列表类型
1204
+ * 组织仓库列表响应类型
1194
1205
  * 该类型包含了多个仓库的信息,每个仓库都有自己的详细信息。
1195
1206
  */
1196
- type OrgRepoListType = RepoInfoResponseType[];
1207
+ type OrgRepoListResponseType = RepoInfoResponseType[];
1197
1208
  /** 创建组织仓库请求参数 */
1198
1209
  interface OrgRepoCreateParamType extends RepoOwnerParamType {
1199
1210
  /** 仓库名称 */
@@ -1277,7 +1288,7 @@ interface LanguageInfo {
1277
1288
  /** 仓库语言列表参数类型 */
1278
1289
  type RepoLanguagesListParamType = RepoBaseParamType;
1279
1290
  /** 仓库语言列表类型 */
1280
- interface RepoLanguagesListType {
1291
+ interface RepoLanguagesListResponseType {
1281
1292
  /** 仓库的语言统计信息列表 */
1282
1293
  languages: LanguageInfo[];
1283
1294
  }
@@ -1534,6 +1545,28 @@ declare class Commit extends GitHubClient {
1534
1545
  * ```
1535
1546
  */
1536
1547
  get_commit_info(options: CommitInfoParamType): Promise<ApiResponseType<CommitInfoResponseType>>;
1548
+ /**
1549
+ * 获取提交列表
1550
+ * 权限:
1551
+ * — Contents: read-only
1552
+ * @param options - 提交列表参数对象
1553
+ * - url 仓库URL地址
1554
+ * - owner 仓库拥有者
1555
+ * - sha 提交的SHA值,如果不提供,则默认获取仓库的默认分支的最新提交信息
1556
+ * - path 可选,提交路径
1557
+ * - author 可选,提交作者
1558
+ * - since 可选,提交时间范围开始
1559
+ * - until 可选,提交时间范围结束
1560
+ * - per_page 可选,每页提交数量,默认为30
1561
+ * - page 可选,页码,默认为1
1562
+ * @returns 提交列表
1563
+ * @example
1564
+ * ```ts
1565
+ * const commitList = await commit.get_commit_list({ owner: 'owner', repo:'repo' })
1566
+ * console.log(commitList)
1567
+ * ```
1568
+ */
1569
+ get_commit_list(options: CommitListParamType): Promise<ApiResponseType<CommitListResponseType>>;
1537
1570
  }
1538
1571
 
1539
1572
  /**
@@ -1595,7 +1628,7 @@ declare class Issue extends GitHubClient {
1595
1628
  * console.log(res) // { data: IssueListResponseType[] }
1596
1629
  * ```
1597
1630
  */
1598
- get_repo_issue_list(options: RepoIssueListParamType): Promise<ApiResponseType<IssueListResponseType>>;
1631
+ get_issues_list(options: RepoIssueListParamType): Promise<ApiResponseType<IssueListResponseType>>;
1599
1632
  /**
1600
1633
  * 创建一个Issue
1601
1634
  * 权限:
@@ -1754,7 +1787,7 @@ declare class Issue extends GitHubClient {
1754
1787
  * console.log(res) // { data: IssueCommentListResponseType[] }
1755
1788
  * ```
1756
1789
  */
1757
- get_repo_comments_list(options: RepoCommentListParamType): Promise<ApiResponseType<RepoCommentListResponseType>>;
1790
+ get_comments_list(options: RepoCommentListParamType): Promise<ApiResponseType<RepoCommentListResponseType>>;
1758
1791
  /**
1759
1792
  * 获取一个Issue下的评论列表
1760
1793
  * 权限:
@@ -2012,7 +2045,7 @@ declare class Repo extends GitHubClient {
2012
2045
  * console.log(repos)
2013
2046
  * ```
2014
2047
  */
2015
- get_org_repos_list(options: OrgRepoListParmType): Promise<ApiResponseType<OrgRepoListType>>;
2048
+ get_org_repos_list(options: OrgRepoListParmType): Promise<ApiResponseType<OrgRepoListResponseType>>;
2016
2049
  /**
2017
2050
  * 查询仓库详细信息
2018
2051
  * 权限: Metadata - read-only , 如果获取公开仓库可无需此权限
@@ -2063,7 +2096,7 @@ declare class Repo extends GitHubClient {
2063
2096
  * ```
2064
2097
  */
2065
2098
  get_repo_info(options: RepoInfoParamType): Promise<ApiResponseType<RepoInfoResponseType>>;
2066
- get_repo_languages_list(options: RepoLanguagesListParamType): Promise<ApiResponseType<RepoLanguagesListType>>;
2099
+ get_repo_languages_list(options: RepoLanguagesListParamType): Promise<ApiResponseType<RepoLanguagesListResponseType>>;
2067
2100
  /**
2068
2101
  * 创建组织仓库
2069
2102
  * 权限:
@@ -2694,4 +2727,4 @@ declare class Client {
2694
2727
  constructor(options: ClientType);
2695
2728
  }
2696
2729
 
2697
- export { type AccessCodeType, type AccessTokenType, type AddCollaboratorResponseType, type AddSubIssueParamType, type AddSubIssueResponseType, type ApiResponseType, type ApiType, type AppClientType, type AppInfoParamType, type AppInfoResponseType, type AppPermissions, type AppRepoInfoResponseType, type AppUser, type CheckTokenResponseType, Client, type ClientType, type CloseIssueParamType, type CloseIssueResponseType, type CodeOfConduct, type CollaboratorInfoResponseType, type CollaboratorListParamType, type CollaboratorListResponseType, type CollaboratorParamType, type Commit$1 as Commit, type CommitInfoBaseParamType, type CommitInfoCommonParamType, type CommitInfoParamType, type CommitInfoResponseType, type CommitInfoUrlParamType, type CommitStats, type CommonProxyType, type ContributionData, type ContributionResult, type CreateIssueResponseType, type CreateReleaseParamType, type CreateReleaseResponseType, type CreteIssueCommentParamType, type CreteIssueCommentResponseType, type CreteIssueParamType, type DeleteReleaseParamType, type DeleteReleaseResponseType, type DiffEntry, GitHubClient, type GitUser, type HttpProxyType, type HttpsProxyType, type IssueCommentInfoParamType, type IssueCommentInfoResponseType, type IssueCommentListParamType, type IssueCommentListResponseType, type IssueIdParamType, type IssueInfoParamType, type IssueInfoResponseType, type IssueLabelType, type IssueListResponseType, type IssueUser, type LanguageInfo, type License, type LockIssueParamType, type LockIssueResponseType, type MergeCommitMessage, type MergeCommitTitle, type MilestoneType, type OpenIssueParamType, type OpenIssueResponseType, type OrgInfoParamType, type OrgInfoResponseType, type OrgRepoCreateParamType, type OrgRepoCreateResponseType, type OrgRepoListParmType, type OrgRepoListType, type OrganizationNameParamType, type ParentCommit, type Permissions, type PkgInfoType, type ProxyParamsType, type ProxyType, type ProxyUrlType, type ReactionInfoType, type RefreshTokenResponseType, type RefreshTokenType, type ReleaseAssetsType, type ReleaseInfoByTagParamType, type ReleaseInfoByTagResponseType, type ReleaseInfoParamType, type ReleaseInfoResponseType, type ReleaseLatestParamTypeType, type ReleaseLatestResponseType, type ReleaseListParamType, type ReleaseListResponseType, type ReleaseUser, type RemoveCollaboratorParamType, type RemoveCollaboratorResponseType, type RemoveIssueCommentParamType, type RemoveIssueCommentResponseType, type RemoveSubIssueParamType, type RemoveSubIssueResponseType, type RepoBaseParamType, type RepoCommentListParamType, type RepoCommentListResponseType, type RepoDefaultBranchResponseType, type RepoInfoParamType, type RepoInfoResponseType, type RepoIssueListParamType, type RepoLanguagesListParamType, type RepoLanguagesListType, type RepoListBaseParamType, type RepoMainLanguageResponseType, type RepoNameParamType, type RepoOwnerParamType, type RepoParamType, type RepoUrlParamType, type RepoUser, type RepoVisibilityResponseType, type ReprioritizeSubIssueParamType, type ReprioritizeSubIssueResponseType, type RequestConfigType, type RequestTokenType, type ResponseHeadersType, type ResponseMsgType, type ResponseStatusCodeType, type ResponseSuccessType, type ResponseType, type ReverseProxyType, type SecurityAnalysisAdvancedSecurity, type SecurityAnalysisDependabotSecurityUpdates, type SecurityAnalysisSecretScanning, type SecurityAnalysisSecretScanningPushProtection, type SecurityAndAnalysis, type ShaParamType, type Socks5ProxyType, type SocksProxyType, type SquashMergeCommitMessage, type SquashMergeCommitTitle, type SubIssueListParamType, type SubIssueListResponseType, type TokenResponseType, type UnLockIssueParamType, type UnLockIssueResponseType, type UpdateIssueCommentParamType, type UpdateIssueCommentResponseType, type UpdateIssueParamType, type UpdateIssueResponseType, type UpdateReleaseParamType, type UpdateReleaseResponseType, type UserByTokenRepoListParamType, type UserIdParamType, type UserInfoByAuthParamType, type UserInfoByIdParamType, type UserInfoParamType, type UserInfoResponseType, type UserNameParamType, type UserRepoListParamType, type UserRepoListType, type WebHookSignatureParamType, type WebHookSignatureResponseType, create_state_id, Client as default, formatDate, type formatParamType, get_langage_color, get_relative_time, index as github };
2730
+ export { type AccessCodeType, type AccessTokenType, type AddCollaboratorResponseType, type AddSubIssueParamType, type AddSubIssueResponseType, type ApiResponseType, type ApiType, type AppClientType, type AppInfoParamType, type AppInfoResponseType, type AppPermissions, type AppRepoInfoResponseType, type AppUser, type CheckTokenResponseType, Client, type ClientType, type CloseIssueParamType, type CloseIssueResponseType, type CodeOfConduct, type CollaboratorInfoResponseType, type CollaboratorListParamType, type CollaboratorListResponseType, type CollaboratorParamType, type Commit$1 as Commit, type CommitInfoCommonParamType, type CommitInfoParamType, type CommitInfoResponseType, type CommitListParamType, type CommitListResponseType, type CommitStats, type CommonProxyType, type ContributionData, type ContributionResult, type CreateIssueResponseType, type CreateReleaseParamType, type CreateReleaseResponseType, type CreteIssueCommentParamType, type CreteIssueCommentResponseType, type CreteIssueParamType, type DeleteReleaseParamType, type DeleteReleaseResponseType, type DiffEntry, GitHubClient, type GitUser, type HttpProxyType, type HttpsProxyType, type IssueCommentInfoParamType, type IssueCommentInfoResponseType, type IssueCommentListParamType, type IssueCommentListResponseType, type IssueIdParamType, type IssueInfoParamType, type IssueInfoResponseType, type IssueLabelType, type IssueListResponseType, type IssueUser, type LanguageInfo, type License, type LockIssueParamType, type LockIssueResponseType, type MergeCommitMessage, type MergeCommitTitle, type MilestoneType, type OpenIssueParamType, type OpenIssueResponseType, type OrgInfoParamType, type OrgInfoResponseType, type OrgRepoCreateParamType, type OrgRepoCreateResponseType, type OrgRepoListParmType, type OrgRepoListResponseType, type OrganizationNameParamType, type ParentCommit, type Permissions, type PkgInfoType, type ProxyParamsType, type ProxyType, type ProxyUrlType, type ReactionInfoType, type RefreshTokenResponseType, type RefreshTokenType, type ReleaseAssetsType, type ReleaseInfoByTagParamType, type ReleaseInfoByTagResponseType, type ReleaseInfoParamType, type ReleaseInfoResponseType, type ReleaseLatestParamTypeType, type ReleaseLatestResponseType, type ReleaseListParamType, type ReleaseListResponseType, type ReleaseUser, type RemoveCollaboratorParamType, type RemoveCollaboratorResponseType, type RemoveIssueCommentParamType, type RemoveIssueCommentResponseType, type RemoveSubIssueParamType, type RemoveSubIssueResponseType, type RepoBaseParamType, type RepoCommentListParamType, type RepoCommentListResponseType, type RepoDefaultBranchResponseType, type RepoInfoParamType, type RepoInfoResponseType, type RepoIssueListParamType, type RepoLanguagesListParamType, type RepoLanguagesListResponseType, type RepoListBaseParamType, type RepoMainLanguageResponseType, type RepoNameParamType, type RepoOwnerParamType, type RepoParamType, type RepoUrlParamType, type RepoUser, type RepoVisibilityResponseType, type ReprioritizeSubIssueParamType, type ReprioritizeSubIssueResponseType, type RequestConfigType, type RequestTokenType, type ResponseHeadersType, type ResponseMsgType, type ResponseStatusCodeType, type ResponseSuccessType, type ResponseType, type ReverseProxyType, type SecurityAnalysisAdvancedSecurity, type SecurityAnalysisDependabotSecurityUpdates, type SecurityAnalysisSecretScanning, type SecurityAnalysisSecretScanningPushProtection, type SecurityAndAnalysis, type ShaParamType, type Socks5ProxyType, type SocksProxyType, type SquashMergeCommitMessage, type SquashMergeCommitTitle, type SubIssueListParamType, type SubIssueListResponseType, type TokenResponseType, type UnLockIssueParamType, type UnLockIssueResponseType, type UpdateIssueCommentParamType, type UpdateIssueCommentResponseType, type UpdateIssueParamType, type UpdateIssueResponseType, type UpdateReleaseParamType, type UpdateReleaseResponseType, type UserByTokenRepoListParamType, type UserIdParamType, type UserInfoByAuthParamType, type UserInfoByIdParamType, type UserInfoParamType, type UserInfoResponseType, type UserNameParamType, type UserRepoListParamType, type UserRepoListType, type WebHookSignatureParamType, type WebHookSignatureResponseType, create_state_id, Client as default, formatDate, type formatParamType, get_langage_color, get_relative_time, index as github };
package/dist/index.mjs CHANGED
@@ -1,4 +1,6 @@
1
- import mt from'path';import {URL as URL$1,fileURLToPath}from'url';import Ve from'fs';import ht from'color-convert';import q from'dayjs';import yt from'dayjs/plugin/relativeTime.js';import wt from'git-url-parse';import ft from'language-colors';import {v4}from'uuid';import $ from'axios';import {HttpProxyAgent}from'http-proxy-agent';import {HttpsProxyAgent}from'https-proxy-agent';import {SocksProxyAgent}from'socks-proxy-agent';import {capitalize}from'lodash-es';import lt from'crypto';import vt from'jsonwebtoken';var ct=Object.defineProperty;var y=(p,e)=>()=>(p&&(e=p(p=0)),e);var k=(p,e)=>{for(var a in e)ct(p,a,{get:e[a],enumerable:true});};var fe,K,I,be,M,P,Te,Re,Ce,d,ke,L,V,N,Pe,v,A,Ie,Ee,Y,ve,m,Ae,xe,$e,Me,Le,f,T,Ne,Ue,Se,qe,U,S,R,Oe,X,x,De,Q,E,Be=y(()=>{fe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",K="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",I="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",be="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",M="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",P="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Te="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A",Re="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u6216\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",Ce="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",d="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u62E5\u6709\u8005\u548C\u4ED3\u5E93\u540D\u79F0",ke="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",L="\u55B5\u545C~ \u53C2\u6570\u597D\u50CF\u4E0D\u592A\u5BF9\u5462",V="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",N="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Pe="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",v="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",A="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Ie="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Ee="\u55B5\u545C~ \u6743\u9650\u4E0D\u6B63\u786E\uFF0C\u8BF7\u68C0\u67E5\u6743\u9650",Y="\u55B5\u545C~ \u8FD9\u4E2A\u5237\u65B0\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",ve="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",m="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ae="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",xe="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",$e="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",Me="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",Le="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",f="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",T="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",Ne="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",Ue="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u9501\u5B9A\u5931\u8D25\u54E6",Se="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u5931\u8D25\u54E6",qe="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u89E3\u9501\u5931\u8D25\u54E6",U="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",S="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",R="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",Oe="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",X="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",x="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",De="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",Q="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",E="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var He,Z,ze,We,Ge,je,Fe=y(()=>{He="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",Z="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",ze="\u55B5\u545C~ WebHook \u7B7E\u540D\u6210\u529F",We="\u55B5\u545C~ \u8BAE\u9898\u9501\u5B9A\u6210\u529F",Ge="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",je="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u6210\u529F";});var _t,Je,Ke=y(()=>{_t=fileURLToPath(import.meta.url),Je=Object.freeze(mt.join(_t,"../..").replace(/\\/g,"/"));});function Ye(p="",e=""){e=e||Je;try{let a=`${e}/${p}`;if(!Ve.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let r=Ve.readFileSync(a,"utf8");return JSON.parse(r)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${p}`,a),{}}}async function Xe(p="zh-cn"){let e=String(p).toLowerCase();await import(`dayjs/locale/${e}.js`),q.locale(e);}async function _(p,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await Xe(e),q(p).format(a)}async function bt(p,e="zh-cn"){return await Xe(e),q.extend(yt),q(p).fromNow()}function Qe(p){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=p.match(e);if(a){let o=a[1];p=o.startsWith("https")?o:`https://${o}`;}let r=wt(p);return {owner:r.owner,repo:r.name}}function Tt(p){if(!Array.isArray(p))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(p.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!p.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${ht.rgb.hex(p)}`}function ee(p){return p=String(p).toLowerCase(),Tt(ft[p].color)??"#ededed"}async function Rt(p,e){return Promise.resolve(Array.from({length:Math.ceil(p.length/e)},(a,r)=>p.slice(r*e,r*e+e)))}async function Ze(p){let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,r=Array.from(p.matchAll(e),n=>n[1]),o=Array.from(p.matchAll(a),n=>String(n[1]).toLowerCase()==="no"?0:parseInt(n[1]));if(!r.length||!o.length)return {total:0,contributions:[]};let t=r.map((n,u)=>({date:n,count:o[u]})).sort((n,u)=>n.date.localeCompare(u.date)),s=await Rt(t,7);return {total:o.reduce((n,u)=>n+u,0),contributions:s}}var te=y(()=>{Ke();});var ae,et=y(()=>{te();ae=Ye("package.json");});var b=y(()=>{Be();Fe();te();et();});function se(p="github",e,a="common"){let r={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${r[p??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[p]}`}function re(p="github",e,a="common"){let r={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${r[p??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[p]}`}async function kt(){return Promise.resolve(v4().replace(/-/g,""))}var oe=y(()=>{});var O,ne=y(()=>{b();O=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",r,o,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=r,this.proxy=o,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,r,o,t){let s=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),n={headers:this.createHeaders(t),params:r,validateStatus:()=>true};if(this.proxy){let u=this.proxy.type,i=this.proxy.address;switch(u){case "http":n.httpAgent=new HttpProxyAgent(i),n.httpsAgent=new HttpsProxyAgent(i);break;case "https":n.httpsAgent=new HttpsProxyAgent(i);break;case "socks":case "socks5":{let l=new SocksProxyAgent(i);n.httpAgent=l,n.httpsAgent=l;break}}}try{let u;switch(e){case "get":u=await $.get(s,n);break;case "post":u=await $.post(s,o,n);break;case "patch":u=await $.patch(s,o,n);break;case "put":u=await $.put(s,o,n);break;case "delete":u=await $.delete(s,{...n,data:o});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let i=Object.fromEntries(Object.entries(u.headers).filter(([l,h])=>h!==void 0).map(([l,h])=>[l.toLowerCase(),h]));return {success:!0,statusCode:u.status,headers:i,data:u.data,msg:u.status>=200&&u.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(u){let i=u,l=i.response?.headers?Object.fromEntries(Object.entries(i.response.headers).filter(([h,w])=>w!==void 0).map(([h,w])=>[h,w])):{};return {success:false,statusCode:i.response?.status??500,headers:l,msg:i.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,r){return this.request("get",e,a,null,r)}async post(e,a,r,o){return this.request("post",e,a,r,o)}async patch(e,a=null,r,o){return this.request("patch",e,a,r,o)}async put(e,a,r,o){return this.request("put",e,a,r,o)}async delete(e,a=null,r,o){return this.request("delete",e,a,r,o)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${ae.name}/v${ae.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let r=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${r}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var at={};k(at,{Auth:()=>D});var D,ie=y(()=>{b();C();D=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_token_by_code(e){try{if(!e.code)throw new Error(K);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!r)throw new Error(xe);let o={success:r,info:Z,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=o;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{let a=e?.access_token??this.userToken;if(!a)throw new Error(I);if(!a.startsWith("ghu_"))throw new Error(Ie);this.setRequestConfig({url:this.ApiUrl,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let r=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(r.data){let o=!(r.status==="ok"&&(r.statusCode===404||r.statusCode===422));r.data={success:o,info:o?Z:ve};}return r}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!e.refresh_token)throw new Error(K);if(!e.refresh_token.startsWith("ghr_"))throw new Error(Y);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error,o=Ae;switch(a.data.error){case "bad_refresh_token":o=Y;break;case "unauthorized":o=m;break}if(a.data){if(!r)throw new Error(o);let t={success:r,info:He,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{let a=new URL("/login/oauth/authorize",this.BaseUrl);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`\u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var rt={};k(rt,{Commit:()=>B});var B,ue=y(()=>{b();C();B=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,r,o,t;if("url"in e){o=e.url;let u=Qe(o);a=u?.owner,r=u?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,r=e.repo;else throw new Error(ke);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:r});let s=await this.get(`/repos/${a}/${r}/commits/${t}`);switch(s.statusCode){case 401:throw new Error(m);case 404:throw new Error(Le);case 422:throw new Error(Me)}let n=e.format??this.format;if(s.data){let u=s.data?.commit?.message??"",[i,...l]=u.split(`
2
- `),h={html_url:s.data.html_url,sha:s.data.sha,comments_url:s.data.comments_url,commit:{url:s.data.commit.url,author:{id:s.data.commit.author.id,login:s.data.commit.author.login,name:s.data.commit.author.name,avatar_url:s.data.commit.author.avatar_url,email:s.data.commit.author.email,html_url:s.data.commit.author.html_url,type:capitalize(String(s.data.commit.author.type).toLowerCase()),date:n?await _(s.data.commit.author.date):s.data.commit.author.date},committer:{id:s.data.commit.committer.id,login:s.data.commit.committer.login,name:s.data.commit.committer.name,avatar_url:s.data.commit.committer.avatar_url,email:s.data.commit.committer.email,html_url:s.data.commit.committer.html_url,type:capitalize(String(s.data.commit.committer.type).toLowerCase()),date:n?await _(s.data.commit.committer.date):s.data.commit.committer.date},message:s.data.commit.message,...n&&{title:i,body:l.join(`
3
- `)},tree:{url:s.data.commit.tree.url,sha:s.data.commit.tree.sha}},parents:s.data.parents.map(w=>({sha:w.sha,url:w.url})),stats:{additions:s.data.stats.additions,deletions:s.data.stats.deletions,total:s.data.stats.total},files:s.data.files.map(w=>({sha:w.sha,filename:w.filename,status:w.status,additions:w.additions,deletions:w.deletions,changes:w.changes,blob_url:w.blob_url,raw_url:w.raw_url}))};s.data=h;}return s}catch(a){throw new Error(`\u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}};});var ot={};k(ot,{Issue:()=>H});var H,le=y(()=>{b();C();H=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_issue_info(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.get(`/repos/${a}/${r}/issues/${Number(o)}`);switch(t.statusCode){case 404:throw new Error(T);case 301:throw new Error(Ne)}if(t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6Issue\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_repo_issue_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.milestone&&(t.milestone=o.milestone.toString()),o.state&&(t.state=o.state),o.assignee&&(t.assignee=o.assignee),o.creator&&(t.creator=o.creator),o.labels&&(t.labels=o.labels),o.sort&&(t.sort=o.sort),o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues`,n=await this.get(s,t);if(n.statusCode===401)throw new Error(m);if(n.data){let u=n.data.map(i=>({id:i.id,html_url:i.html_url,number:i.number,comments:i.comments,state:i.state,state_reason:i.state_reason,title:i.title,body:i.body,user:i.user?{id:i.user.id,login:i.user.login,name:i.user.name,email:i.user.email,html_url:i.user.html_url,avatar_url:i.user.avatar_url,type:capitalize(i.user.type.toLowerCase())}:null,labels:i.labels?i.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:i.assignee?{id:i.assignee.id,login:i.assignee.login,name:i.assignee.name,email:i.assignee.email,html_url:i.assignee.html_url,avatar_url:i.assignee.avatar_url,type:capitalize(i.assignee.type.toLowerCase())}:null,milestone:i.milestone?{id:i.milestone.id,url:i.milestone.url,number:i.milestone.number,state:i.milestone.state,title:i.milestone.title,description:i.milestone.description,open_issues:i.milestone.open_issues,closed_issues:i.milestone.closed_issues,created_at:i.milestone.created_at,updated_at:i.milestone.updated_at,closed_at:i.milestone.closed_at,due_on:i.milestone.due_on}:null,closed_at:i.closed_at,created_at:i.created_at,updated_at:i.updated_at}));n.data=u;}return n}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u7684Issue\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.title)throw new Error(Te);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={...o,...o.labels&&{labels:Array.isArray(o.labels)?o.labels:[o.labels]},...o.assignees&&{assignees:Array.isArray(o.assignees)?o.assignees:[o.assignees]}},s=await this.post(`/repos/${a}/${r}/issues`,t);switch(s.statusCode){case 403:throw new Error(m);case 301:throw new Error(R)}if(s.data&&s.data){let n={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u521B\u5EFAIssue\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},n=await this.patch(`/repos/${a}/${r}/issues/${Number(o)}`,null,s);switch(n.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}if(n.data&&n.data){let u={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=u;}return n}catch(a){throw new Error(`\u66F4\u65B0Issue\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u6253\u5F00Issue\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u5173\u95EDIssue\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,lock_reason:t}=e,s=await this.put(`/repos/${a}/${r}/issues/${Number(o)}`,{locked:!0,lock_reason:t});switch(s.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}let n;return s.statusCode===204?n={info:We}:n={info:Ue},s.data=n,s}catch(a){throw new Error(`\u9501\u5B9AIssue${e.issue_number}\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/${o}/lock`);switch(t.statusCode){case 404:throw new Error(T);case 403:throw new Error(m);case 301:throw new Error(R)}let s;return t.statusCode===204?s={info:Ge}:s={info:qe},t.data=s,t}catch(a){throw new Error(`\u89E3\u9501Issue\u5931\u8D25: ${a.message}`)}}async get_repo_comments_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.sort&&(t.sort=o.sort),o.sort&&o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues/comments/`,n=await this.get(s,t);if(n.statusCode===404)throw new Error(f);if(n.data){let u=n.data.map(i=>({id:i.id,html_url:i.html_url,body:i.body,user:{id:i.user.id,login:i.user.login,name:i.user.name,email:i.user.email,html_url:i.user.html_url,avatar_url:i.user.avatar_url,type:capitalize(i.user.type.toLowerCase())},created_at:i.created_at,updated_at:i.updated_at}));n.data=u;}return n}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93${e.owner}/${e.repo}\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(P);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.since&&(s.since=t.since),t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let n=`/repos/${a}/${r}/issues/${Number(o)}/comments`,u=await this.get(n,s);if(u.statusCode===404)throw new Error(f);if(u.data){let i=u.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));u.data=i;}return u}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.comment_id)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.get(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);if(t.data){let s={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.body)throw new Error(be);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,body:t}=e,s=await this.post(`/repos/${a}/${r}/issues/${Number(o)}/comments`,{body:t});if(s.statusCode===404)throw new Error(f);if(s.data){let n={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.comment_id)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o,...t}=e,s=await this.patch(`/repos/${a}/${r}/issues/comments/${Number(o)}`,null,t);if(s.statusCode===404)throw new Error(f);if(s.data){let n={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.comment_id)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);let s;return t.statusCode===204?s={info:je}:s={info:Se},t.data=s,t}catch(a){throw new Error(`\u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let n=`/repos/${a}/${r}/issues/${Number(o)}/sub_issues`,u=await this.get(n,s);if(u.statusCode===404)throw new Error(T);if(u.data){let i=u.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(h=>({id:h.id,name:h.name,color:h.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));u.data=i;}return u}catch(a){throw new Error(`\u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,replace_parent:s}=e,n=await this.post(`/repos/${a}/${r}/issues/${o}/sub_issues`,{sub_issue_id:t,replace_parent:s});if(n.statusCode===404)throw new Error(T);if(n.data){let u={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=u;}return n}catch(a){throw new Error(`\u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t}=e,s=await this.delete(`/repos/${a}/${r}/issues/${o}/sub_issue`,null,{sub_issue_id:t});if(s.statusCode===404)throw new Error(T);if(s.data){let n={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=n;}return s}catch(a){throw new Error(`\u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(d);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,...s}=e,n={};s.before_id&&!s.after_id&&(n.before_id=s.before_id.toString()),s.after_id&&!s.before_id&&(n.after_id=s.after_id.toString());let u=`/repos/${a}/${r}/issues/${o}/sub_issues/priority`,i=await this.patch(u,n,{sub_issue_id:String(t)});if(i.statusCode===404)throw new Error(T);if(i.data){let l={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(h=>({id:h.id,name:h.name,color:h.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=l;}return i}catch(a){throw new Error(`\u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var nt={};k(nt,{Repo:()=>z});var z,pe=y(()=>{b();C();z=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_repos_list(e){if(!e.org)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{org:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=`/orgs/${a}/repos`,s=await this.get(t,o);switch(s.statusCode){case 404:throw new Error(U);case 401:throw new Error(m)}let n=e.format??this.format;if(s.data){let u=await Promise.all(s.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name??null,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email??null},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:n?await _(i.created_at):i.created_at,updated_at:n?await _(i.updated_at):i.updated_at,pushed_at:n?await _(i.pushed_at):i.pushed_at})));s.data=u;}return s}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,r={};!e?.visibility&&!e?.affiliation&&a?.type&&(r.type=a.type),a?.visibility&&(r.visibility=a.visibility),a?.affiliation&&(r.affiliation=a.affiliation),a?.sort&&(r.sort=a.sort),a?.direction&&(r.direction=a.direction),a?.per_page&&(r.per_page=a.per_page.toString()),a?.page&&(r.page=a.page.toString());let t=await this.get("/uses/repos",r);if(t.statusCode===401)throw new Error(m);let s=e?.format??this.format;if(t.data){let n=await Promise.all(t.data.map(async u=>({id:u.id,name:u.name,full_name:u.full_name,owner:{id:u.owner.id,login:u.owner.login,name:u.owner.name,avatar_url:u.owner.avatar_url,type:u.owner.type,html_url:u.owner.html_url,email:u.owner.email},public:!u.private,private:u.private,visibility:u.private?"private":"public",fork:u.fork,archived:u.archived,disabled:u.disabled,html_url:u.html_url,description:u.description,stargazers_count:u.stargazers_count,watchers_count:u.watchers_count,language:u.language,forks_count:u.forks_count,open_issues_count:u.open_issues_count,default_branch:u.default_branch,created_at:s?await _(u.created_at):u.created_at,updated_at:s?await _(u.updated_at):u.updated_at,pushed_at:s?await _(u.pushed_at):u.pushed_at})));t.data=n;}return t}catch(a){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error(v);this.setRequestConfig({token:this.userToken});let{username:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=e?.format??this.format,s=`/users/${a}/repos`,n=await this.get(s,o);switch(n.statusCode){case 404:throw new Error(x);case 401:throw new Error(m)}if(n.data){let u=await Promise.all(n.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:t?await _(i.created_at):i.created_at,updated_at:t?await _(i.updated_at):i.updated_at,pushed_at:t?await _(i.pushed_at):i.pushed_at})));n.data=u;}return n}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}`);switch(o.statusCode){case 401:throw new Error(m);case 404:throw new Error(S)}let t=e?.format??this.format;if(o.data){let s={id:o.data.id,name:o.data.name,full_name:o.data.full_name,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,avatar_url:o.data.owner.avatar_url,type:o.data.owner.type,html_url:o.data.owner.html_url,email:o.data.owner.email},public:!o.data.private,private:o.data.private,visibility:o.data.private?"private":"public",fork:o.data.fork,archived:o.data.archived,disabled:o.data.disabled,html_url:o.data.html_url,description:o.data.description,stargazers_count:o.data.stargazers_count,watchers_count:o.data.watchers_count,language:o.data.language,forks_count:o.data.forks_count,open_issues_count:o.data.open_issues_count,default_branch:o.data.default_branch,created_at:t?await _(o.data.created_at):o.data.created_at,updated_at:t?await _(o.data.updated_at):o.data.updated_at,pushed_at:t?await _(o.data.pushed_at):o.data.pushed_at};o.data=s;}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/languages`);switch(o.statusCode){case 401:throw new Error(m);case 404:throw new Error(R)}if(o.data){let t=Object.values(o.data).reduce((s,n)=>s+n,0);o.data={languages:await Promise.all(Object.entries(o.data).map(([s,n])=>{let u=String(s).toLowerCase();return {language:s,color:ee(u),percent:Number((n/t*100).toFixed(2)),bytes:n}}))};}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{owner:a,...r}=e,o={...r},t=await this.post(`/orgs/${a}/repos`,o);if(t.statusCode===401)throw new Error(m);let s=e?.format??this.format;if(t.data){let n={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:s?await _(t.data.created_at):t.data.created_at,updated_at:s?await _(t.data.updated_at):t.data.updated_at,pushed_at:s?await _(t.data.pushed_at):t.data.pushed_at};t.data=n;}return t}catch(a){throw new Error(`\u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,{...o}=e,t={};o.affiliation&&(t.milestone=o.affiliation.toString()),o.permission&&(t.permission=o.permission.toString()),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=await this.get(`/repos/${a}/${r}/collaborators`,t);return s.data&&(s.data=await Promise.all(s.data.map(n=>({id:n.id,login:n.login,avatar_url:n.avatar_url,email:n.email,name:n.name,permissions:n.permissions,role_name:n.role_name})))),s}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.put(`/repos/${a}/${r}/collaborators/${o}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(X);if(t.statusCode===422){let s=t.data.message;if(s&&s.includes("is not a valid permission"))throw new Error(Ee)}if(t.data){let s={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,avatar_url:t.data.inviter.avatar_url,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=s;}return t}catch(a){throw new Error(`\u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.delete(`/repos/${a}/${r}/collaborators/${o}`);if(t.statusCode===404)throw new Error(X);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u5931\u8D25`},t}catch(a){throw new Error(`\u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(d);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.visibility}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(d);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.default_branch}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(d);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.language}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var it={};k(it,{User:()=>W});var W,ce=y(()=>{b();C();W=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(Re);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:a});let r=await this.get(`/users/${e.username}`);if(r.statusCode===401)throw new Error(m);if(r.statusCode===404)throw new Error(S);return r.data&&(r.data={id:r.data.id,login:r.data.login,name:r.data.name||null,type:capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following}),r}catch(r){throw new Error(`\u83B7\u53D6\u7528\u6237\u6216\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Pe);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:this.userToken});let r=await this.get(`/user/${e.user_id}`);if(r.statusCode===401)throw new Error(m);if(r.statusCode===404)throw new Error(x);return r.data&&(r.data={id:r.data.id,login:r.data.login,name:r.data.name||null,type:capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following}),r}catch(r){throw new Error(`\u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_auth(e){let a=e?.access_token??this.userToken;if(!e||!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get("/user");switch(r.statusCode){case 401:throw new Error(m);case 404:throw new Error(x)}return r.data&&(r.data={id:r.data.id,login:r.data.login,name:r.data.name||null,type:capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following}),r}catch(r){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_token(e){return this.get_user_info_by_auth(e)}async get_user_contribution(e){try{if(!e.username)throw new Error(v);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${$e}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.BaseUrl});let r=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(r.statusCode===404)throw new Error(v);let o=await Ze(r.data);return {...r,data:o}}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var ut={};k(ut,{Org:()=>G});var G,me=y(()=>{b();C();G=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_info(e){if(!e.org)throw new Error(Ce);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/orgs/${e.org}`);if(a.statusCode===404)throw new Error(U);if(a.data){let r={id:a.data.id,login:a.data.login,name:a.data.name,avatar_url:a.data.avatar_url,description:a.data.description,html_url:a.data.html_url};a.data=r;}return a}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}};});var pt={};k(pt,{WebHook:()=>j});var j,ge=y(()=>{b();C();j=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a||!e.payload||!e.signature)throw new Error(L);if(!e.signature.startsWith("sha256="))throw new Error(De);let r=false,o="error",t=400,s=Q,n;try{let u=lt.createHmac("sha256",a),i=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);u.update(i,"utf8");let l=u.digest("hex"),h=e.signature.replace("sha256=","");lt.timingSafeEqual(Buffer.from(l),Buffer.from(h))?(r=!0,o="ok",t=200,s="\u8BF7\u6C42\u6210\u529F",n={info:ze}):(r=!1,o="error",t=403,s="\u8BF7\u6C42\u5931\u8D25",n={info:Q});}catch(u){throw new Error(`\u8BF7\u6C42\u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${u.message}`)}return Promise.resolve({success:r,status:o,statusCode:t,msg:s,data:n})}};});var F,g,C=y(()=>{b();oe();ne();F="github",g=class{BaseUrl;ApiUrl;jwtToken;userToken;format;Private_Key;Client_ID;Client_Secret;WebHook_Secret;currentRequestConfig;proxy;constructor(e){this.Private_Key=e.Private_Key,this.Client_ID=e.Client_ID,this.Client_Secret=e.Client_Secret,this.WebHook_Secret=e.WebHook_Secret,this.jwtToken=this.generate_jwt(),this.BaseUrl=re(F),this.ApiUrl=se(F),this.userToken=null,this.currentRequestConfig={url:this.ApiUrl,token:null,tokenType:"Bearer"},this.format=e.format??false;}async get_app(){let{App:e}=await Promise.resolve().then(()=>(_e(),dt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(ie(),at));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(ue(),rt));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(le(),ot));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(pe(),nt));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>(ce(),it));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>(me(),ut));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(ge(),pt));return this.webhook=new e(this),this.webhook}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new URL$1(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(V)}switch(e?.type){case "common":case "reverse":this.BaseUrl=re(F,e.address,e.type),this.ApiUrl=se(F,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(V)}}setToken(e){if(!e.startsWith("ghu_"))throw this.userToken=null,new Error(A);return this.userToken=e,this}generate_jwt(){let e=this.Private_Key,a={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return vt.sign(a,e,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:r}=this.currentRequestConfig,o=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new O(e,r,a??null,o,t)}async get(e,a,r){try{let t=await this.createRequest().get(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`GET \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async post(e,a,r){try{let t=await this.createRequest().post(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`POST \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async patch(e,a=null,r,o){try{let s=await this.createRequest().patch(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,r){try{let t=await this.createRequest().put(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`PUT \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async delete(e,a=null,r,o){try{let s=await this.createRequest().delete(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(E);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var dt={};k(dt,{App:()=>J});var J,_e=y(()=>{b();C();J=class extends g{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_app_info(e){let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(fe);if(!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get(`/apps/${e.app_slug}`);if(r.statusCode===200){let o={id:r.data.id,name:r.data.name,client_id:r.data.client_id,slug:r.data.slug,owner:{id:r.data.owner.id,login:r.data.owner.login,name:r.data.owner.name,email:r.data.owner.email,html_url:r.data.owner.html_url,avatar_url:r.data.owner.avatar_url,type:capitalize(r.data.owner.type.toLowerCase())},description:r.data.description,external_url:r.data.external_url,html_url:r.data.html_url,permissions:r.data.permissions,events:r.data.events,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_app_info_by_auth(){try{this.setRequestConfig({url:this.ApiUrl,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!e.owner||!e.repo)throw new Error(d);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/installation`);switch(o.statusCode){case 404:throw new Error(R);case 301:throw new Error(Oe)}if(o.data){let t={id:o.data.id,html_url:o.data.html_url,app_id:o.data.app_id,app_slug:o.data.app_slug,target_id:o.data.target_id,target_type:o.data.target_type,account:{id:o.data.account.id,login:o.data.account.login,name:o.data.account.name,email:o.data.account.email,html_url:o.data.account.html_url,avatar_url:o.data.account.avatar_url,type:capitalize(o.data.account.type.toLowerCase())},repository_selection:o.data.repository_selection,access_tokens_url:o.data.access_tokens_url,repositories_url:o.data.repositories_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=t;}return o}catch(a){throw new Error(`\u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}};});b();oe();ne();var ye={};k(ye,{App:()=>J,Auth:()=>D,Commit:()=>B,GitHubClient:()=>g,Issue:()=>H,Org:()=>G,Repo:()=>z,User:()=>W,WebHook:()=>j});_e();ie();C();ue();le();me();pe();ce();ge();var we=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new g(e.github);}};var fs=we;
4
- export{we as Client,g as GitHubClient,kt as create_state_id,fs as default,_ as formatDate,ee as get_langage_color,bt as get_relative_time,ye as github};
1
+ import ht from'path';import {URL as URL$1,fileURLToPath}from'url';import Ze from'fs';import ft from'color-convert';import O from'dayjs';import bt from'dayjs/plugin/relativeTime.js';import Tt from'git-url-parse';import Rt from'language-colors';import {v4}from'uuid';import M from'axios';import {HttpProxyAgent}from'http-proxy-agent';import {HttpsProxyAgent}from'https-proxy-agent';import {SocksProxyAgent}from'socks-proxy-agent';import {capitalize}from'lodash-es';import pt from'crypto';import $t from'jsonwebtoken';var _t=Object.defineProperty;var w=(d,e)=>()=>(d&&(e=d(d=0)),e);var P=(d,e)=>{for(var a in e)_t(d,a,{get:e[a],enumerable:true});};var Pe,Y,I,Ee,L,E,Ie,ve,xe,c,X,U,Q,N,Ae,x,A,$e,Me,Z,Le,_,Ue,Ne,Se,qe,ee,f,R,Oe,De,Be,He,S,q,C,ze,te,$,We,ae,v,Ge=w(()=>{Pe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",Y="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",I="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",Ee="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",L="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",E="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Ie="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A",ve="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u6216\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",xe="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",c="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u62E5\u6709\u8005\u548C\u4ED3\u5E93\u540D\u79F0",X="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",U="\u55B5\u545C~ \u53C2\u6570\u597D\u50CF\u4E0D\u592A\u5BF9\u5462",Q="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",N="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",Ae="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",x="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",A="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",$e="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Me="\u55B5\u545C~ \u6743\u9650\u4E0D\u6B63\u786E\uFF0C\u8BF7\u68C0\u67E5\u6743\u9650",Z="\u55B5\u545C~ \u8FD9\u4E2A\u5237\u65B0\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",Le="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",_="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ue="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",Ne="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",Se="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",qe="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",ee="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",f="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",R="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",Oe="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",De="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u9501\u5B9A\u5931\u8D25\u54E6",Be="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u5931\u8D25\u54E6",He="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u89E3\u9501\u5931\u8D25\u54E6",S="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",q="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",C="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",ze="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",te="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",$="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",We="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",ae="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",v="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var je,se,Fe,Je,Ke,Ve,Ye=w(()=>{je="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",se="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",Fe="\u55B5\u545C~ WebHook \u7B7E\u540D\u6210\u529F",Je="\u55B5\u545C~ \u8BAE\u9898\u9501\u5B9A\u6210\u529F",Ke="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",Ve="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u521B\u5EFA\u6210\u529F";});var wt,Xe,Qe=w(()=>{wt=fileURLToPath(import.meta.url),Xe=Object.freeze(ht.join(wt,"../..").replace(/\\/g,"/"));});function et(d="",e=""){e=e||Xe;try{let a=`${e}/${d}`;if(!Ze.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let r=Ze.readFileSync(a,"utf8");return JSON.parse(r)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${d}`,a),{}}}async function tt(d="zh-cn"){let e=String(d).toLowerCase();await import(`dayjs/locale/${e}.js`),O.locale(e);}async function h(d,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await tt(e),O(d).format(a)}async function Ct(d,e="zh-cn"){return await tt(e),O.extend(bt),O(d).fromNow()}function re(d){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=d.match(e);if(a){let o=a[1];d=o.startsWith("https")?o:`https://${o}`;}let r=Tt(d);return {owner:r.owner,repo:r.name}}function kt(d){if(!Array.isArray(d))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(d.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!d.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${ft.rgb.hex(d)}`}function oe(d){return d=String(d).toLowerCase(),kt(Rt[d].color)??"#ededed"}async function Pt(d,e){return Promise.resolve(Array.from({length:Math.ceil(d.length/e)},(a,r)=>d.slice(r*e,r*e+e)))}async function at(d){let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,r=Array.from(d.matchAll(e),i=>i[1]),o=Array.from(d.matchAll(a),i=>String(i[1]).toLowerCase()==="no"?0:parseInt(i[1]));if(!r.length||!o.length)return {total:0,contributions:[]};let t=r.map((i,u)=>({date:i,count:o[u]})).sort((i,u)=>i.date.localeCompare(u.date)),s=await Pt(t,7);return {total:o.reduce((i,u)=>i+u,0),contributions:s}}var ne=w(()=>{Qe();});var ie,st=w(()=>{ne();ie=et("package.json");});var b=w(()=>{Ge();Ye();ne();st();});function ue(d="github",e,a="common"){let r={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${r[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[d]}`}function le(d="github",e,a="common"){let r={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${r[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${r[d]}`}async function It(){return Promise.resolve(v4().replace(/-/g,""))}var de=w(()=>{});var D,pe=w(()=>{b();D=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",r,o,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=r,this.proxy=o,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,r,o,t){let s=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),i={headers:this.createHeaders(t),params:r,validateStatus:()=>true};if(this.proxy){let u=this.proxy.type,n=this.proxy.address;switch(u){case "http":i.httpAgent=new HttpProxyAgent(n),i.httpsAgent=new HttpsProxyAgent(n);break;case "https":i.httpsAgent=new HttpsProxyAgent(n);break;case "socks":case "socks5":{let l=new SocksProxyAgent(n);i.httpAgent=l,i.httpsAgent=l;break}}}try{let u;switch(e){case "get":u=await M.get(s,i);break;case "post":u=await M.post(s,o,i);break;case "patch":u=await M.patch(s,o,i);break;case "put":u=await M.put(s,o,i);break;case "delete":u=await M.delete(s,{...i,data:o});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let n=Object.fromEntries(Object.entries(u.headers).filter(([l,g])=>g!==void 0).map(([l,g])=>[l.toLowerCase(),g]));return {success:!0,statusCode:u.status,headers:n,data:u.data,msg:u.status>=200&&u.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(u){let n=u,l=n.response?.headers?Object.fromEntries(Object.entries(n.response.headers).filter(([g,p])=>p!==void 0).map(([g,p])=>[g,p])):{};return {success:false,statusCode:n.response?.status??500,headers:l,msg:n.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,r){return this.request("get",e,a,null,r)}async post(e,a,r,o){return this.request("post",e,a,r,o)}async patch(e,a=null,r,o){return this.request("patch",e,a,r,o)}async put(e,a,r,o){return this.request("put",e,a,r,o)}async delete(e,a=null,r,o){return this.request("delete",e,a,r,o)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${ie.name}/v${ie.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let r=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${r}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var ot={};P(ot,{Auth:()=>B});var B,ce=w(()=>{b();k();B=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_token_by_code(e){try{if(!e.code)throw new Error(Y);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!r)throw new Error(Ne);let o={success:r,info:se,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=o;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{let a=e?.access_token??this.userToken;if(!a)throw new Error(I);if(!a.startsWith("ghu_"))throw new Error($e);this.setRequestConfig({url:this.ApiUrl,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let r=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(r.data){let o=!(r.status==="ok"&&(r.statusCode===404||r.statusCode===422));r.data={success:o,info:o?se:Le};}return r}catch(a){throw new Error(`\u8BF7\u6C42\u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!e.refresh_token)throw new Error(Y);if(!e.refresh_token.startsWith("ghr_"))throw new Error(Z);this.setRequestConfig({url:this.BaseUrl});let a=await this.post("login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),r=a.status==="ok"&&a.statusCode===200&&!a.data.error,o=Ue;switch(a.data.error){case "bad_refresh_token":o=Z;break;case "unauthorized":o=_;break}if(a.data){if(!r)throw new Error(o);let t={success:r,info:je,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`\u8BF7\u6C42\u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{let a=new URL("/login/oauth/authorize",this.BaseUrl);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`\u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var nt={};P(nt,{Commit:()=>z});var z,me=w(()=>{b();k();z=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,r,o,t;if("url"in e){o=e.url;let u=re(o);a=u?.owner,r=u?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,r=e.repo;else throw new Error(X);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:r});let s=await this.get(`/repos/${a}/${r}/commits/${t}`);switch(s.statusCode){case 401:throw new Error(_);case 404:throw new Error(ee);case 422:throw new Error(qe)}let i=e.format??this.format;if(s.data){let u=s.data?.commit?.message??"",[n,...l]=u.split(`
2
+ `),g={html_url:s.data.html_url,sha:s.data.sha,comments_url:s.data.comments_url,commit:{url:s.data.commit.url,author:{id:s.data.author.id,login:s.data.author.login,name:s.data.commit.author.name,avatar_url:s.data.author.avatar_url,email:s.data.commit.author.email,html_url:s.data.author.html_url,type:capitalize(String(s.data.author.type).toLowerCase()),date:i?await h(s.data.commit.author.date):s.data.commit.author.date},committer:{id:s.data.committer.id,login:s.data.committer.login,name:s.data.commit.committer.name,avatar_url:s.data.committer.avatar_url,email:s.data.commit.committer.email,html_url:s.data.committer.html_url,type:capitalize(String(s.data.committer.type).toLowerCase()),date:i?await h(s.data.commit.committer.date):s.data.commit.committer.date},message:s.data.commit.message,...i&&{title:n,body:l<0?l.join(`
3
+ `):null},tree:{url:s.data.commit.tree.url,sha:s.data.commit.tree.sha}},parents:s.data.parents.map(p=>({sha:p.sha,url:p.url})),stats:{additions:s.data.stats.additions,deletions:s.data.stats.deletions,total:s.data.stats.total},files:s.data.files.map(p=>({sha:p.sha,filename:p.filename,status:p.status,additions:p.additions,deletions:p.deletions,changes:p.changes,blob_url:p.blob_url,raw_url:p.raw_url}))};s.data=g;}return s}catch(a){throw new Error(`\u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_commit_list(e){try{this.setRequestConfig({token:this.userToken});let a,r,o,t;if("url"in e){o=e.url;let g=re(o);a=g?.owner,r=g?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,r=e.repo;else throw new Error(X);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:r});let{...s}=e,i={};s.sha&&(i.sha=s.sha),s.path&&(i.path=s.path),s.author&&(i.author=s.author),s.since&&(i.since=s.since),s.until&&(i.until=s.until),s.per_page&&(i.per_page=s.per_page.toString()),s.page&&(i.page=s.page.toString());let u=`/repos/${a}/${r}/commits`,n=await this.get(u,i);switch(n.statusCode){case 401:throw new Error(_);case 404:throw new Error(ee)}let l=e?.format??this.format;if(n.data){let g=await Promise.all(n.data.map(async p=>{let[gt,...ke]=p.commit.message.split(`
4
+ `);return {html_url:p.html_url,sha:p.sha,comments_url:p.comments_url,commit:{url:p.commit.url,author:{id:p.author.id,login:p.author.login,name:p.commit.author.name,avatar_url:p.author.avatar_url,email:p.commit.author.email,html_url:p.author.html_url,type:capitalize(String(p.author.type).toLowerCase()),date:l?await h(p.commit.author.date):p.commit.author.date},committer:{id:p.committer.id,login:p.committer.login,name:p.commit.committer.name,avatar_url:p.committer.avatar_url,email:p.commit.committer.email,html_url:p.committer.html_url,type:capitalize(String(p.committer.type).toLowerCase()),date:l?await h(p.commit.committer.date):p.commit.committer.date},message:p.commit.message,...l&&{title:gt,body:ke.length>0?ke.join(`
5
+ `):null},tree:{url:p.commit.tree.url,sha:p.commit.tree.sha}},parents:p.parents.map(T=>({sha:T.sha,url:T.url})),stats:{additions:p.stats.additions,deletions:p.stats.deletions,total:p.stats.total},files:p.files.map(T=>({sha:T.sha,filename:T.filename,status:T.status,additions:T.additions,deletions:T.deletions,changes:T.changes,blob_url:T.blob_url,raw_url:T.raw_url}))}}));n.data=g;}return n}catch(a){throw new Error(`\u83B7\u53D6\u63D0\u4EA4\u5217\u8868\u5931\u8D25: ${a.message}`)}}};});var it={};P(it,{Issue:()=>W});var W,ge=w(()=>{b();k();W=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_issue_info(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.get(`/repos/${a}/${r}/issues/${Number(o)}`);switch(t.statusCode){case 404:throw new Error(R);case 301:throw new Error(Oe)}if(t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6Issue\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_issues_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.milestone&&(t.milestone=o.milestone.toString()),o.state&&(t.state=o.state),o.assignee&&(t.assignee=o.assignee),o.creator&&(t.creator=o.creator),o.labels&&(t.labels=o.labels),o.sort&&(t.sort=o.sort),o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues`,i=await this.get(s,t);if(i.statusCode===401)throw new Error(_);if(i.data){let u=i.data.map(n=>({id:n.id,html_url:n.html_url,number:n.number,comments:n.comments,state:n.state,state_reason:n.state_reason,title:n.title,body:n.body,user:{id:n.user.id,login:n.user.login,name:n.user.name,email:n.user.email,html_url:n.user.html_url,avatar_url:n.user.avatar_url,type:capitalize(n.user.type.toLowerCase())},labels:n.labels?n.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:n.assignee?{id:n.assignee.id,login:n.assignee.login,name:n.assignee.name,email:n.assignee.email,html_url:n.assignee.html_url,avatar_url:n.assignee.avatar_url,type:capitalize(n.assignee.type.toLowerCase())}:null,milestone:n.milestone?{id:n.milestone.id,url:n.milestone.url,number:n.milestone.number,state:n.milestone.state,title:n.milestone.title,description:n.milestone.description,open_issues:n.milestone.open_issues,closed_issues:n.milestone.closed_issues,created_at:n.milestone.created_at,updated_at:n.milestone.updated_at,closed_at:n.milestone.closed_at,due_on:n.milestone.due_on}:null,closed_at:n.closed_at,created_at:n.created_at,updated_at:n.updated_at}));i.data=u;}return i}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u7684Issue\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.title)throw new Error(Ie);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={...o,...o.labels&&{labels:Array.isArray(o.labels)?o.labels:[o.labels]},...o.assignees&&{assignees:Array.isArray(o.assignees)?o.assignees:[o.assignees]}},s=await this.post(`/repos/${a}/${r}/issues`,t);switch(s.statusCode){case 403:throw new Error(_);case 301:throw new Error(C)}if(s.data&&s.data){let i={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u521B\u5EFAIssue\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},i=await this.patch(`/repos/${a}/${r}/issues/${Number(o)}`,null,s);switch(i.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}if(i.data&&i.data){let u={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=u;}return i}catch(a){throw new Error(`\u66F4\u65B0Issue\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u6253\u5F00Issue\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.patch(`/repos/${a}/${r}/issues/${o}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let s={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u5173\u95EDIssue\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,lock_reason:t}=e,s=await this.put(`/repos/${a}/${r}/issues/${Number(o)}`,{locked:!0,lock_reason:t});switch(s.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}let i;return s.statusCode===204?i={info:Je}:i={info:De},s.data=i,s}catch(a){throw new Error(`\u9501\u5B9AIssue${e.issue_number}\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/${o}/lock`);switch(t.statusCode){case 404:throw new Error(R);case 403:throw new Error(_);case 301:throw new Error(C)}let s;return t.statusCode===204?s={info:Ke}:s={info:He},t.data=s,t}catch(a){throw new Error(`\u89E3\u9501Issue\u5931\u8D25: ${a.message}`)}}async get_comments_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,...o}=e,t={};o.sort&&(t.sort=o.sort),o.direction&&o.direction&&(t.direction=o.direction),o.since&&(t.since=o.since),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=`/repos/${a}/${r}/issues/comments/`,i=await this.get(s,t);if(i.statusCode===404)throw new Error(f);if(i.data){let u=i.data.map(n=>({id:n.id,html_url:n.html_url,body:n.body,user:{id:n.user.id,login:n.user.login,name:n.user.name,email:n.user.email,html_url:n.user.html_url,avatar_url:n.user.avatar_url,type:capitalize(n.user.type.toLowerCase())},created_at:n.created_at,updated_at:n.updated_at}));i.data=u;}return i}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93${e.owner}/${e.repo}\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(E);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.since&&(s.since=t.since),t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let i=`/repos/${a}/${r}/issues/${Number(o)}/comments`,u=await this.get(i,s);if(u.statusCode===404)throw new Error(f);if(u.data){let n=u.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));u.data=n;}return u}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.comment_id)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.get(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);if(t.data){let s={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=s;}return t}catch(a){throw new Error(`\u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.body)throw new Error(Ee);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,body:t}=e,s=await this.post(`/repos/${a}/${r}/issues/${Number(o)}/comments`,{body:t});if(s.statusCode===404)throw new Error(f);if(s.data){let i={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.comment_id)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o,...t}=e,s=await this.patch(`/repos/${a}/${r}/issues/comments/${Number(o)}`,null,t);if(s.statusCode===404)throw new Error(f);if(s.data){let i={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.comment_id)throw new Error(L);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,comment_id:o}=e,t=await this.delete(`/repos/${a}/${r}/issues/comments/${Number(o)}`);if(t.statusCode===404)throw new Error(f);let s;return t.statusCode===204?s={info:Ve}:s={info:Be},t.data=s,t}catch(a){throw new Error(`\u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,...t}=e,s={};t.per_page&&(s.per_page=t.per_page.toString()),t.page&&(s.page=t.page.toString());let i=`/repos/${a}/${r}/issues/${Number(o)}/sub_issues`,u=await this.get(i,s);if(u.statusCode===404)throw new Error(R);if(u.data){let n=u.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(g=>({id:g.id,name:g.name,color:g.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));u.data=n;}return u}catch(a){throw new Error(`\u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,replace_parent:s}=e,i=await this.post(`/repos/${a}/${r}/issues/${o}/sub_issues`,{sub_issue_id:t,replace_parent:s});if(i.statusCode===404)throw new Error(R);if(i.data){let u={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=u;}return i}catch(a){throw new Error(`\u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t}=e,s=await this.delete(`/repos/${a}/${r}/issues/${o}/sub_issue`,null,{sub_issue_id:t});if(s.statusCode===404)throw new Error(R);if(s.data){let i={id:s.data.id,html_url:s.data.html_url,number:s.data.number,comments:s.data.comments,state:s.data.state,state_reason:s.data.state_reason,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:s.data.user.name,email:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url,type:capitalize(s.data.user.type.toLowerCase())},labels:s.data.labels?s.data.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:s.data.assignee?{id:s.data.assignee.id,login:s.data.assignee.login,name:s.data.assignee.name,email:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url,type:capitalize(s.data.assignee.type.toLowerCase())}:null,milestone:s.data.milestone?{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:s.data.milestone.created_at,updated_at:s.data.milestone.updated_at,closed_at:s.data.milestone.closed_at,due_on:s.data.milestone.due_on}:null,closed_at:s.data.closed_at,created_at:s.data.created_at,updated_at:s.data.updated_at};s.data=i;}return s}catch(a){throw new Error(`\u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(c);if(!e.issue_number)throw new Error(f);if(!e.sub_issue_id)throw new Error(N);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,issue_number:o,sub_issue_id:t,...s}=e,i={};s.before_id&&!s.after_id&&(i.before_id=s.before_id.toString()),s.after_id&&!s.before_id&&(i.after_id=s.after_id.toString());let u=`/repos/${a}/${r}/issues/${o}/sub_issues/priority`,n=await this.patch(u,i,{sub_issue_id:String(t)});if(n.statusCode===404)throw new Error(R);if(n.data){let l={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(g=>({id:g.id,name:g.name,color:g.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=l;}return n}catch(a){throw new Error(`\u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var ut={};P(ut,{Repo:()=>G});var G,_e=w(()=>{b();k();G=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_repos_list(e){if(!e.org)throw new Error(U);try{this.setRequestConfig({token:this.userToken});let{org:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=`/orgs/${a}/repos`,s=await this.get(t,o);switch(s.statusCode){case 404:throw new Error(S);case 401:throw new Error(_)}let i=e.format??this.format;if(s.data){let u=await Promise.all(s.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name??null,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email??null},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:i?await h(n.created_at):n.created_at,updated_at:i?await h(n.updated_at):n.updated_at,pushed_at:i?await h(n.pushed_at):n.pushed_at})));s.data=u;}return s}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,r={};!e?.visibility&&!e?.affiliation&&a?.type&&(r.type=a.type),a?.visibility&&(r.visibility=a.visibility),a?.affiliation&&(r.affiliation=a.affiliation),a?.sort&&(r.sort=a.sort),a?.direction&&(r.direction=a.direction),a?.per_page&&(r.per_page=a.per_page.toString()),a?.page&&(r.page=a.page.toString());let t=await this.get("/uses/repos",r);if(t.statusCode===401)throw new Error(_);let s=e?.format??this.format;if(t.data){let i=await Promise.all(t.data.map(async u=>({id:u.id,name:u.name,full_name:u.full_name,owner:{id:u.owner.id,login:u.owner.login,name:u.owner.name,avatar_url:u.owner.avatar_url,type:u.owner.type,html_url:u.owner.html_url,email:u.owner.email},public:!u.private,private:u.private,visibility:u.private?"private":"public",fork:u.fork,archived:u.archived,disabled:u.disabled,html_url:u.html_url,description:u.description,stargazers_count:u.stargazers_count,watchers_count:u.watchers_count,language:u.language,forks_count:u.forks_count,open_issues_count:u.open_issues_count,default_branch:u.default_branch,created_at:s?await h(u.created_at):u.created_at,updated_at:s?await h(u.updated_at):u.updated_at,pushed_at:s?await h(u.pushed_at):u.pushed_at})));t.data=i;}return t}catch(a){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error(x);this.setRequestConfig({token:this.userToken});let{username:a,...r}=e,o={};r?.type&&(o.type=r.type),r?.sort&&(o.sort=r.sort),r?.direction&&(o.direction=r.direction),r?.per_page&&(o.per_page=r.per_page.toString()),r?.page&&(o.page=r.page.toString());let t=e?.format??this.format,s=`/users/${a}/repos`,i=await this.get(s,o);switch(i.statusCode){case 404:throw new Error($);case 401:throw new Error(_)}if(i.data){let u=await Promise.all(i.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:t?await h(n.created_at):n.created_at,updated_at:t?await h(n.updated_at):n.updated_at,pushed_at:t?await h(n.pushed_at):n.pushed_at})));i.data=u;}return i}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}`);switch(o.statusCode){case 401:throw new Error(_);case 404:throw new Error(q)}let t=e?.format??this.format;if(o.data){let s={id:o.data.id,name:o.data.name,full_name:o.data.full_name,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,avatar_url:o.data.owner.avatar_url,type:o.data.owner.type,html_url:o.data.owner.html_url,email:o.data.owner.email},public:!o.data.private,private:o.data.private,visibility:o.data.private?"private":"public",fork:o.data.fork,archived:o.data.archived,disabled:o.data.disabled,html_url:o.data.html_url,description:o.data.description,stargazers_count:o.data.stargazers_count,watchers_count:o.data.watchers_count,language:o.data.language,forks_count:o.data.forks_count,open_issues_count:o.data.open_issues_count,default_branch:o.data.default_branch,created_at:t?await h(o.data.created_at):o.data.created_at,updated_at:t?await h(o.data.updated_at):o.data.updated_at,pushed_at:t?await h(o.data.pushed_at):o.data.pushed_at};o.data=s;}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/languages`);switch(o.statusCode){case 401:throw new Error(_);case 404:throw new Error(C)}if(o.data){let t=Object.entries(o.data),s=t.reduce((n,[,l])=>n+l,0),u={languages:t.map(([n,l])=>({language:n,color:oe(n.toLowerCase()),percent:Number((l/s*100).toFixed(2)),bytes:l}))};o.data=u;}return o}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{owner:a,...r}=e,o={...r},t=await this.post(`/orgs/${a}/repos`,o);if(t.statusCode===401)throw new Error(_);let s=e?.format??this.format;if(t.data){let i={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:s?await h(t.data.created_at):t.data.created_at,updated_at:s?await h(t.data.updated_at):t.data.updated_at,pushed_at:s?await h(t.data.pushed_at):t.data.pushed_at};t.data=i;}return t}catch(a){throw new Error(`\u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r}=e,{...o}=e,t={};o.affiliation&&(t.milestone=o.affiliation.toString()),o.permission&&(t.permission=o.permission.toString()),o.per_page&&(t.per_page=o.per_page.toString()),o.page&&(t.page=o.page.toString());let s=await this.get(`/repos/${a}/${r}/collaborators`,t);if(s.data){let i=await Promise.all(s.data.map(u=>({id:u.id,login:u.login,avatar_url:u.avatar_url,email:u.email,name:u.name,permissions:u.permissions,role_name:u.role_name})));s.data=i;}return s}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.put(`/repos/${a}/${r}/collaborators/${o}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(te);if(t.statusCode===422){let s=t.data.message;if(s&&s.includes("is not a valid permission"))throw new Error(Me)}if(t.data){let s={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,avatar_url:t.data.inviter.avatar_url,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=s;}return t}catch(a){throw new Error(`\u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:r,username:o}=e,t=await this.delete(`/repos/${a}/${r}/collaborators/${o}`);if(t.statusCode===404)throw new Error(te);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${o}\u5931\u8D25`},t}catch(a){throw new Error(`\u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(c);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.visibility}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(c);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.default_branch}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(c);try{let{owner:a,repo:r}=e;return (await this.get_repo_info({owner:a,repo:r})).data.language}catch(a){throw new Error(`\u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var lt={};P(lt,{User:()=>j});var j,ye=w(()=>{b();k();j=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(ve);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:a});let r=await this.get(`/users/${e.username}`);if(r.statusCode===401)throw new Error(_);if(r.statusCode===404)throw new Error(q);if(r.data){let o={id:r.data.id,login:r.data.login,name:r.data.name||null,type:capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u7528\u6237\u6216\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Ae);if(!a?.startsWith("ghu_"))throw new Error(A);try{this.setRequestConfig({token:this.userToken});let r=await this.get(`/user/${e.user_id}`);if(r.statusCode===401)throw new Error(_);if(r.statusCode===404)throw new Error($);if(r.data){let o={id:r.data.id,login:r.data.login,name:r.data.name||null,type:capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following};r.data=o;}return r}catch(r){throw new Error(`\u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_auth(e){let a=e?.access_token??this.userToken;if(!e||!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get("/user");switch(r.statusCode){case 401:throw new Error(_);case 404:throw new Error($)}if(r.data){let o={id:r.data.id,login:r.data.login,name:r.data.name||null,type:capitalize(r.data.type.toLowerCase()),html_url:r.data.html_url,avatar_url:r.data.avatar_url,company:r.data.company||null,email:r.data.email||null,bio:r.data.bio||null,blog:r.data.blog||null,followers:r.data.followers,following:r.data.following};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_user_info_by_token(e){return this.get_user_info_by_auth(e)}async get_user_contribution(e){try{if(!e.username)throw new Error(x);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${Se}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.BaseUrl});let r=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(r.statusCode===404)throw new Error(x);let o=await at(r.data);return {...r,data:o}}catch(a){throw new Error(`\u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var dt={};P(dt,{Org:()=>F});var F,we=w(()=>{b();k();F=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_org_info(e){if(!e.org)throw new Error(xe);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/orgs/${e.org}`);if(a.statusCode===404)throw new Error(S);if(a.data){let r={id:a.data.id,login:a.data.login,name:a.data.name,avatar_url:a.data.avatar_url,description:a.data.description,html_url:a.data.html_url};a.data=r;}return a}catch(a){throw new Error(`\u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}};});var ct={};P(ct,{WebHook:()=>J});var J,fe=w(()=>{b();k();J=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a||!e.payload||!e.signature)throw new Error(U);if(!e.signature.startsWith("sha256="))throw new Error(We);let r=false,o="error",t=400,s=ae,i;try{let u=pt.createHmac("sha256",a),n=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);u.update(n,"utf8");let l=u.digest("hex"),g=e.signature.replace("sha256=","");pt.timingSafeEqual(Buffer.from(l),Buffer.from(g))?(r=!0,o="ok",t=200,s="\u8BF7\u6C42\u6210\u529F",i={info:Fe}):(r=!1,o="error",t=403,s="\u8BF7\u6C42\u5931\u8D25",i={info:ae});}catch(u){throw new Error(`\u8BF7\u6C42\u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${u.message}`)}return Promise.resolve({success:r,status:o,statusCode:t,msg:s,data:i})}};});var K,y,k=w(()=>{b();de();pe();K="github",y=class{BaseUrl;ApiUrl;jwtToken;userToken;format;Private_Key;Client_ID;Client_Secret;WebHook_Secret;currentRequestConfig;proxy;constructor(e){this.Private_Key=e.Private_Key,this.Client_ID=e.Client_ID,this.Client_Secret=e.Client_Secret,this.WebHook_Secret=e.WebHook_Secret,this.jwtToken=this.generate_jwt(),this.BaseUrl=le(K),this.ApiUrl=ue(K),this.userToken=null,this.currentRequestConfig={url:this.ApiUrl,token:null,tokenType:"Bearer"},this.format=e.format??false;}async get_app(){let{App:e}=await Promise.resolve().then(()=>(be(),mt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(ce(),ot));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(me(),nt));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(ge(),it));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(_e(),ut));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>(ye(),lt));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>(we(),dt));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(fe(),ct));return this.webhook=new e(this),this.webhook}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new URL$1(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(Q)}switch(e?.type){case "common":case "reverse":this.BaseUrl=le(K,e.address,e.type),this.ApiUrl=ue(K,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(Q)}}setToken(e){if(!e.startsWith("ghu_"))throw this.userToken=null,new Error(A);return this.userToken=e,this}generate_jwt(){let e=this.Private_Key,a={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return $t.sign(a,e,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:r}=this.currentRequestConfig,o=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new D(e,r,a??null,o,t)}async get(e,a,r){try{let t=await this.createRequest().get(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`GET \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async post(e,a,r){try{let t=await this.createRequest().post(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`POST \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async patch(e,a=null,r,o){try{let s=await this.createRequest().patch(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,r){try{let t=await this.createRequest().put(e,a,r);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(o){throw new Error(`PUT \u8BF7\u6C42${e}\u5931\u8D25: ${o.message}`)}}async delete(e,a=null,r,o){try{let s=await this.createRequest().delete(e,a,r,o);if((s.statusCode===403||s.statusCode===429)&&s.headers["x-ratelimit-remaining"]==="0")throw new Error(v);return {success:s.success,status:s.success?"ok":"error",statusCode:s.statusCode,msg:s.msg,data:s.data}}catch(t){throw new Error(`DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var mt={};P(mt,{App:()=>V});var V,be=w(()=>{b();k();V=class extends y{constructor(e){super(e),this.userToken=e.userToken,this.ApiUrl=e.ApiUrl,this.BaseUrl=e.BaseUrl;}async get_app_info(e){let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(Pe);if(!a)throw new Error(I);try{this.setRequestConfig({token:a});let r=await this.get(`/apps/${e.app_slug}`);if(r.statusCode===200){let o={id:r.data.id,name:r.data.name,client_id:r.data.client_id,slug:r.data.slug,owner:{id:r.data.owner.id,login:r.data.owner.login,name:r.data.owner.name,email:r.data.owner.email,html_url:r.data.owner.html_url,avatar_url:r.data.owner.avatar_url,type:capitalize(r.data.owner.type.toLowerCase())},description:r.data.description,external_url:r.data.external_url,html_url:r.data.html_url,permissions:r.data.permissions,events:r.data.events,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=o;}return r}catch(r){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${r.message}`)}}async get_app_info_by_auth(){try{this.setRequestConfig({url:this.ApiUrl,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`\u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!e.owner||!e.repo)throw new Error(c);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:r}=e,o=await this.get(`/repos/${a}/${r}/installation`);switch(o.statusCode){case 404:throw new Error(C);case 301:throw new Error(ze)}if(o.data){let t={id:o.data.id,html_url:o.data.html_url,app_id:o.data.app_id,app_slug:o.data.app_slug,target_id:o.data.target_id,target_type:o.data.target_type,account:{id:o.data.account.id,login:o.data.account.login,name:o.data.account.name,email:o.data.account.email,html_url:o.data.account.html_url,avatar_url:o.data.account.avatar_url,type:capitalize(o.data.account.type.toLowerCase())},repository_selection:o.data.repository_selection,access_tokens_url:o.data.access_tokens_url,repositories_url:o.data.repositories_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=t;}return o}catch(a){throw new Error(`\u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.BaseUrl);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`\u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}};});b();de();pe();var Re={};P(Re,{App:()=>V,Auth:()=>B,Commit:()=>z,GitHubClient:()=>y,Issue:()=>W,Org:()=>F,Repo:()=>G,User:()=>j,WebHook:()=>J});be();ce();k();me();ge();we();_e();ye();fe();var Ce=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new y(e.github);}};var bs=Ce;
6
+ export{Ce as Client,y as GitHubClient,It as create_state_id,bs as default,h as formatDate,oe as get_langage_color,Ct as get_relative_time,Re as github};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@candriajs/git-neko-kit",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
4
4
  "description": "Github, Gitee, GitCode API封装库",
5
5
  "keywords": [
6
6
  "git",