node-karin 0.12.0 → 0.12.2-5.pr.206.24448f3

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.
Files changed (244) hide show
  1. package/CHANGELOG.md +1029 -0
  2. package/LICENSE +21 -674
  3. package/README.md +15 -42
  4. package/default/comment/config.json +34 -0
  5. package/default/comment/friendDirect.json +10 -0
  6. package/default/comment/groupGuild.json +11 -0
  7. package/default/comment/server.json +17 -0
  8. package/default/config/config.yaml +78 -0
  9. package/default/config/friendDirect.yaml +31 -0
  10. package/default/config/groupGuild.yaml +70 -0
  11. package/default/config/pm2.yaml +21 -0
  12. package/default/config/redis.yaml +19 -0
  13. package/default/config/server.yaml +47 -0
  14. package/default/view/group.yaml +73 -0
  15. package/lib/index.js +38 -8
  16. package/package.json +128 -125
  17. package/packages/module/art-template.cjs +11 -0
  18. package/packages/module/art-template.d.ts +1 -0
  19. package/packages/module/axios.cjs +22 -0
  20. package/packages/module/axios.d.ts +2 -0
  21. package/packages/module/chalk.cjs +22 -0
  22. package/packages/module/chalk.d.ts +2 -0
  23. package/packages/module/chokidar.cjs +22 -0
  24. package/packages/module/chokidar.d.ts +2 -0
  25. package/packages/module/commander.cjs +35 -0
  26. package/packages/module/commander.d.ts +3 -0
  27. package/packages/module/commander.js +3 -0
  28. package/packages/module/express.cjs +112 -0
  29. package/packages/module/express.d.ts +1 -0
  30. package/packages/module/express.js +1 -0
  31. package/packages/module/level.cjs +22 -0
  32. package/packages/module/level.d.ts +2 -0
  33. package/packages/module/lodash.cjs +11 -0
  34. package/packages/module/lodash.d.ts +1 -0
  35. package/packages/module/log4js.cjs +22 -0
  36. package/packages/module/log4js.d.ts +2 -0
  37. package/packages/module/moment.cjs +11 -0
  38. package/packages/module/moment.d.ts +1 -0
  39. package/packages/module/node-schedule.cjs +22 -0
  40. package/packages/module/node-schedule.d.ts +2 -0
  41. package/packages/module/redis.cjs +22 -0
  42. package/packages/module/redis.d.ts +2 -0
  43. package/packages/module/ws.cjs +28 -0
  44. package/packages/module/ws.d.ts +1 -0
  45. package/packages/module/ws.js +1 -0
  46. package/packages/module/yaml.cjs +22 -0
  47. package/packages/module/yaml.d.ts +2 -0
  48. package/config/defSet/App.yaml +0 -42
  49. package/config/defSet/config.yaml +0 -65
  50. package/config/defSet/group.yaml +0 -56
  51. package/config/defSet/pm2.yaml +0 -21
  52. package/config/defSet/redis.yaml +0 -18
  53. package/config/defSet/server.yaml +0 -42
  54. package/config/view/group.yaml +0 -92
  55. package/lib/adapter/index.d.ts +0 -2
  56. package/lib/adapter/index.js +0 -2
  57. package/lib/adapter/input/index.d.ts +0 -78
  58. package/lib/adapter/input/index.js +0 -205
  59. package/lib/adapter/onebot/11/convert.d.ts +0 -12
  60. package/lib/adapter/onebot/11/convert.js +0 -167
  61. package/lib/adapter/onebot/11/event.d.ts +0 -25
  62. package/lib/adapter/onebot/11/event.js +0 -442
  63. package/lib/adapter/onebot/11/index.d.ts +0 -508
  64. package/lib/adapter/onebot/11/index.js +0 -1047
  65. package/lib/cli/index.d.ts +0 -92
  66. package/lib/cli/index.js +0 -307
  67. package/lib/cli/init.d.ts +0 -2
  68. package/lib/cli/init.js +0 -22
  69. package/lib/cli/karin.d.ts +0 -2
  70. package/lib/cli/karin.js +0 -16
  71. package/lib/cli/pkg.d.ts +0 -4
  72. package/lib/cli/pkg.js +0 -14
  73. package/lib/cli/start.d.ts +0 -1
  74. package/lib/cli/start.js +0 -8
  75. package/lib/core/index.d.ts +0 -10
  76. package/lib/core/index.js +0 -10
  77. package/lib/core/init/config.d.ts +0 -43
  78. package/lib/core/init/config.js +0 -201
  79. package/lib/core/init/dir.d.ts +0 -4
  80. package/lib/core/init/dir.js +0 -7
  81. package/lib/core/init/init.d.ts +0 -1
  82. package/lib/core/init/init.js +0 -47
  83. package/lib/core/karin/karin.d.ts +0 -198
  84. package/lib/core/karin/karin.js +0 -226
  85. package/lib/core/listener/listener.d.ts +0 -145
  86. package/lib/core/listener/listener.js +0 -235
  87. package/lib/core/plugin/base.d.ts +0 -156
  88. package/lib/core/plugin/base.js +0 -131
  89. package/lib/core/plugin/loader.d.ts +0 -141
  90. package/lib/core/plugin/loader.js +0 -618
  91. package/lib/core/process/process.d.ts +0 -18
  92. package/lib/core/process/process.js +0 -96
  93. package/lib/core/server/server.d.ts +0 -25
  94. package/lib/core/server/server.js +0 -295
  95. package/lib/db/index.d.ts +0 -2
  96. package/lib/db/index.js +0 -2
  97. package/lib/db/level/level.d.ts +0 -19
  98. package/lib/db/level/level.js +0 -36
  99. package/lib/db/redis/redis.d.ts +0 -2
  100. package/lib/db/redis/redis.js +0 -135
  101. package/lib/db/redis/redis_level.d.ts +0 -112
  102. package/lib/db/redis/redis_level.js +0 -281
  103. package/lib/event/handler/base.d.ts +0 -42
  104. package/lib/event/handler/base.js +0 -200
  105. package/lib/event/handler/message.d.ts +0 -29
  106. package/lib/event/handler/message.js +0 -307
  107. package/lib/event/handler/notice.d.ts +0 -18
  108. package/lib/event/handler/notice.js +0 -214
  109. package/lib/event/handler/request.d.ts +0 -18
  110. package/lib/event/handler/request.js +0 -115
  111. package/lib/event/handler/review.d.ts +0 -55
  112. package/lib/event/handler/review.js +0 -386
  113. package/lib/event/index.d.ts +0 -5
  114. package/lib/event/index.js +0 -5
  115. package/lib/index.d.ts +0 -8
  116. package/lib/modules/art-template.d.ts +0 -1
  117. package/lib/modules/axios.d.ts +0 -2
  118. package/lib/modules/chalk.d.ts +0 -2
  119. package/lib/modules/chokidar.d.ts +0 -2
  120. package/lib/modules/commander.d.ts +0 -2
  121. package/lib/modules/commander.js +0 -2
  122. package/lib/modules/express.d.ts +0 -3
  123. package/lib/modules/express.js +0 -3
  124. package/lib/modules/level.d.ts +0 -2
  125. package/lib/modules/lodash.d.ts +0 -1
  126. package/lib/modules/log4js.d.ts +0 -2
  127. package/lib/modules/moment.d.ts +0 -1
  128. package/lib/modules/node-schedule.d.ts +0 -2
  129. package/lib/modules/redis.d.ts +0 -2
  130. package/lib/modules/ws.d.ts +0 -3
  131. package/lib/modules/ws.js +0 -3
  132. package/lib/modules/yaml.d.ts +0 -2
  133. package/lib/modules.d.ts +0 -15
  134. package/lib/modules.js +0 -15
  135. package/lib/render/app.d.ts +0 -56
  136. package/lib/render/app.js +0 -120
  137. package/lib/render/base.d.ts +0 -30
  138. package/lib/render/base.js +0 -69
  139. package/lib/render/client.d.ts +0 -41
  140. package/lib/render/client.js +0 -238
  141. package/lib/render/http.d.ts +0 -19
  142. package/lib/render/http.js +0 -50
  143. package/lib/render/index.d.ts +0 -6
  144. package/lib/render/index.js +0 -6
  145. package/lib/render/server.d.ts +0 -25
  146. package/lib/render/server.js +0 -101
  147. package/lib/render/wormhole.d.ts +0 -1
  148. package/lib/render/wormhole.js +0 -156
  149. package/lib/types/adapter/api.d.ts +0 -399
  150. package/lib/types/adapter/api.js +0 -1
  151. package/lib/types/adapter/base.d.ts +0 -560
  152. package/lib/types/adapter/base.js +0 -1
  153. package/lib/types/config/config.d.ts +0 -379
  154. package/lib/types/config/config.js +0 -1
  155. package/lib/types/element/element.d.ts +0 -565
  156. package/lib/types/element/element.js +0 -1
  157. package/lib/types/element/qqbot.d.ts +0 -123
  158. package/lib/types/element/qqbot.js +0 -1
  159. package/lib/types/event/contact.d.ts +0 -28
  160. package/lib/types/event/contact.js +0 -1
  161. package/lib/types/event/event.d.ts +0 -305
  162. package/lib/types/event/event.js +0 -1
  163. package/lib/types/event/index.d.ts +0 -12
  164. package/lib/types/event/index.js +0 -7
  165. package/lib/types/event/message.d.ts +0 -109
  166. package/lib/types/event/message.js +0 -74
  167. package/lib/types/event/notice.d.ts +0 -513
  168. package/lib/types/event/notice.js +0 -52
  169. package/lib/types/event/reply.d.ts +0 -50
  170. package/lib/types/event/reply.js +0 -1
  171. package/lib/types/event/request.d.ts +0 -126
  172. package/lib/types/event/request.js +0 -52
  173. package/lib/types/event/sender.d.ts +0 -44
  174. package/lib/types/event/sender.js +0 -1
  175. package/lib/types/index.d.ts +0 -13
  176. package/lib/types/index.js +0 -13
  177. package/lib/types/logger/logger.d.ts +0 -110
  178. package/lib/types/logger/logger.js +0 -1
  179. package/lib/types/onebot11/api.d.ts +0 -53
  180. package/lib/types/onebot11/api.js +0 -1
  181. package/lib/types/onebot11/event.d.ts +0 -619
  182. package/lib/types/onebot11/event.js +0 -2
  183. package/lib/types/onebot11/index.d.ts +0 -6
  184. package/lib/types/onebot11/index.js +0 -6
  185. package/lib/types/onebot11/params.d.ts +0 -609
  186. package/lib/types/onebot11/params.js +0 -1
  187. package/lib/types/onebot11/response.d.ts +0 -516
  188. package/lib/types/onebot11/response.js +0 -1
  189. package/lib/types/onebot11/segment.d.ts +0 -269
  190. package/lib/types/onebot11/segment.js +0 -1
  191. package/lib/types/onebot11/sender.d.ts +0 -59
  192. package/lib/types/onebot11/sender.js +0 -1
  193. package/lib/types/plugin/app.d.ts +0 -71
  194. package/lib/types/plugin/app.js +0 -1
  195. package/lib/types/plugin/plugin.d.ts +0 -473
  196. package/lib/types/plugin/plugin.js +0 -1
  197. package/lib/types/render/render.d.ts +0 -118
  198. package/lib/types/render/render.js +0 -1
  199. package/lib/types/type/global.d.ts +0 -25
  200. package/lib/types/type/global.js +0 -1
  201. package/lib/utils/common/common.d.ts +0 -236
  202. package/lib/utils/common/common.js +0 -708
  203. package/lib/utils/config/config.d.ts +0 -193
  204. package/lib/utils/config/config.js +0 -328
  205. package/lib/utils/config/updateVersion.d.ts +0 -33
  206. package/lib/utils/config/updateVersion.js +0 -145
  207. package/lib/utils/config/yamlEditor.d.ts +0 -101
  208. package/lib/utils/config/yamlEditor.js +0 -330
  209. package/lib/utils/core/handler.d.ts +0 -18
  210. package/lib/utils/core/handler.js +0 -46
  211. package/lib/utils/core/logger.d.ts +0 -3
  212. package/lib/utils/core/logger.js +0 -105
  213. package/lib/utils/core/segment.d.ts +0 -279
  214. package/lib/utils/core/segment.js +0 -451
  215. package/lib/utils/index.d.ts +0 -13
  216. package/lib/utils/index.js +0 -13
  217. package/lib/utils/tools/button.d.ts +0 -2
  218. package/lib/utils/tools/button.js +0 -27
  219. package/lib/utils/tools/exec.d.ts +0 -20
  220. package/lib/utils/tools/exec.js +0 -54
  221. package/lib/utils/tools/ffmpeg.d.ts +0 -12
  222. package/lib/utils/tools/ffmpeg.js +0 -25
  223. package/lib/utils/tools/restart.d.ts +0 -15
  224. package/lib/utils/tools/restart.js +0 -39
  225. package/lib/utils/tools/stop.d.ts +0 -7
  226. package/lib/utils/tools/stop.js +0 -13
  227. package/lib/utils/tools/update.d.ts +0 -67
  228. package/lib/utils/tools/update.js +0 -151
  229. /package/{config → default}/view/App.yaml +0 -0
  230. /package/{config → default}/view/config.yaml +0 -0
  231. /package/{config → default}/view/pm2.yaml +0 -0
  232. /package/{config → default}/view/redis.yaml +0 -0
  233. /package/{config → default}/view/server.yaml +0 -0
  234. /package/{lib/modules → packages/module}/art-template.js +0 -0
  235. /package/{lib/modules → packages/module}/axios.js +0 -0
  236. /package/{lib/modules → packages/module}/chalk.js +0 -0
  237. /package/{lib/modules → packages/module}/chokidar.js +0 -0
  238. /package/{lib/modules → packages/module}/level.js +0 -0
  239. /package/{lib/modules → packages/module}/lodash.js +0 -0
  240. /package/{lib/modules → packages/module}/log4js.js +0 -0
  241. /package/{lib/modules → packages/module}/moment.js +0 -0
  242. /package/{lib/modules → packages/module}/node-schedule.js +0 -0
  243. /package/{lib/modules → packages/module}/redis.js +0 -0
  244. /package/{lib/modules → packages/module}/yaml.js +0 -0
package/lib/index.js CHANGED
@@ -1,8 +1,38 @@
1
- export * from './core/index.js';
2
- export * from './event/index.js';
3
- export * from './db/index.js';
4
- export * from './render/index.js';
5
- export * from './utils/index.js';
6
- export * from './types/index.js';
7
- export * from './adapter/index.js';
8
- export { karin as default } from './core/index.js';
1
+ import $,{existsSync}from'node:fs';import M from'path';import {fileURLToPath}from'url';import C from'node:path';import Dc,{promisify}from'node:util';import {pipeline,Readable}from'node:stream';import vo,{AxiosError}from'axios';import Pt from'lodash';import {fileURLToPath as fileURLToPath$1}from'node:url';import A,{isMap,isSeq,isPair}from'yaml';import {createRequire}from'module';import hu from'chokidar';import {randomUUID}from'node:crypto';import {EventEmitter}from'events';import {exec}from'child_process';import Mr from'node:os';import {Level}from'level';import ae from'moment';import kc from'node:events';import Gc from'os';import {createClient}from'redis';import jc from'node-schedule';import Lc from'express';import {createServer}from'node:http';import {lookup}from'dns/promises';import za,{WebSocketServer}from'ws';import pp from'art-template';import K from'chalk';import ks from'log4js';var Qa=Object.defineProperty;var wt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var c=(t,e)=>()=>(t&&(e=t(t=0)),e);var S=(t,e)=>{for(var r in e)Qa(t,r,{get:e[r],enumerable:true});};var _n,rr,go,xn,nr,En=c(()=>{_n=async t=>{try{return await $.promises.access(t,$.constants.F_OK),!0}catch{return false}},rr=async t=>{try{return (await $.promises.stat(t)).isDirectory()}catch{return false}},go=async t=>{try{return (await $.promises.stat(t)).isFile()}catch{return false}},xn=async t=>{try{return await $.promises.mkdir(t,{recursive:!0}),!0}catch{return false}},nr=async t=>{try{return await _n(t)||await xn(t),!0}catch{return false}};});var lo,mo,fo,xt,Be,ho,Et=c(()=>{lo=t=>$.existsSync(t),mo=t=>{try{return $.statSync(t).isDirectory()}catch{return false}},fo=t=>{try{return $.statSync(t).isFile()}catch{return false}},xt=t=>{try{return $.mkdirSync(t,{recursive:!0}),!0}catch{return false}},Be=t=>{try{return $.existsSync(t)||xt(t),!0}catch{return false}},ho=$.rmSync;});var bo,we,Ne,vn,yo,_e,De,kn,je,wo,_o,Gn,Mn,vt,xe,j=c(()=>{bo=fileURLToPath(import.meta.url),we=Object.freeze(M.join(bo,"../..").replace(/\\/g,"/")),Ne=Object.freeze(M.join(process.cwd(),"plugins")),Object.freeze(bo.includes("node_modules")),vn=Object.freeze(M.join(we,"default","config")),Object.freeze(M.join(we,"default","view")),yo=Object.freeze(M.join(we,"default","comment")),_e=Object.freeze(M.join(process.cwd(),"@karinjs")),De=Object.freeze(M.join(_e,"config")),kn=Object.freeze(M.join(_e,"data")),je=Object.freeze(M.join(_e,"temp")),wo=Object.freeze(M.join(kn,"db")),_o=Object.freeze(M.join(wo,"level")),Gn=Object.freeze(M.join(wo,"redis-level")),Mn=Object.freeze(M.join(process.cwd(),"logs")),vt=Object.freeze(M.join(je,"html")),Object.freeze(M.join(De,"pm2.yaml")),xe=Object.freeze(M.join(je,"console"));});var au,ce,sr,or,ir,ar,$n,In,xo,Eo,qe=c(()=>{j();au=promisify(pipeline),ce=C.sep==="/"?/^file:\/\//:/^file:[/]{2,3}/,sr=async(t,e,r={})=>{try{await $.promises.mkdir(C.dirname(e),{recursive:!0});let n=await vo.get(t,{...r,responseType:"stream"});return await au(n.data,$.createWriteStream(e)),!0}catch(n){return n instanceof AxiosError?logger.error(`\u4E0B\u8F7D\u6587\u4EF6\u9519\u8BEF\uFF1A${n.stack}`):logger.error(`\u4E0B\u8F7D\u6587\u4EF6\u9519\u8BEF\uFF1A${n}`),false}},or=(t,e=true,r=false)=>(t=t.replace(/\\/g,"/"),t.startsWith("file://")&&(t=t.replace(ce,"")),t=C.normalize(t),e&&(t=C.resolve(t)),r&&(t="file://"+t),t.replace(/\\/g,"/")),ir=async(t,e)=>{if(Array.isArray(e)||(e=["config","data","resources"]),e.length===0)return;let r=C.join(_e,t);$.existsSync(r)||await $.promises.mkdir(r,{recursive:true}),await Promise.all(e.map(n=>{let s=C.join(r,n);return $.existsSync(s)?Promise.resolve():$.promises.mkdir(s,{recursive:true})}));},ar=(t,e=[])=>{if(!$.existsSync(t))throw new Error(`\u8DEF\u5F84\u4E0D\u5B58\u5728: ${t}`);let r=$.readdirSync(t,{withFileTypes:true}).filter(n=>n.isFile()).map(n=>n.name);if(e.length){let n=e.map(s=>s.startsWith(".")?s:`.${s}`);r=r.filter(s=>{let o=C.extname(s);return o&&n.includes(o)});}return r},$n=(t,e,r)=>{t.forEach(n=>{let s=C.join(e,n),o=C.join(r,n);$.existsSync(o)||$.copyFileSync(s,o);});},In=async(t,e,r)=>{await Promise.all(t.map(async n=>{let s=C.join(e,n),o=C.join(r,n);$.existsSync(o)||await $.promises.copyFile(s,o);}));},xo=(t,e,r=[],n=false)=>{try{let s=ar(t,r);return $.mkdirSync(e),$.mkdirSync(t),$n(s,t,e),!0}catch(s){if(n)throw s;return false}},Eo=async(t,e,r=[],n=false)=>{try{let s=ar(t,r);return await Promise.all([$.promises.mkdir(e,{recursive:!0}),$.promises.mkdir(t,{recursive:!0})]),await In(s,t,e),!0}catch(s){if(n)throw s;return false}};});var ur,Le,Ee,Go,cr=c(()=>{qe();ur=async(t,e={http:false})=>{if(typeof t!="string")return Buffer.isBuffer(t)?t.toString("base64"):t instanceof Uint8Array?Buffer.from(t).toString("base64"):t instanceof Readable?(await Ee(t)).toString("base64"):t;if(t.startsWith("base64://"))return t.replace("base64://","");if(t.startsWith("http")){if(e.http)return t;let n=await vo.get(t,{responseType:"stream"});return (await Ee(n.data)).toString("base64")}let r=t.replace(ce,"");return $.existsSync(r)?(await $.promises.readFile(r)).toString("base64"):Buffer.from(t,"base64").toString("base64")},Le=async(t,e)=>{if(typeof t!="string")return Buffer.isBuffer(t)?t:t instanceof Uint8Array?Buffer.from(t):t instanceof Readable?await Ee(t):t;if(t.startsWith("base64://"))return Buffer.from(t.replace("base64://",""),"base64");if(t.startsWith("http")){if(e!=null&&e.http)return t;let n=await vo.get(t,{responseType:"arraybuffer"});return Buffer.from(n.data)}let r=t.replace(ce,"");return $.existsSync(r)?$.readFileSync(r):Buffer.from(t)},Ee=t=>new Promise((e,r)=>{let n=[];t.on("data",s=>n.push(s)),t.on("end",()=>e(Buffer.concat(n))),t.on("error",s=>r(s));}),Go=async t=>{try{return await $.promises.readFile(t)}catch(e){return logger.error(e),null}};});var Gt,Mt,Pn,Tn,Mo,Sn=c(()=>{Gt=(t,e=false)=>{try{let r=$.readFileSync(t,"utf8");return JSON.parse(r)}catch(r){if(e)throw r;return null}},Mt=(t,e,r=false)=>{try{return $.writeFileSync(t,JSON.stringify(e,null,2)),!0}catch(n){if(r)throw n;return false}},Pn=async(t,e=false)=>{try{let r=await $.promises.readFile(t,"utf8");return JSON.parse(r)}catch(r){if(e)throw r;return null}},Tn=async(t,e,r=false)=>{try{return await $.promises.writeFile(t,JSON.stringify(e,null,2)),!0}catch(n){if(r)throw n;return false}},Mo={readSync:Gt,writeSync:Mt,read:Pn,write:Tn};});var He,gr,lr,dr,mr,$t=c(()=>{qe();He=(t,e,r="name")=>{if(!$.existsSync(t)||!$.statSync(t).isDirectory())return [];let n=$.readdirSync(t,{withFileTypes:true}),s=[];return Array.isArray(e)||(e=[e]),n.forEach(o=>{if(!o.isDirectory()&&e.includes(C.extname(o.name)))if(r==="name")s.push(o.name);else if(r==="rel"){let i=C.resolve(t,o.name);s.push(C.relative(process.cwd(),i));}else r==="abs"&&s.push(C.resolve(t,o.name));}),s},gr=t=>{let e=C.dirname(t).replace(ce,""),r=C.basename(t);return {dirname:e,basename:r}},lr=t=>t.replace(/\\+/g,"/").replace(/\.+\/+|\/+$/g,""),dr=t=>{let e=fileURLToPath$1(t),n=C.relative(C.dirname(e),process.cwd()).split(C.sep).length;return Pt.repeat("../",n)},mr=(t,e,r=true)=>{r&&(t=C.resolve(t),e=C.resolve(e));let n=C.relative(t,e);return n&&!n.startsWith("..")&&!C.isAbsolute(n)};});var l,V=c(()=>{l={index:{},accept:[],command:[],task:[],button:[],handler:{},missing:new Map,watcher:new Map,count:{accept:0,command:0,task:0,button:0,handler:{key:0,fnc:0}},static:[]};});var z,pe,Po,L,N,To,So,gu,$o,ve=c(()=>{z=new Map,pe=t=>{let e=C.resolve(t).replace(/\\/g,"/");return z.has(e)&&z.delete(e)},Po=()=>z.clear(),L=async(t,e={})=>{let r=Date.now(),n=C.resolve(t).replace(/\\/g,"/"),{encoding:s="utf-8",force:o=false,ex:i=300,size:a=0,parser:u}=e,p=To(n,r,o,i);if(p!==false)return p;let g=await $.promises.readFile(n,s);return So(g,n,i,r,a,s,u)},N=(t,e={})=>{let r=Date.now(),n=C.resolve(t).replace(/\\/g,"/"),{encoding:s="utf-8",force:o=false,ex:i=300,size:a=0,parser:u}=e,p=To(n,r,o,i);if(p!==false)return p;let g=$.readFileSync(n,s);return So(g,n,i,r,a,s,u)},To=(t,e,r,n)=>{if(!r){let s=z.get(t);if(s){if(s.expiry===0||s.expiry>e)return n<=0||gu(t,n),s.data;z.delete(t);}}return false},So=(t,e,r,n,s,o,i)=>{if(s>0&&Buffer.byteLength(t,o)>s)return $o(e,t,i);let a=$o(e,t,i),u=r===0?0:n+r*1e3;return z.set(e,{data:a,expiry:u}),a},gu=async(t,e)=>{let r=z.get(t);r&&(r.expiry=Date.now()+e*1e3,z.set(t,r));},$o=(t,e,r)=>r?r(e):t.endsWith(".json")?JSON.parse(e):t.endsWith(".yaml")||t.endsWith(".yml")?A.parse(e):e;setInterval(()=>{let t=Date.now();for(let[e,r]of z.entries())r.expiry!==0&&r.expiry<=t&&z.delete(e);},6e4);});var fr,It,hr,Rn=c(()=>{V();ve();fr=(t,e)=>{let r;import.meta.url?r=createRequire(e||import.meta.url).resolve(t):(wt.resolve(t),r=wt.resolve(t));try{if(existsSync(C.join(r,"package.json")))return C.resolve(r);for(;;){if(r=C.dirname(r),existsSync(C.join(r,"package.json")))return C.resolve(r);if(r===C.dirname(r))throw new Error(`[common] \u672A\u627E\u5230\u5305${t}\u7684\u6839\u76EE\u5F55`)}}finally{delete wt.cache[wt.resolve(t)];}},It=t=>{let r=Object.values(l.index).find(s=>s.name===t);return r?Object.assign(r,{get pkg(){return r.pkgPath?N(r.pkgPath):null}}):null},hr=t=>!!It(t);});var Oo,Ro=c(()=>{V();$t();Oo=t=>{try{for(let e of l.static)if(mr(e,t))return !0;return !1}catch(e){return logger.error("isStatic",e),false}};});var ne,Ue,br,yr,Cn,Tt,Co,wr=c(()=>{ne=class{filePath;doc;document;constructor(e){this.filePath=e;let r=A.parseDocument($.existsSync(e)?$.readFileSync(e,"utf8"):e);this.doc=r,this.document=r;}get(e){try{return e?Pt.get(this.document.toJSON(),e):this.document.toJSON()}catch(r){return logger.error(`[YamlEditor] \u83B7\u53D6\u6570\u636E\u65F6\u51FA\u9519\uFF1A${r}`),null}}set(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e;return this.document.setIn(s,r),!0}catch(s){return logger.error(`[YamlEditor] \u8BBE\u7F6E\u6570\u636E\u65F6\u51FA\u9519\uFF1A${s}`),false}}add(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e;return this.document.addIn(s,r),logger.debug(`[YamlEditor] \u5DF2\u5728 ${e} \u6DFB\u52A0\u65B0\u7684\u503C`),!0}catch(s){return logger.error(`[YamlEditor] \u6DFB\u52A0\u6570\u636E\u65F6\u51FA\u9519\uFF1A${s}`),false}}del(e,r=true){try{let n=typeof e=="string"?r?e.split("."):[e]:e;return this.document.deleteIn(n),!0}catch(n){return logger.error(`[YamlEditor] \u5220\u9664\u6570\u636E\u65F6\u51FA\u9519\uFF1A${n}`),false}}append(e,r,n=false,s=true){try{let o=typeof e=="string"?s?e.split("."):[e]:e,i=this.document.getIn(o);if(!i)i=new A.YAMLSeq,this.document.setIn(o,i);else if(i instanceof A.YAMLSeq)n?i.items.unshift(r):i.add(r);else return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u662F\u6570\u7EC4"),!1;return logger.debug(`[YamlEditor] \u5DF2\u5411 ${e} \u6570\u7EC4${n?"\u5F00\u5934":"\u672B\u5C3E"}\u6DFB\u52A0\u65B0\u5143\u7D20\uFF1A${r}`),!0}catch(o){return logger.error(`[YamlEditor] \u5411\u6570\u7EC4\u6DFB\u52A0\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${o}`),false}}remove(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e,o=this.document.getIn(s);if(!o)return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u5B58\u5728"),!1;if(!(o instanceof A.YAMLSeq))return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u662F\u6570\u7EC4"),!1;let i=o.items.findIndex(a=>Pt.isEqual(a.toJSON(),r));return i<0?(logger.error("[YamlEditor] \u672A\u627E\u5230\u8981\u5220\u9664\u7684\u503C"),!1):(o.items.splice(i,1),logger.debug(`[YamlEditor] \u5DF2\u4ECE ${e} \u6570\u7EC4\u5220\u9664\u5143\u7D20\uFF1A${r}`),!0)}catch(s){return logger.error(`[YamlEditor] \u4ECE\u6570\u7EC4\u5220\u9664\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${s}`),false}}has(e,r=true){try{let n=typeof e=="string"?r?e.split("."):[e]:e;return this.document.hasIn(n)}catch(n){return logger.error(`[YamlEditor] \u68C0\u67E5\u8DEF\u5F84\u662F\u5426\u5B58\u5728\u65F6\u51FA\u9519\uFF1A${n}`),false}}hasval(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e,o=this.document.getIn(s);return o?o instanceof A.YAMLSeq?o.items.some(i=>Pt.isEqual(i.toJSON(),r)):o instanceof A.YAMLMap?Array.from(o.values()).some(i=>Pt.isEqual(i.toJSON(),r)):Pt.isEqual(o,r):!1}catch(s){return logger.error(`[YamlEditor] \u68C0\u67E5\u8DEF\u5F84 ${e} \u662F\u5426\u5305\u542B\u503C\u65F6\u51FA\u9519\uFF1A${s}`),false}}hasVal(e,r){return this.hasval(e,r)}pusharr(e){try{return this.document.contents instanceof A.YAMLSeq||(this.document.contents=new A.YAMLSeq,logger.debug("[YamlEditor] \u6839\u8282\u70B9\u5DF2\u8F6C\u6362\u4E3A\u6570\u7EC4")),this.document.contents.add(e),logger.debug("[YamlEditor] \u5DF2\u5411\u6839\u8282\u70B9\u6570\u7EC4\u65B0\u589E\u5143\u7D20\uFF1A",e),!0}catch(r){return logger.error(`[YamlEditor] \u5411\u6839\u8282\u70B9\u6570\u7EC4\u65B0\u589E\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${r}`),false}}delarr(e){try{if(!(this.document.contents instanceof A.YAMLSeq))throw new Error("[YamlEditor] \u6839\u8282\u70B9\u4E0D\u662F\u6570\u7EC4");if(e<0||e>=this.document.contents.items.length)throw new Error("[YamlEditor] \u7D22\u5F15\u8D85\u51FA\u8303\u56F4");return this.document.contents.items.splice(e,1),logger.debug("[YamlEditor] \u5DF2\u6839\u636E\u7D22\u5F15\u4ECE\u6839\u8282\u70B9\u6570\u7EC4\u5220\u9664\u5143\u7D20\uFF0C\u7D22\u5F15\uFF1A",e),!0}catch(r){return logger.error(`[YamlEditor] \u6839\u636E\u7D22\u5F15\u5220\u9664\u6839\u8282\u70B9\u6570\u7EC4\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${r}`),false}}getpair(e,r=true){if(!e)throw new Error("path is required");let n=typeof e=="string"?r?e.split("."):[e]:e,s=this.document.contents;return n.forEach(o=>{isMap(s)?s=s.items.find(i=>i.key.value===o):isSeq(s)?s=s.items.find(i=>i.value===o):isPair(s)&&(s=s.value.items.find(i=>i.key.value===o));}),s}comment(e,r,n=true,s=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let o=this.getpair(e,s);if(!o)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);r=` ${r}`,n?o.key.commentBefore=r:o.key.comment=r;}uncomment(e,r="all",n=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let s=this.getpair(e,n);if(!s)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);r==="all"?(delete s.key.comment,delete s.key.commentBefore):r==="before"?delete s.key.commentBefore:r==="after"&&delete s.key.comment;}hascomment(e,r,n=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let s=this.getpair(e,n);if(!s)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);return r==="before"?!!s.key.commentBefore:r==="after"?!!s.key.comment:false}getcomment(e,r=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let n=this.getpair(e,r);if(!n)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);return n.key.commentBefore||n.key.comment}save(){$.writeFileSync(this.filePath,this.document.toString()),logger.debug("[YamlEditor] \u6587\u4EF6\u5DF2\u4FDD\u5B58");}},Ue=t=>{let e=A.parse($.readFileSync(t,"utf-8"));return Ue.save=r=>{try{return yr(t,e,typeof r=="string"?JSON.parse(r):r),!0}catch(n){return logger.error("[YamlEditor] \u4FDD\u5B58\u6587\u4EF6\u65F6\u51FA\u9519"),logger.error(n),false}},e},br=(t,e)=>{try{return $.writeFileSync(t,A.stringify(e)),!0}catch{return false}},yr=(t,e,r)=>{if(!r){$.writeFileSync(t,A.stringify(e));return}let n=new ne(A.stringify(e)),s=typeof r=="string"?JSON.parse($.readFileSync(r,"utf8")):r;Tt(n,s),$.writeFileSync(t,n.document.toString());},Cn=(t,e)=>{let r=new ne(t),n=typeof e=="string"?JSON.parse($.readFileSync(e,"utf8")):e;Tt(r,n),r.save();},Tt=(t,e)=>{for(let r of Object.keys(e))try{let n=e[r],s=typeof n=="string"?n:n.comment,o=typeof n=="string"?!0:typeof n=="object"&&n.type==="top";t.comment(r,s,o);}catch(n){logger.error(`[YamlEditor] \u6DFB\u52A0\u6CE8\u91CA\u65F6\u51FA\u9519\uFF0C\u5DF2\u8DF3\u8FC7\uFF1A${n.stack||n.message||n}`);}},Co=Object.assign(A,{read:Ue,save:yr,comment:Cn,applyComments:Tt});});var _r,Fn,Bo,St,At,No=c(()=>{ve();_r=new Map,Fn=(t,e)=>{let r=_r.get(t);r&&(r.close(),_r.delete(t));let n=hu.watch(t);return _r.set(t,n),n.on("change",async()=>{logger.info(`[\u914D\u7F6E\u6587\u4EF6\u53D8\u52A8] ${C.relative(process.cwd(),t).replace(/\\/g,"/")}`);let s=N(t);pe(t);let o=N(t);typeof e=="function"&&e(s,o);}),n.on("unlink",()=>{logger.info(`[\u914D\u7F6E\u6587\u4EF6\u5220\u9664] ${C.relative(process.cwd(),t).replace(/\\/g,"/")}`),pe(t);}),n.once("close",()=>{n.removeAllListeners(),_r.delete(t),pe(t);}),new St(t,n)},Bo=(t,e,r)=>{let n=Fn(t,r);return new At(t,e,n.watcher)},St=class{watcher;file;constructor(e,r){this.watcher=r,this.file=e;}get value(){return N(this.file)}close(){return pe(this.file),this.watcher.close()}},At=class{watcher;dynamicFile;defaultCFile;constructor(e,r,n){this.watcher=n,this.dynamicFile=e,this.defaultCFile=r;}get value(){let e=N(this.dynamicFile),r=N(this.defaultCFile);return typeof r=="object"&&typeof e=="object"?{...r,...e}:Array.isArray(r)&&Array.isArray(e)?[...r,...e]:e}close(){return pe(this.defaultCFile),this.watcher.close()}};});var Bn,Nn,yu,Ot,Rt,xr=c(()=>{Bn=new Map,Nn=(t,e,r=`\u65B9\u6CD5 ${String(e)} \u5DF2\u88AB\u9501\u5B9A`)=>{if(typeof t[e]!="function")throw new Error(`\u5C5E\u6027 ${String(e)} \u4E0D\u662F\u4E00\u4E2A\u51FD\u6570`);let n=randomUUID();return Bn.set(n,{key:String(e),fnc:t[e]}),Object.defineProperty(t,e,{enumerable:true,configurable:true,value:()=>{throw Error(r)}}),()=>yu(t,n)},yu=(t,e)=>{let r=Bn.get(e);if(!r)return {status:false,msg:`\u672A\u627E\u5230\u88AB\u9501\u5B9A\u7684\u65B9\u6CD5 ${String(e)}`};let{key:n,fnc:s}=r;return typeof s!="function"?{status:false,msg:`\u5C5E\u6027 ${String(n)} \u4E0D\u662F\u4E00\u4E2A\u51FD\u6570`}:(Object.defineProperty(t,n,{enumerable:true,configurable:true,value:s.bind(t)}),Bn.delete(e),{status:true,msg:`\u89E3\u9501\u65B9\u6CD5 ${String(n)} \u6210\u529F`})},Ot=(t,e)=>{let r=Object.getOwnPropertyDescriptor(t,e);if(r)Object.defineProperty(t,e,{enumerable:true,configurable:false,writable:false,value:r.value});else throw new Error(`Property ${String(e)} does not exist on the object`)},Rt={prop:Ot,method:Nn};});var Do={};S(Do,{log:()=>Dn,logs:()=>jn,parseChangelog:()=>Ct,range:()=>qn});var Dn,jn,qn,Ct,Er=c(()=>{Dn=(t,e)=>{let r=new RegExp(`## \\[${t}\\](.|\\n)*?(?=## \\[|$)`,"g"),n=e.match(r);return n?n[0]:null},jn=(t,e,r=1,n=false)=>{if(typeof r!="number")throw new TypeError("\u63D0\u53D6\u957F\u5EA6\u5FC5\u987B\u4E3A\u6570\u5B57");let s=Ct(e),o=Object.keys(s),i=o.indexOf(t),a=n?i-r:i,u=n?i:i+r;return o.slice(a,u).map(g=>s[g]?s[g]:"").join("")},qn=(t,e,r)=>{let n=Ct(t),s=Object.keys(n),o=s.indexOf(e),i=s.indexOf(r);return o>i?s.slice(i,o).map(p=>n[p]?n[p]:"").join(""):s.slice(o,i).map(u=>n[u]?n[u]:"").join("")},Ct=t=>{let e=/## \[(.*?)\]([\s\S]*?)(?=## \[|$)/g,r={};for(let n of t.matchAll(e)){let s=n[1],o=n[0];r[s]=o;}return r};});var vr={};S(vr,{EVENT_COUNT:()=>wu,RECV_MSG:()=>Ln,SEND_MSG:()=>Hn});var Ln,Hn,wu,kr=c(()=>{Ln="karin:count:recv",Hn="karin:count:send",wu="karin:count:fnc";});var I={};S(I,{Watch:()=>St,Watcher:()=>At,YamlEditor:()=>ne,absPath:()=>or,applyComments:()=>Tt,base64:()=>ur,buffer:()=>Le,clearRequire:()=>Po,clearRequireFile:()=>pe,comment:()=>Cn,copyConfig:()=>Eo,copyConfigSync:()=>xo,copyFiles:()=>In,copyFilesSync:()=>$n,createPluginDir:()=>ir,downFile:()=>sr,existToMkdir:()=>nr,existToMkdirSync:()=>Be,exists:()=>_n,existsSync:()=>lo,filesByExt:()=>He,getFiles:()=>ar,getPluginInfo:()=>It,getRelPath:()=>lr,isDir:()=>rr,isDirSync:()=>mo,isFile:()=>go,isFileSync:()=>fo,isPlugin:()=>hr,isStatic:()=>Oo,isSubPath:()=>mr,json:()=>Mo,key:()=>vr,lock:()=>Rt,lockMethod:()=>Nn,lockProp:()=>Ot,log:()=>Dn,logs:()=>jn,mkdir:()=>xn,mkdirSync:()=>xt,parseChangelog:()=>Ct,pkgRoot:()=>fr,range:()=>qn,read:()=>Ue,readFile:()=>Go,readJson:()=>Pn,readJsonSync:()=>Gt,requireFile:()=>L,requireFileSync:()=>N,rmSync:()=>ho,save:()=>yr,sep:()=>ce,splitPath:()=>gr,stream:()=>Ee,urlToPath:()=>dr,watch:()=>Fn,watchAndMerge:()=>Bo,write:()=>br,writeJson:()=>Tn,writeJsonSync:()=>Mt,yaml:()=>Co});var Gr=c(()=>{En();Et();cr();qe();Sn();$t();Rn();ve();Ro();wr();No();xr();Er();kr();});var jo=c(()=>{Gr();});var qo,ke,Lo,Ho,Ko,We=c(()=>{qo=()=>process.platform==="win32",ke=()=>process.env.runtime==="tsx",Lo=(t,e)=>{process.env[t]=e+"";},Ho=t=>Lo("karin_port",t),Ko=t=>Lo("karin_version",t);});var h,Yo,se,Uo,Jo,Vo,Wo,zo,Qo,Xo=c(()=>{h={file:{},watcher:new Map,groupGuild:{},friendDirect:{},friendCfgDef:{cd:0,mode:0,alias:[],enable:[],disable:[],get key(){return "default"}},groupCfgDef:{cd:0,userCD:0,mode:0,alias:[],enable:[],disable:[],memberDisable:[],memberEnable:[],get key(){return "default"}}},Yo=(t,e,r)=>{var s;let n;r?n=[`Bot:${r}:${t}:${e}`,`Bot:${r}:${t}`,`Bot:${r}`,t,"default"]:n=r?[`Bot:${r}:${t}`,`Bot:${r}`,t,"default"]:[t,"default"];for(let o of n)if((s=h==null?undefined:h.groupGuild)!=null&&s[o])return h.groupGuild[o].count++,{ok:true,config:h.groupGuild[o].config};return {ok:false,keys:n}},se=t=>{try{return t.map(e=>String(e))||[]}catch{return []}},Uo=t=>(t.alias=se(t.alias),t.memberEnable=se(t.memberEnable),t.memberDisable=se(t.memberDisable),t),Jo=(t,e)=>{Object.defineProperty(t,"key",{get(){return e},enumerable:false,configurable:false});},Vo=(t,e)=>{var n;for(let s of t)if((n=h==null?undefined:h.groupGuild)!=null&&n[s]){if(!e[s])continue;let o=Uo(e[s]);return Jo(o,s),h.groupGuild[s]={start:0,count:1,config:o},o}let r=Uo(e.default||h.groupCfgDef);return h.groupGuild.default={start:0,count:1,config:r},r},Wo=t=>(t.alias=se(t.alias),t),zo=(t,e)=>{let r;e?r=[`Bot:${e}:${t}`,`Bot:${e}`,t,"default"]:r=[t,"default"];for(let n of r)if(h.friendDirect[n])return h.friendDirect[n].count++,{ok:true,config:h.friendDirect[n].config};return {ok:false,keys:r}},Qo=(t,e)=>{for(let n of t)if(h.friendDirect[n]){if(!e[n])continue;let s=Wo(e[n]);return Jo(s,n),h.friendDirect[n]={start:0,count:1,config:s},s}let r=Wo(e.default||h.friendCfgDef);return h.friendDirect.default={start:0,count:1,config:r},r};setInterval(()=>{for(let t in h.groupGuild)h.groupGuild[t].count-h.groupGuild[t].start<10?delete h.groupGuild[t]:h.groupGuild[t].start=h.groupGuild[t].count;for(let t in h.friendDirect)h.friendDirect[t].count-h.friendDirect[t].start<10?delete h.friendDirect[t]:h.friendDirect[t].start=h.friendDirect[t].count;},6e4);});var Kn,m,Ge=c(()=>{Kn=class extends EventEmitter{on(e,r){return super.on(e,r)}once(e,r){return super.once(e,r)}off(e,r){return super.off(e,r)}emit(e,...r){return super.emit(e,...r)}listeners(e){return super.listeners(e)}removeAllListeners(e){return super.removeAllListeners(e),this}setMaxListeners(e){return super.setMaxListeners(e),this}getMaxListeners(){return super.getMaxListeners()}addListener(e,r){return super.addListener(e,r)}listenerCount(e){return super.listenerCount(e)}eventNames(){return super.eventNames()}rawListeners(e){return super.rawListeners(e)}prependListener(e,r){return super.prependListener(e,r)}prependOnceListener(e,r){return super.prependOnceListener(e,r)}removeListener(e,r){return super.removeListener(e,r)}},m=new Kn;});var Ye,xu,Eu,vu,Ft,Un=c(()=>{Ge();Ye=new Map,xu=(t,e,r)=>{var s;let n=(s=/Cannot find package '(.+?)'/.exec(r))==null?undefined:s[1];if(n){let o=`${t}.${n}`;if(!Ye.has(o))return;Ye.set(o,{name:t,file:e,depend:n});}else logger.error(`\u8F7D\u5165\u63D2\u4EF6\u9519\u8BEF\uFF1A${logger.red(`${t}/${C.basename(e)}`)}`),m.emit("error",r);},Eu=(t,e,r)=>{logger.error(`[\u5B9A\u65F6\u4EFB\u52A1][${t}][${e}] \u6267\u884C\u9519\u8BEF`),m.emit("error",r);},vu=()=>{try{if(!Ye.size)return;let t=[`
2
+ -----\u4F9D\u8D56\u7F3A\u5931----`];for(let[,{name:r,file:n,depend:s}]of Ye)t.push(`[${r}][${C.basename(n)}] \u7F3A\u5C11\u4F9D\u8D56\uFF1A${logger.red(s)}`);t.push("-------------------");let e=Ye.values().next().value;t.push("\u6E29\u99A8\u63D0\u793A:",`1. \u5982\u679C\u662F\u65B0\u5B89\u88C5\u7684\u63D2\u4EF6\uFF0C\u8BF7\u5C1D\u8BD5\u6267\u884C ${logger.red("pnpm install -P")} \u81EA\u52A8\u5B89\u88C5\u4F9D\u8D56`,`2. \u5982\u679C\u6267\u884C\u7B2C\u4E00\u6B65\u65E0\u6548\uFF0C\u8BF7\u5C1D\u8BD5\u6267\u884C ${logger.red("pnpm imstall \u4F9D\u8D56\u540D\u79F0 -w")} \u624B\u52A8\u5B89\u88C5\u4F9D\u8D56`,`\u4E3E\u4F8B: ${logger.red(`pnpm add ${e.depend} -w`)}`,logger.yellow("\u5BF9\u4E8E\u624B\u52A8\u5B89\u88C5\u7684\u4F9D\u8D56\uFF0C\u5982\u679C\u5BF9\u5E94\u63D2\u4EF6\u672A\u5728\u4F7F\u7528\uFF0C\u8BF7\u8FDB\u884C\u53CA\u65F6\u5378\u8F7D: pnpm rm \u4F9D\u8D56\u540D\u79F0")),t.push("-------------------"),logger.error(t.join(`
3
+ `));}finally{Ye.clear();}},Ft={loaderPlugin:xu,taskStart:Eu,printMissing:vu};});var Wn,ku,Yn=c(()=>{Wn=t=>{let{name:e,message:r,stack:n}=t||{};return {name:e,message:r,stack:n}},ku=t=>{var e;return t?[`name: ${t.name}`,`message: ${t.message}`,`stack: ${(e=t.stack)==null?undefined:e.toString()}`].join(`
4
+ `):""};});var _,ge=c(()=>{Yn();_=(t,e)=>{let r=(global==null?undefined:global.logger)||console;return new Promise(n=>{e!=null&&e.log&&r.info(["[exec] \u6267\u884C\u547D\u4EE4:",`pwd: ${(e==null?undefined:e.cwd)||process.cwd()}`,`cmd: ${t}`,`options: ${JSON.stringify(e)}`].join(`
5
+ `)),exec(t,e,(s,o,i)=>{if(e!=null&&e.log){let u=Wn(s);u.message&&(u.message=`\x1B[91m${u.message}\x1B[0m`),r.info(["[exec] \u6267\u884C\u7ED3\u679C:",`stderr: ${i.toString()}`,`stdout: ${o.toString()}`,`error: ${JSON.stringify(u,null,2)}`].join(`
6
+ `));}if(e!=null&&e.booleanResult)return n(!s);let a={status:!s,error:s,stdout:o.toString().trim(),stderr:i.toString().trim()};n(a);});})};});var $r,$u,Iu,Pu,Tu,Jn=c(()=>{$r=Mr.platform()==="win32",$u=Mr.platform()==="linux",Iu=Mr.platform()==="darwin",Pu=$.existsSync("/.dockerenv"),Tu=Mr.userInfo().uid===0;});var Vn,zn=c(()=>{ge();Jn();Vn=async t=>{let e=$r?`netstat -ano | findstr :${t}`:`lsof -i:${t} | grep LISTEN | awk '{print $2}'`,{stdout:r}=await _(e);if($r){let n=r.toString().split(/\s+/).filter(Boolean).pop();return Number(n)}return Number(r)};});var Qn,Xn,Zn,es,ts,Su,rs=c(()=>{ge();Qn="ffmpeg",Xn="ffprobe",Zn="ffplay";setTimeout(async()=>{if(!await _("ffmpeg -version",{booleanResult:true})){let{config:e}=await Promise.resolve().then(()=>(v(),Q)),r=e();Qn=r.ffmpegPath?`"${r.ffmpegPath}"`:Qn,Xn=r.ffprobePath?`"${r.ffprobePath}"`:Xn,Zn=r.ffplayPath?`"${r.ffplayPath}"`:Zn;}},1e3);es=async(t,e)=>(t=t.replace(/^ffmpeg/,"").trim(),t=`${Qn} ${t}`,await _(t,e)),ts=async(t,e)=>(t=t.replace(/^ffprobe/,"").trim(),t=`${Xn} ${t}`,await _(t,e)),Su=async(t,e)=>(t=t.replace(/^ffplay/,"").trim(),t=`${Zn} ${t}`,await _(t,e));});var Au,ns,ss=c(()=>{Au=()=>{let t=process.uptime(),e=Math.floor(t/86400),r=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),s=Math.floor(t%60);return [e?`${e}\u5929`:"",r?`${r}\u5C0F\u65F6`:"",n?`${n}\u5206\u949F`:"",!e&&s?`${s}\u79D2`:""].filter(Boolean).join("")},ns=(t,e=Date.now())=>{e=e||Date.now(),t=t.toString().length===10?t*1e3:t,t=Math.floor((e-t)/1e3),e=e.toString().length===10?e*1e3:e,e=Math.floor((e-t)/1e3);let r=Math.floor(t/86400),n=Math.floor(t%86400/3600),s=Math.floor(t%3600/60),o=Math.floor(t%60);return `${r}\u5929${n}\u5C0F\u65F6${s}\u5206\u949F${o}\u79D2`.replace(/0[天时分秒]/g,"")};});var P,oe,Ou,Bt,Ru,Cu,Fu,Bu,ei,ti,ri,Ir=c(()=>{We();$t();j();ve();P={list:undefined,info:undefined},oe=async(t,e)=>{var i;if((i=P==null?undefined:P.list)!=null&&i[t])return P.list[t];if(P.list||(P.list={}),P.info||(P.info={}),!["npm","all","git","app"].includes(t))return [];let r=[],n=t==="npm"?[]:await $.promises.readdir(Ne,{withFileTypes:true});if(await{app:()=>ei(n,r),git:()=>ti(n,r),npm:()=>ri(r),all:async()=>{await Promise.all([ei(n,r),ti(n,r),ri(r)]);}}[t](),P.list[t]=r,setTimeout(()=>{var a;return (a=P==null?undefined:P.list)==null?true:delete a[t]},60*1e3),!e)return r;let o=await Ou(r);return P.info[t]=o,setTimeout(()=>{var a;return (a=P==null?undefined:P.info)==null?true:delete a[t]},60*1e3),o},Ou=async t=>{let e=[],r=ke()?[".ts",".js"]:[".js"];return await Promise.allSettled(t.map(async n=>{let[s,o]=n.split(":");if(s==="app"){let i=C.join(Ne,o);await Ru(e,i,o,r);return}if(s==="git"||s==="root"){let i=C.join(Ne,o);await Cu(e,i,o,r);return}if(s==="npm"){let i=C.join(process.cwd(),"node_modules",o);await Fu(e,i,o);}})),e},Bt=(t,e,r,n,s)=>({type:t,name:e,apps:n,allApps:s,dir:r,id:-1,get pkgPath(){let o=C.join(this.dir,"package.json");return $.existsSync(o)?o:""},get pkgData(){return this.pkgPath?N(this.pkgPath):{}}}),Ru=async(t,e,r,n)=>{let s=He(e,n,"abs");t.push(Bt("app",r,e,s,[e]));},Cu=async(t,e,r,n)=>{let s=await L(C.join(e,"package.json"));if(!s||!s.karin){t.push(Bt("git",r,e,[],[]));return}let o=[],i=[],a=[],u=p=>{typeof p=="string"?i.push(p):Array.isArray(p)&&i.push(...p);};ke()&&s.karin["ts-apps"]?u(s.karin["ts-apps"]):s.karin.apps&&u(s.karin.apps),await Promise.allSettled(i.map(async p=>{let g=C.join(e,p);$.existsSync(g)&&(o.push(...He(g,n,"abs")),a.push(g));})),t.push(Bt("git",r,e,o,a));},Fu=async(t,e,r)=>{var u,p;let n=".js",s=[],o=[],i=await L(C.join(e,"package.json"));if(!((p=(u=i.karin)==null?undefined:u.apps)!=null&&p.length)){t.push(Bt("npm",r,e,[],[]));return}let a=[];typeof i.karin.apps=="string"?a.push(i.karin.apps):Array.isArray(i.karin.apps)&&a.push(...i.karin.apps),await Promise.allSettled(a.map(async g=>{let d=C.join(e,g);$.existsSync(d)&&(s.push(...He(d,n,"abs")),o.push(d));})),t.push(Bt("npm",r,e,s,o));},Bu=async t=>{try{let e=C.join(process.cwd(),"node_modules",t,"package.json");return !!(await L(e)).karin}catch{return false}},ei=async(t,e)=>{await Promise.all(t.map(async n=>{n.isDirectory()&&n.name.startsWith("karin-plugin-")&&($.existsSync(`${Ne}/${n.name}/package.json`)||e.push(`app:${n.name}`));}));let r=await L("./package.json");r.name&&r.karin&&e.push(`root:${r.name}`);},ti=async(t,e)=>{await Promise.all(t.map(async r=>{r.isDirectory()&&r.name.startsWith("karin-plugin-")&&$.existsSync(C.join(Ne,r.name,"package.json"))&&e.push(`git:${r.name}`);}));},ri=async t=>{let e=await L(C.join(we,"package.json")),r=[...Object.keys(e.dependencies),...Object.keys(e.devDependencies)],n=await L("./package.json"),s=Object.keys(n.dependencies||{}).filter(o=>!r.includes(o)&&!o.startsWith("@types"));await Promise.all(s.map(async o=>{await Bu(o)&&t.push(`npm:${o}`);}));};});var os,ni,is=c(()=>{os=t=>{let e=0,r=[],n=[];t.type==="button"?n.push(t.data):n.push(...t.rows);for(let s of n){let o=[];for(let i of s){let a=i.link?0:i.callback?1:i.type??2,u={id:String(e),render_data:{label:i.text||i.link||"",style:i.style??0,visited_label:i.show||i.text||i.link||""},action:{type:a,data:i.data||i.link||i.text,unsupport_tips:i.tips||".",permission:{type:2}}};i.enter&&(u.action.enter=true),i.reply&&(u.action.reply=true),i.admin&&(u.action.permission.type=1),i.list?(u.action.permission.type=0,u.action.permission.specify_user_ids=i.list):i.role&&(u.action.permission.type=3,u.action.permission.specify_role_ids=i.role),o.push(u),e++;}r.push({buttons:o});}return r},ni=t=>{let e=[],r=(n,s)=>{s.action.permission.type===1?n.admin=true:s.action.permission.type===0?n.list=s.action.permission.specify_user_ids||[]:s.action.permission.type===3&&(n.role=s.action.permission.specify_role_ids||[]);let o=Object.entries(n).map(([i,a])=>`${i}:${Array.isArray(a)?a.toString():a}`).join(",");e.push(`[button:${o}]`);};for(let n of t)for(let s of n.buttons){if(s.action.type===0){let i={link:s.action.data,text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips};r(i,s);continue}if(s.action.type===1){let i={text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips,callback:true};r(i,s);continue}let o={text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips};s.action.enter&&(o.enter=true),s.action.reply&&(o.reply=true),r(o,s);}return e.join("")};});var x={};S(x,{at:()=>Nu,basketball:()=>Zu,bubbleFace:()=>rc,button:()=>zu,contact:()=>uc,customMusic:()=>pc,dice:()=>ec,face:()=>Du,gift:()=>ic,image:()=>qu,json:()=>Ku,keyboard:()=>Vu,location:()=>sc,longMsg:()=>Qu,markdown:()=>Wu,markdownTpl:()=>Yu,marketFace:()=>ac,music:()=>cc,node:()=>as,nodeDirect:()=>gc,pasmsg:()=>Ju,raw:()=>Xu,record:()=>Hu,reply:()=>ju,rps:()=>tc,share:()=>oc,text:()=>Pr,video:()=>Lu,weather:()=>nc,xml:()=>Uu});var Pr,Nu,Du,ju,qu,Lu,Hu,Ku,Uu,Wu,Yu,Ju,Vu,zu,Qu,Xu,Zu,ec,tc,rc,nc,sc,oc,ic,ac,uc,cc,pc,as,gc,us=c(()=>{Pr=t=>({type:"text",text:t}),Nu=(t,e)=>({type:"at",targetId:t,name:e}),Du=(t,e)=>({type:"face",id:Number(t),isBig:e}),ju=t=>({type:"reply",messageId:String(t)}),qu=(t,e={})=>({type:"image",file:t,fileType:e.fileType,height:e==null?undefined:e.height,width:e==null?undefined:e.width,md5:e==null?undefined:e.md5,name:e==null?undefined:e.name,subType:e==null?undefined:e.subType}),Lu=(t,e)=>({type:"video",file:t,height:e==null?undefined:e.height,width:e==null?undefined:e.width,md5:e==null?undefined:e.md5,name:e==null?undefined:e.name}),Hu=(t,e=false,r)=>({type:"record",file:t,magic:e,md5:r==null?undefined:r.md5,name:r==null?undefined:r.name}),Ku=t=>({type:"json",data:t}),Uu=t=>({type:"xml",data:t}),Wu=(t,e)=>({type:"markdown",markdown:t,config:e}),Yu=(t,e)=>({type:"markdownTpl",templateId:t,params:e}),Ju=(t,e="msg")=>({type:"pasmsg",id:t,source:e}),Vu=t=>{let e=[];Array.isArray(t)||(t=[t]);for(let r of t)if(Array.isArray(r)){let n=[];for(let s of r)n.push(s);e.push(n);}else e.push([r]);return {type:"keyboard",rows:e}},zu=t=>({type:"button",data:Array.isArray(t)?t:[t]}),Qu=t=>({type:"longMsg",id:t}),Xu=t=>({type:"raw",data:t}),Zu=t=>({type:"basketball",id:Number(t)}),ec=t=>({type:"dice",id:Number(t)}),tc=t=>({type:"rps",id:Number(t)}),rc=(t,e)=>({type:"bubbleFace",id:Number(t),count:Number(e)}),nc=(t,e)=>({type:"weather",city:t,code:e}),sc=(t,e,r,n)=>({type:"location",lat:t,lon:e,title:r,address:n}),oc=(t,e,r,n)=>({type:"share",url:t,title:e,content:r,image:n}),ic=(t,e)=>({type:"gift",qq:t,id:e}),ac=t=>({type:"marketFace",id:t}),uc=(t,e)=>({type:"contact",scene:t,peer:e}),cc=(t,e)=>({type:"music",platform:t,id:e}),pc=(t,e,r,n,s)=>({type:"music",platform:"custom",url:t,audio:e,title:r,author:n,pic:s}),as=(t,e,r,n)=>({type:"node",subType:"fake",userId:t,nickname:e,message:r,options:n}),gc=t=>({type:"node",subType:"messageID",messageId:t,message_id:t});});var ie,Me,si,cs=c(()=>{us();ie=t=>{Array.isArray(t)||(t=[t]);let e=[];return {raw:t.map(n=>{switch(n.type){case "text":return e.push(n.text),n.text;case "image":case "video":case "record":return Buffer.isBuffer(n.file)?`[${n.type}:Buffer://...]`:/^http|^file/.test(n.file)?`[${n.type}:${n.file}]`:`[${n.type}:base64://...]`;case "json":case "xml":return e.push(n.data),`[${n.type}:${n.data}]`;case "at":return `[at:${n.targetId}]`;case "face":return `[face:${n.id}]`;case "reply":return `[reply:${n.messageId}]`;case "rps":return `[rps:${n.id}]`;case "dice":return `[dice:${n.id}]`;case "share":return `[share:${JSON.stringify(n)}]`;case "contact":return `[contact:${JSON.stringify(n)}]`;case "location":return `[location:${JSON.stringify(n)}]`;case "music":return `[music:${JSON.stringify(n)}]`;case "markdown":return `[markdown:${n.markdown}]`;case "button":return `[button:${JSON.stringify(n.data)}]`;case "keyboard":return `[rows:${JSON.stringify(n.rows)}]`;case "longMsg":return `[longmsg:${n.id}]`;case "pasmsg":return `[pasmsg:${n.id}]`;case "markdownTpl":return `[markdowntpl:${JSON.stringify({templateId:n.templateId,...n.params})}]`;default:return `[\u672A\u77E5:${Pt.truncate(JSON.stringify(n),{length:200})}]`}}).join(""),msg:e.join("").trim()}},Me=t=>typeof t=="string"?[Pr(t)]:Array.isArray(t)?t.map(e=>typeof e=="string"?Pr(e):e):[t],si=(t,e,r)=>(Array.isArray(t)||(t=[t]),t.map(n=>as(e||"",r||"",Me(n))));});var ai={};S(ai,{absPath:()=>or,axios:()=>Nt,base64:()=>ur,buffer:()=>Le,buttonToQQBot:()=>os,createRawMessage:()=>ie,downFile:()=>sr,exists:()=>nr,formatTime:()=>mc,getAbsPath:()=>oi,getGitPlugins:()=>yc,getNpmPlugins:()=>hc,getPlugins:()=>bc,getRelPath:()=>lr,isDir:()=>rr,isPlugin:()=>hr,karinToQQBot:()=>os,makeForward:()=>si,makeMessage:()=>Me,makeMessageLog:()=>ie,mergeImage:()=>wc,mkdir:()=>xt,pkgJson:()=>It,pkgroot:()=>fr,qqbotToKarin:()=>ni,readJson:()=>Gt,readYaml:()=>Ue,sleep:()=>ps,splitPath:()=>gr,stream:()=>Ee,updateYaml:()=>fc,uptime:()=>gs,urlToPath:()=>dr,writeJson:()=>Mt,writeYaml:()=>br});var ps,Nt,gs,mc,fc,hc,bc,yc,wc,oi,ii,_c,xc,Qe=c(()=>{j();wr();rs();ss();Ir();En();qe();Et();cr();$t();wr();Sn();Rn();is();cs();ps=t=>new Promise(e=>setTimeout(e,t)),Nt=async(t,e,r)=>{try{let n=typeof t=="string"?{...r,url:t,method:e}:t;return await vo(n)}catch(n){return logger.trace(n.stack||n),null}},gs=()=>{let t=process.uptime(),e=Math.floor(t/86400),r=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),s=Math.floor(t%60);return [e?`${e}\u5929`:"",r?`${r}\u5C0F\u65F6`:"",n?`${n}\u5206\u949F`:"",!e&&s?`${s}\u79D2`:""].filter(Boolean).join("")},mc=ns,fc=(t,e)=>{let r=new ne(t);e.forEach(({key:n,val:s})=>{try{r.has(n)||r.set(n,s);}catch(o){logger.error(`[common] \u66F4\u65B0yaml\u6587\u4EF6\u65F6\u51FA\u9519\uFF1A${o.stack||o.message||o}`);}}),r.save(),r=new ne(t),e.forEach(({key:n,comment:s,type:o})=>{try{r.comment(n,s,o==="top");}catch(i){logger.error(`[common] \u66F4\u65B0yaml\u6587\u4EF6\u65F6\u51FA\u9519\uFF1A${i.stack||i.message||i}`);}}),r.save();},hc=async(t=false)=>oe("npm",t),bc=async(t=false)=>oe("git",false),yc=async(t=false)=>oe("git",t),wc=async(t,e=3)=>{if(t.length<2)throw Error("\u56FE\u7247\u6570\u91CF\u5FC5\u987B\u5927\u4E8E1");let r=C.join(je,"mergeImage"),n=C.join(r,Date.now().toString());$.mkdirSync(n,{recursive:true});let s=oi(t,n),o=await xc(s,e),i=s.map(b=>`-i "${b}"`).join(" "),a=C.join(n,"output.png"),u=`${i} -filter_complex "${o}" -map "[out]" ${a}`,p=await es(u);if(!p.status)throw logger.error("[common] \u5408\u5E76\u56FE\u7247\u5931\u8D25:"),p.error;let{height:g,width:d}=await ii(a),w=await $.promises.readFile(a,"base64");return setTimeout(()=>$.promises.rm(n,{recursive:true,force:true}),100),{base64:w,height:g,width:d}},oi=(t,e)=>{let r=[];return t.forEach((n,s)=>{if(typeof n!="string")throw TypeError("\u4F20\u5165\u7684\u56FE\u7247\u53EA\u652F\u6301\u672C\u5730\u8DEF\u5F84 \u6216 \u5E26\u524D\u7F00base64://\u5B57\u7B26\u4E32");if(n.startsWith("base64://")){let i=n.replace(/^base64:\/\//,""),a=Buffer.from(i,"base64"),u=C.join(e,`${s}.png`);$.writeFileSync(u,a),r.push(u);return}if(!$.existsSync(n))throw Error(`\u56FE\u7247\u8DEF\u5F84\u4E0D\u5B58\u5728: ${n}`);let o=C.join(e,C.basename(n));$.copyFileSync(n,o),r.push(o);}),r},ii=async t=>{let{stdout:e}=await ts(`-v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 "${t}"`),[r,n]=e.trim().split(",").map(Number);return {width:r,height:n}},_c=(t,e,r,n)=>t.map((o,i)=>{let a=Math.floor(i/e);return `${i%e*r}_${a*n}`}).join("|"),xc=async(t,e)=>{let r=await Promise.all(t.map(async a=>{let{width:u,height:p}=await ii(a);return {file:a,width:u,height:p}})),n=Math.max(...r.map(a=>a.width)),s=Math.max(...r.map(a=>a.height)),o="";r.forEach((a,u)=>{o+=`[${u}:v]pad=${n}:${s}:(ow-iw)/2:(oh-ih)/2[p${u}]; `;});let i=_c(r,e,n,s);return o+=`${r.map((a,u)=>`[p${u}]`).join("")}xstack=inputs=${r.length}:layout=${i}[out]`,o};});var ls,ui,ci=c(()=>{j();ls=class extends Level{id;get;constructor(e){super(e,{valueEncoding:"json"}),this.id="Level",this.get=super.get.bind(this);}async set(e,r){return await super.put(e,r)}async has(e){try{return await super.get(e)}catch{return null}}},ui=()=>new ls(_o);});var Tr,ds=c(()=>{j();Et();Tr=class extends kc{#e={};#t={};#r={};#s={};#n={};#o={};#i={};#a={};#u={};#c;constructor(){super(),this.#e={},this.#t={},this.#r={},this.#s={},this.#n={},this.#o={},this.#i={},this.#a={},this.#u={},process.once("exit",()=>this.#c.close());}async init(){Be(Gn),this.#c=new Level(Gn),setInterval(()=>{Object.keys(this.#e).forEach(n=>this.checkExpire(n));},3e4),setInterval(()=>this.save(),12e4);let e=await this.#c.keys().all();return await Promise.all(e.map(async r=>{let n=await this.#c.get(r).catch(()=>null);if(!n)return;let{type:s,expire:o,value:i}=JSON.parse(n);switch(this.#e[r]={type:s,expire:o},s){case "str":this.#t[r]=i;return;case "num":this.#r[r]=Number(i);return;case "hash":{let a=JSON.parse(i);for(let u in a)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#s[r]=a;return}case "list":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#n[r]=a;return}case "set":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#o[r]=new Set(a);return}case "zset":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u].member!="string"&&(a[u].member=Buffer.from(a[u].member));this.#i[r]=a;return}case "pf":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#a[r]=new Set(a);return}case "bit":this.#u[r]=Buffer.from(i);}})),this}checkExpire(e,r=true){return this.#e[e]&&this.#e[e].expire!==-1&&this.#e[e].expire<ae().valueOf()?(r&&this.#p(e),true):false}#p(e){let{type:r}=this.#e[e];switch(delete this.#e[e],r){case "str":delete this.#t[e];break;case "num":delete this.#r[e];break;case "hash":delete this.#s[e];break;case "list":delete this.#n[e];break;case "set":delete this.#o[e];break;case "zset":delete this.#i[e];break;case "pf":delete this.#a[e];break;case "bit":delete this.#u[e];break}logger.trace(`[Redis-mock] \u5220\u9664\u952E ${e}`);}type(e){var r;return (r=this.#e[e])==null?undefined:r.type}async set(e,r,n={}){if(!Buffer.isBuffer(r)&&typeof r!="string"?r=String(r):Buffer.isBuffer(r)&&(r=r.toString()),Pt.isEmpty(n))return this.#e[e]={type:"str",expire:-1},this.#t[e]=r,"OK";let s=-1;if((n==null?undefined:n.EX)!==undefined){let o=Number(n.EX);isNaN(o)||(s=ae().add(o,"seconds").valueOf()),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.PX)!==undefined){let o=Number(n.PX);isNaN(o)||(s=ae().add(o,"milliseconds").valueOf()),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.EXAT)!==undefined){let o=Number(n.EXAT);isNaN(o)||(s=o),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.PXAT)!==undefined){let o=Number(n.PXAT);isNaN(o)||(s=o),this.#e[e]={type:"str",expire:s};}else if(n!=null&&n.KEEPTTL)this.#t[e]?this.#t[e]=r:(this.#e[e]={type:"str",expire:-1},this.#t[e]=r);else if(n!=null&&n.NX)this.#t[e]||(this.#e[e]={type:"str",expire:-1},this.#t[e]=r);else if(n!=null&&n.XX)this.#t[e]&&(this.#t[e]=r);else if(n!=null&&n.GET){if(this.#e[e]={type:"str",expire:-1},this.#t[e]){let o=this.#t[e];return this.#t[e]=r,o}return this.#t[e]=r,null}else this.#e[e]={type:"str",expire:-1},this.#t[e]=r;return "OK"}async get(e){if(!this.#e[e]||this.checkExpire(e))return null;let{type:r}=this.#e[e];return r==="num"?String(this.#r[e]):this.#t[e].toString()}async del(e){return this.#e[e]?(this.#p(e),1):0}async exists(e){return !this.#e[e]||this.checkExpire(e)?0:1}async expire(e,r){return this.#e[e]?(this.#e[e].expire=ae().add(r,"seconds").valueOf(),1):0}async ttl(e){return this.#e[e]?this.#e[e].expire===-1?-1:this.checkExpire(e)?-2:ae(this.#e[e].expire).diff(ae(),"seconds"):-2}async keys(e){let r=new RegExp(e.replace(/\*/g,".*")),n=Object.keys(this.#e),s=[];return await Promise.all(n.map(async o=>{this.checkExpire(o)||r.test(o)&&s.push(o);})),s}async flushAll(){return this.#t={},this.#r={},this.#s={},this.#n={},this.#o={},this.#i={},this.#a={},this.#u={},this.#e={},"OK"}async incr(e){return this.#r[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#r[e]=0):this.#r[e]=0,this.#r[e]+=1,this.#r[e]}async decr(e){return this.#r[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#r[e]=0):this.#r[e]=0,this.#r[e]-=1,this.#r[e]}async append(e,r){return this.#t[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#t[e]=""):this.#t[e]="",Buffer.isBuffer(r)?this.#t[e]+=Buffer.concat([Buffer.from(this.#t[e]),r]).toString():this.#t[e]+=r,this.#t[e].length}async hSet(e,r,n){return this.#s[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#s[e]={}):(this.#e[e]={type:"hash",expire:-1},this.#s[e]={}),this.#s[e][r]=n,1}async hGet(e,r){return !this.#s[e]||!this.#s[e][r]||this.checkExpire(e)?null:this.#s[e][r].toString()}async hDel(e,r){return !this.#s[e]||!this.#s[e][r]||this.checkExpire(e)?0:(delete this.#s[e][r],1)}async hGetAll(e){return this.#s[e]?this.checkExpire(e)?{}:Pt.mapValues(this.#s[e],r=>r.toString()):{}}async lPush(e,...r){return this.#n[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#n[e]=[]):(this.#e[e]={type:"list",expire:-1},this.#n[e]=[]),this.#n[e].unshift(...r),this.#n[e].length}async rPush(e,...r){return this.#n[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#n[e]=[]):(this.#e[e]={type:"list",expire:-1},this.#n[e]=[]),this.#n[e].push(...r),this.#n[e].length}async lPop(e){if(!this.#n[e]||this.#n[e].length===0||this.checkExpire(e))return null;let r=this.#n[e].shift();return r?r.toString():null}async rPop(e){if(!this.#n[e]||this.#n[e].length===0||this.checkExpire(e))return null;let r=this.#n[e].pop();return r?r.toString():null}async lRange(e,r,n){return this.#n[e]?this.checkExpire(e)?[]:this.#n[e].slice(r,n+1).map(s=>s.toString()):[]}async sAdd(e,...r){this.#o[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#o[e]=new Set):(this.#e[e]={type:"set",expire:-1},this.#o[e]=new Set);let n=0;for(let s of r)this.#o[e].has(s.toString())||(this.#o[e].add(s.toString()),n++);return n}async sRem(e,...r){if(!this.#o[e]||this.checkExpire(e))return 0;let n=0;for(let s of r)this.#o[e].has(s.toString())&&(this.#o[e].delete(s.toString()),n++);return n}async sMembers(e){return this.#o[e]?this.checkExpire(e)?[]:Array.from(this.#o[e]).map(n=>n.toString()):[]}async sismember(e,r){return !this.#o[e]||this.checkExpire(e)?0:this.#o[e].has(r.toString())?1:0}async zAdd(e,r,n){this.#i[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#i[e]=[]):(this.#e[e]={type:"zset",expire:-1},this.#i[e]=[]);let s=this.#i[e].findIndex(o=>o.member===n.toString());return s===-1?this.#i[e].push({score:r,member:n}):this.#i[e][s]={score:r,member:n},1}async zRange(e,r,n){return this.#n[e]?this.checkExpire(e)?[]:this.#n[e].slice(r,n+1).map(o=>o.toString()):[]}async zRem(e,r){if(!this.#n[e]||this.checkExpire(e))return 0;let n=this.#n[e].findIndex(s=>s===r.toString());return n!==-1?(this.#n[e].splice(n,1),1):0}async zcard(e){return !this.#n[e]||this.checkExpire(e)?0:this.#n[e].length}async zRank(e,r){if(!this.#n[e]||this.checkExpire(e))return null;let n=this.#n[e].findIndex(s=>s===r.toString());return n!==-1?n:null}async zScore(e,r){if(!this.#n[e]||this.checkExpire(e))return null;let n=this.#n[e].find(s=>s===r.toString());return n?n.length:null}async pfAdd(e,...r){this.#a[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#a[e]=new Set):(this.#e[e]={type:"pf",expire:-1},this.#a[e]=new Set);let n=0;for(let s of r)this.#a[e].has(s.toString())||(this.#a[e].add(s.toString()),n++);return n>0}async pfCount(e){return !this.#a[e]||this.checkExpire(e)?0:this.#a[e].size}async pExpire(e,r){return this.#a[e]?(this.#e[e].expire=ae().add(r,"seconds").valueOf(),true):false}async pTTL(e){return this.#a[e]?this.#e[e].expire===-1?-1:this.checkExpire(e)?-2:(ae(this.#e[e].expire).diff(ae(),"seconds"),1):-2}async pExpireAt(e,r){return !this.#a[e]||this.checkExpire(e)?false:(this.#e[e].expire=r,true)}async publish(e,r){return this.emit(e,r.toString()),this.listenerCount(e)}async subscribe(e,r){return e.forEach(n=>this.on(n,r)),e.length}async unsubscribe(e,r){return e.forEach(n=>this.off(n,r)),e.length}async setBit(e,r,n){this.#u[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#u[e]=Buffer.alloc(0)):(this.#e[e]={type:"bit",expire:-1},this.#u[e]=Buffer.alloc(0));let s=Math.floor(r/8),o=r%8,i=this.#u[e].readUInt8(s),a=n?i|1<<o:i&~(1<<o);return this.#u[e].writeUInt8(a,s),i}async getBit(e,r){if(!this.#u[e]||this.checkExpire(e))return 0;let n=Math.floor(r/8),s=r%8;return this.#u[e].readUInt8(n)&1<<s?1:0}async getRange(e,r,n){if(!this.#u[e])return [];if(this.checkExpire(e))return [];let s=[];for(let o=r;o<=n;o++)s.push(await this.getBit(e,o));return s}async save(){let r=(await this.#c.keys().all()).filter(s=>!this.#e[s]),n=[];return r.forEach(s=>n.push({type:"del",key:s})),Object.keys(this.#e).forEach(s=>{let{type:o,expire:i}=this.#e[s],a=this.#t[s];n.push({type:"put",key:s,value:JSON.stringify({type:o,expire:i,value:a})});}),await this.#c.batch(n),"OK"}};});var gi,$c,li,Ic,Pc,di=c(()=>{ds();We();ge();v();gi=async t=>{try{let e=createClient(t);return await e.connect(),Object.defineProperty(e,"id",{value:"Redis"}),e}catch(e){logger.debug(`${logger.red("[redis] \u542F\u52A8\u5931\u8D25:")} ${JSON.stringify(t)}`),logger.debug(e);}},$c=async()=>{if(logger.debug("[redis] \u6B63\u5728\u5C1D\u8BD5\u542F\u52A8 Redis..."),qo()){let e=await _("redis-server.exe redis.conf",{booleanResult:true});return e||await _("net start Redis",{booleanResult:true})}let t="redis-server --save 300 10 --daemonize yes"+await Ic();return await _(t,{booleanResult:true})},li=async()=>{let t=ms(),e=await gi(t);return e?(logger.info(`[redis] ${logger.green("Redis \u8FDE\u63A5\u6210\u529F")}`),e):(await $c()?(logger.debug(logger.green("[redis] \u4E3B\u52A8\u62C9\u8D77 Redis \u6210\u529F")),e=await gi(t)):logger.debug(logger.red("[redis] \u4E3B\u52A8\u62C9\u8D77 Redis \u5931\u8D25")),e||(logger.debug(logger.yellow("[redis] \u5C06\u964D\u7EA7\u4E3A redis-mock \u5B9E\u73B0")),Pc()))},Ic=async()=>{if(Gc.arch()!=="arm64")return "";let{stdout:t}=await _("redis-server -v"),e=t.toString();if(!e)return "";let r=e.match(/v=(\d)./);return r&&Number(r[1])>=6?" --ignore-warnings ARM64-COW-BUG":""},Pc=async()=>{let t=await new Tr().init();return Object.defineProperty(t,"id",{value:"mock"}),t};});var mi=c(()=>{ci();di();ds();});var fs={};S(fs,{level:()=>Tc,redis:()=>fi});var Tc,fi,Sr=c(()=>{mi();Tc=ui();(async()=>fi=await li())();});var hi={};S(hi,{checkProcess:()=>ys,processExit:()=>$e,processHandler:()=>bs});var hs,bs,ys,$e,Ar=c(()=>{Ge();ge();zn();Qe();hs=false,bs=()=>{process.once("SIGHUP",t=>$e(t)),process.once("SIGINT",t=>$e(t)),process.once("SIGTERM",t=>$e(t)),process.once("SIGBREAK",t=>$e(t)),process.once("SIGQUIT",t=>$e(t)),process.on("warning",t=>m.emit("warn",t)),process.on("uncaughtException",(t,e)=>{m.emit("error",t,e);}),process.on("unhandledRejection",(t,e)=>{m.emit("error",t,e);}),process.on("rejectionHandled",t=>{m.emit("error",t);}),m.on("error",(...t)=>{logger.error(...t);});},ys=async t=>{var n,s;let e=`http://127.0.0.1:${t}`,r=await Nt({url:`${e}/ping`,method:"get",timeout:300});if(!(!r||r.status!==200||r.data.ping!=="pong")){if(((n=r==null?undefined:r.data)==null?undefined:n.name)!=="karin"){let o=await Vn(t).catch(()=>-0);logger.fatal(`\u7AEF\u53E3 ${t} \u88AB\u8FDB\u7A0B\u5360\u7528\uFF0C\u8FDB\u7A0BID\uFF1A${o}\uFF0C\u8BF7\u624B\u52A8\u5173\u95ED\u5BF9\u5E94\u8FDB\u7A0B\u6216\u89E3\u9664\u7AEF\u53E3\u5360\u7528`);return}if(((s=r==null?undefined:r.data)==null?undefined:s.pm2_id)!==process.pid){await Nt({url:`${e}/exit`,method:"get",timeout:500}),logger.mark(logger.red("\u68C0\u6D4B\u5230\u540E\u53F0\u8FDB\u7A0B \u6B63\u5728\u5173\u95ED..."));for(let o=0;o<100;o++){if(await Nt({url:`${e}/ping`,method:"get",timeout:100})){await ps(50);continue}logger.mark(logger.green("\u540E\u53F0\u8FDB\u7A0B\u5DF2\u5173\u95ED"));return}logger.error(`\u540E\u53F0\u8FDB\u7A0B\u5173\u95ED\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u662F\u5426\u6709\u8FDB\u7A0B\u6B63\u5728\u5360\u7528\u7AEF\u53E3${t}`),$e(1);}}},$e=async t=>{try{if(hs)return;hs=!0;let{redis:e,level:r}=await Promise.resolve().then(()=>(Sr(),fs));await Promise.allSettled([e.save(),r.close()]),logger.mark(`\u8FD0\u884C\u7ED3\u675F \u8FD0\u884C\u65F6\u95F4\uFF1A${gs()} \u9000\u51FA\u7801\uFF1A${t??"\u672A\u77E5"}`),process.env.pm_id&&await _(`pm2 delete ${process.env.pm_id}`);}finally{setTimeout(()=>{hs=true;},200),process.exit();}};});var O=c(()=>{Un();Ar();Ge();});var Q={};S(Q,{admin:()=>Es,authKey:()=>Or,config:()=>T,getDirectCfg:()=>Oc,getFriendCfg:()=>Xe,getGroupCfg:()=>Ie,getGuildCfg:()=>yi,getMergeYaml:()=>le,getYaml:()=>Dt,host:()=>ws,init:()=>vs,master:()=>xs,pkg:()=>bi,pm2:()=>Ac,port:()=>jt,redis:()=>ms,rootMsg:()=>_s,server:()=>X,setYaml:()=>Rc,timeout:()=>Sc,updateLevel:()=>wi});var bi,jt,ws,_s,xs,Es,Sc,ms,Ac,Or,Xe,Oc,Ie,yi,le,Dt,T,X,wi,_i,xi,Rc,Cc,vs,v=c(()=>{jo();j();We();Xo();O();debug("debug: init config");bi=()=>I.requireFileSync(we+"/package.json"),jt=()=>h.file.server.port,ws=()=>h.file.server.host,_s=()=>h.file.server.rootMsg,xs=()=>h.file.config.master||[],Es=()=>h.file.config.admin||[],Sc=()=>h.file.server.timeout||60,ms=()=>le("redis"),Ac=()=>le("pm2"),Or=()=>X().authKey,Xe=(t,e)=>xi(t,e),Oc=(t,e)=>xi(t,e),Ie=(t,e)=>_i(t,e),yi=(t,e,r)=>_i(t,e,r),le=(t,e=false)=>{if(e){let s=Dt(t,"default",true),o=Dt(t,"user",true);return {...s,...o}}let r=Dt(t,"default",false),n=Dt(t,"user",false);return {...r.value,...n.value}},Dt=(t,e,r)=>{let n=`${e==="default"?vn:De}/${t}.yaml`;if(e==="default")return I.requireFileSync(n,{force:r});if(r)return I.requireFileSync(n,{force:true});let s=o=>o==="config"?(i,a)=>{var u;m.emit("watch:file",o,i,a),h.file.config={},wi(((u=a==null?undefined:a.log4jsCfg)==null?undefined:u.level)||"info");}:o==="groupGuild"?(i,a)=>{m.emit("watch:file",o,i,a),h.groupGuild={};}:o==="friendDirect"?(i,a)=>{m.emit("watch:file",o,i,a),h.friendDirect={};}:o==="server"?(i,a)=>{m.emit("watch:file",o,i,a),h.file.server={};}:(i,a)=>(m.emit("watch:file",o,i,a),true);return I.watch(n,s(t))},T=(t=false)=>{var r;if(!t&&((r=h.file.config)!=null&&r.master))return h.file.config;let e=le("config",t);return e.admin=se(e.admin),e.master=se(e.master),e.private.disable=se(e.private.disable),Object.keys(e.enable).forEach(n=>{e.enable[n]=se(e.enable[n]);}),h.file.config=e,e},X=(t=false)=>{var r;if(!t&&((r=h.file.server)!=null&&r.port))return h.file.server;let e=le("server",t);return h.file.server=e,e},wi=t=>{if(t){logger.level=t;return}let e=le("config");logger.level=e.log4jsCfg.level||"info";},_i=(t,e,r,n=false)=>{try{let s=Yo(t,e,r);if(!n&&s.ok)return s.config;let o=le("groupGuild",n);return Vo(s.keys,o)}catch(s){return logger.error(s),h.groupCfgDef}},xi=(t,e,r=false)=>{try{let n=zo(t,e);if(!r&&n.ok)return n.config;let s=le("friendDirect",r);return Qo(n.keys,s)}catch(n){return logger.error(n),h.friendCfgDef}},Rc=(t,e)=>{let r=`${De}/${t}.yaml`,n=`${yo}/${t}.json`;return I.existsSync(r)?(I.save(r,e,I.existsSync(n)?n:undefined),true):false},Cc=()=>{[vt,xe].forEach(e=>{I.existsSync(e)&&I.rmSync(e,{recursive:true,force:true});});},vs=()=>{I.copyConfigSync(vn,De,[".yaml"]),T(),X(),Ho(jt()),Ko(bi().version),Cc(),[_e,De,kn,je,vt,xe].map(e=>I.existToMkdirSync(e));};});var Gs,Ms=c(()=>{Gs=t=>typeof t=="function"&&/^class\s/.test(t.toString());});var de,Z,ee,Pe=c(()=>{de=(t,e)=>e?t===false?(n,s)=>logger.bot("debug",n,s):(n,s)=>logger.bot("mark",n,s):t===false?r=>logger.debug(r):r=>logger.mark(r),Z=(t,e)=>({absPath:"",basename:"",dirname:"",method:"",type:t,name:e}),ee=()=>({name:"",apps:[],dir:"",id:-1,pkgData:{},pkgPath:"",type:"app"});});var Rr,ki=c(()=>{We();V();O();Rr=class{watcher=null;watchDirs=new Set;loader;constructor(e){this.loader=e;}init(){let e=process.env.NODE_ENV==="development";Object.values(l.index).forEach(r=>{!e&&r.type!=="app"||r.allApps.forEach(n=>this.watchDirs.add(n));}),setTimeout(()=>{this.startWatch();},2e3),m.on("watch-dir",({dir:r})=>{typeof r=="string"&&(this.watchDirs.add(r),this.restartWatch());});}startWatch(){this.watcher=hu.watch(Array.from(this.watchDirs),{ignoreInitial:true,ignored:/(^|[/\\])\../}),this.watcher.on("add",r=>this.handleFileChange(r,"add")).on("change",r=>this.handleFileChange(r,"change")).on("unlink",r=>this.handleFileChange(r,"unlink"));let e=Array.from(this.watchDirs).map(r=>C.relative(process.cwd(),r).replace(/\\/g,"/"));logger.debug(`
7
+ [hmr] \u5F00\u59CB\u76D1\u542C\u6587\u4EF6\u5939:
8
+ `,e.join(`
9
+ `));}restartWatch(){this.watcher&&(this.watcher.close(),this.watcher=null),this.startWatch();}async handleFileChange(e,r){let n=C.extname(e);if(!(ke()?[".ts",".js"]:[".js"]).includes(n))return;let o=C.resolve(e),i=this.findPkgByFile(o);if(!i)return;let a=C.relative(process.cwd(),e).replace(/\\/g,"/");if(logger.debug(`[hmr][${i.name}] \u6587\u4EF6${r}: ${a}`),r==="unlink"){this.unloadPlugin(o),logger.info(`[hmr][${i.name}] \u5DF2\u5378\u8F7D: ${C.basename(e)}`);return}r==="change"&&this.unloadPlugin(o);try{let u=await this.loader.importApp(i.name,o,!0);this.loader.cachePlugin(u,i,o),this.loader.sort();let p=r==="add"?"\u65B0\u589E\u63D2\u4EF6":"\u91CD\u8F7D\u5B8C\u6210";logger.info(`[hmr][${i.name}] ${p}: ${C.basename(e)}`);}catch(u){logger.error(`[hmr][${i.name}] \u52A0\u8F7D\u5931\u8D25:`,u);}}findPkgByFile(e){return Object.values(l.index).find(r=>r.apps.includes(e)||r.allApps.some(n=>e.startsWith(n)))}unloadPlugin(e){l.accept=l.accept.filter(r=>r.file.absPath!==e),l.command=l.command.filter(r=>r.file.absPath!==e),l.task=l.task.filter(r=>(r.file.absPath===e&&r.schedule&&r.schedule.cancel(),r.file.absPath!==e)),l.button=l.button.filter(r=>r.file.absPath!==e),Object.keys(l.handler).forEach(r=>{l.handler[r]=l.handler[r].filter(n=>n.file.absPath!==e);});}};});var Gi={};S(Gi,{LoaderPlugin:()=>$s});var qc,$s,Mi=c(()=>{Un();Ir();V();Ms();Pe();We();qe();O();ki();qc=0,$s=class{watcher;constructor(){this.watcher=new Rr(this);}async init(){debug("debug: init loader"),logger.info(logger.green("-----------")),logger.info("\u52A0\u8F7D\u63D2\u4EF6\u4E2D...");let e=[],r=[],n=await oe("all",true);debug("debug: getPlugins",n),await Promise.all(n.map(async o=>{var a,u,p,g,d,w;o.id=++qc,l.index[o.id]=o;let i=[];if(o.type==="app"?i.push("config","data","resources"):Array.isArray((a=o.pkgData.karin)==null?undefined:a.files)&&i.push(...o.pkgData.karin.files),await ir(o.name,i),debug("debug: createPluginDir",o.name,i),o.apps.forEach(b=>{let G=this.importApp(o.name,b).then(D=>this.cachePlugin(D,o,b));e.push(G);}),o.type!=="app"){if(ke()&&((p=(u=o==null?undefined:o.pkgData)==null?undefined:u.karin)!=null&&p.main)){let b=C.join(o.dir,o.pkgData.karin.main);r.push(this.loaderMain(o.name,b));}if((g=o==null?undefined:o.pkgData)!=null&&g.main){let b=C.join(o.dir,o.pkgData.main);r.push(this.loaderMain(o.name,b));}}if(o.type!=="app"&&((w=(d=o==null?undefined:o.pkgData)==null?undefined:d.karin)!=null&&w.static)){let b=Array.isArray(o.pkgData.karin.static)?o.pkgData.karin.static:[o.pkgData.karin.static];l.static.push(...b.map(G=>C.resolve(o.dir,G)));}})),await Promise.all([...e,...r]),debug("debug: cache",l),this.sort(),Ft.printMissing(),logger.info("\u63D2\u4EF6\u52A0\u8F7D\u5B8C\u6210");let s=o=>logger.chalk.magentaBright(o);logger.info(`${s("plugin")}: ${Object.keys(l.index).length}`),Object.keys(l.count).forEach(o=>{if(o==="handler"){let{key:i,fnc:a}=l.count.handler;logger.info(`${s(o+".key")} ${i}`),logger.info(`${s(o+".fnc")} ${a}`);return}logger.info(`${s(o)}: ${l.count[o]}`);}),logger.info(logger.green("-----------")),logger.mark(`karin \u542F\u52A8\u5B8C\u6210: \u8017\u65F6 ${logger.green(process.uptime().toFixed(2))} \u79D2...`),debug("debug: \u63D2\u4EF6\u52A0\u8F7D\u5B8C\u6210"),m.emit("online",{}),this.watcher.init();}createFile(e,r,n,s){return {absPath:e,get dirname(){return C.dirname(this.absPath)},get basename(){return C.basename(this.absPath)},type:r,method:n,name:s||r}}async importApp(e,r,n=false){try{return await import(`file://${r}${n?`?t=${Date.now()}`:""}`)}catch(s){return Ft.loaderPlugin(e,r,s),{}}}async loaderMain(e,r,n=false){try{await import(`file://${r}${n?`?t=${Date.now()}`:""}`);}catch(s){Ft.loaderPlugin(e,r,s);}}isType(e,r){var n;return ((n=e.file)==null?undefined:n.type)===r}cachePlugin(e,r,n){for(let s of Object.keys(e)){if(s==="default")continue;if(typeof e[s]=="function"){if(!Gs(e[s]))return;this.cacheClassPlugin(e[s],r,n,s);return}let o=e[s];for(let i of Array.isArray(o)?o:[o])if(typeof i=="object"&&!(!(i!=null&&i.pkg)||!i.file)){if(i.pkg=r,i.file=this.createFile(n,i.file.type,s,i.file.name),this.isType(i,"accept")){l.count.accept++,l.accept.push(i);continue}if(this.isType(i,"command")){l.count.command++,l.command.push(i);continue}if(this.isType(i,"button")){l.count.button++,l.button.push(i);continue}if(this.isType(i,"handler")){l.handler[i.key]||(l.count.handler.key++,l.handler[i.key]=[]),l.count.handler.fnc++,l.handler[i.key].push(i);continue}if(this.isType(i,"task")){i.schedule=jc.scheduleJob(i.cron,async()=>{try{i.log(`[\u5B9A\u65F6\u4EFB\u52A1][${i.name}][${i.cron}]: \u5F00\u59CB\u6267\u884C`);let a=i.fnc();Dc.types.isPromise(a)&&await a,i.log(`[\u5B9A\u65F6\u4EFB\u52A1][${i.name}][${i.cron}]: \u6267\u884C\u5B8C\u6210`);}catch(a){Ft.taskStart(i.name,i.name,a);}}),l.count.task++;continue}}}}cacheClassPlugin(e,r,n,s){var i;let o=new e;if(!o.name){logger.error(`[load][${n}] plugin.name \u4E0D\u80FD\u4E3A\u7A7A`);return}if(!o.rule||!Array.isArray(o.rule)||((i=o.rule)==null?undefined:i.length)===0){logger.error(`[load][${n}] ${o.name} plugin.rule \u4E0D\u80FD\u4E3A\u7A7A`);return}o.rule.forEach((a,u)=>{a.fnc in o&&(typeof a.reg!="string"&&!(a.reg instanceof RegExp)||l.command.push({pkg:r,type:"class",log:de(a.log,true),adapter:a.adapter||[],dsbAdapter:a.dsbAdapter||[],Cls:e,reg:a.reg instanceof RegExp?a.reg:new RegExp(a.reg),permission:a.permission||"all",event:a.event||o.event||"message",priority:a.priority||1e4,file:this.createFile(n,"command",s,o.name),authFailMsg:a.authFailMsg}));});}sort(){l.accept=Pt.sortBy(l.accept,["rank"],["asc"]),l.command=Pt.sortBy(l.command,["rank"],["asc"]),l.task=Pt.sortBy(l.task,["rank"],["asc"]),l.button=Pt.sortBy(l.button,["rank"],["asc"]);for(let e of Object.keys(l.handler))l.handler[e]=Pt.sortBy(l.handler[e],["rank"],["asc"]);}};});var F,Cr,Kc,me=c(()=>{F=Lc(),Cr=createServer(F),Kc=(t,e)=>{Cr.listen(t,e,()=>{logger.info(`[server] express \u5DF2\u542F\u52A8 \u6B63\u5728\u76D1\u542C: http://${e}:${t}`);});};});var et,Fr=c(()=>{v();et={getAuth:t=>{var r,n;let e=((r=t==null?undefined:t.headers)==null?undefined:r.authorization)||((n=t==null?undefined:t.query)==null?undefined:n.token);return e?e===Or():false},postAuth:t=>{var r;let e=(r=t==null?undefined:t.headers)==null?undefined:r.authorization;return e?e===Or():false}};});var $i=c(()=>{me();Fr();F.get("/exit",async(t,e)=>{if(!et.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}logger.mark("\u6536\u5230\u9000\u51FA\u8BF7\u6C42\uFF0C\u6B63\u5728\u9000\u51FA..."),e.json({message:"\u9000\u51FA\u6210\u529F"});let{processExit:r}=await Promise.resolve().then(()=>(Ar(),hi));await r(0);});});var Ii=c(()=>{me();Fr();F.get("/ping",(t,e)=>{e.send({ping:"pong",name:"karin"});});F.get("/status",(t,e)=>{if(!et.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}let r={name:"karin",pid:process.pid,pm2_id:process.env.pm_id||"",uptime:process.uptime(),version:process.env.karin_version,karin_dev:process.env.karin_dev,karin_lang:process.env.karin_lang,karin_runtime:process.env.karin_runtime};e.status(200).json(r);});});var Pi=c(()=>{me();v();F.get("/",(t,e)=>{e.send({code:200,msg:Pt.sample(_s())});});});var Ti,Is,Si,Ai,Ps,Ts=c(()=>{Ti=async t=>{try{return (await lookup(t,{all:!0})).some(r=>Is(r.address)||Si(r.address))}catch{return false}},Is=t=>{let e=t.split(".").map(Number),r=e.length===4&&e[0]===127,n=e.every(s=>Number.isInteger(s)&&s>=0&&s<=255);return r&&n},Si=t=>{if(t==="::1")return true;if(t.startsWith("::ffff:")){let e=t.substring(7);return Is(e)}return false},Ai=t=>{let e=[],r=t.headers["x-forwarded-for"];Array.isArray(r)?e.push(...r):typeof r=="string"&&e.push(r);let n=t.socket.remoteAddress,s=t.ip,o=t.hostname;return s&&e.push(s),o&&e.push(o),n&&e.push(n),e.filter(Boolean)},Ps=async t=>{let e=Ai(t);for(let r of e)if(!await Ti(r))return false;return true};});var Ci=c(()=>{me();v();Ts();j();F.get("/console/*",async(t,e)=>{let r=X(),n=t.path.split("/").pop();if(!n){e.status(400).json({error:"\u65E0\u6548\u7684\u8BF7\u6C42",message:"\u6587\u4EF6\u540D\u4E0D\u80FD\u4E3A\u7A7A"});return}if(n=decodeURIComponent(n),n.includes("..")){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u975E\u6CD5\u8BF7\u6C42"});return}let s=await Ps(t);if(r.console.isLocal){if(!s){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u65E0\u6548\u7684\u8BF7\u6C42"});return}}else {if(!r.console.token){e.status(500).json({error:"\u914D\u7F6E\u9519\u8BEF",message:"\u7F3A\u5C11 token \u914D\u7F6E"});return}let u=t.query.token;if(!u||u!==r.console.token){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u65E0\u6548\u7684 token"});return}}let o=C.join(xe,n);if(!$.existsSync(o)){e.status(404).json({error:"\u6587\u4EF6\u4E0D\u5B58\u5728",message:"\u6587\u4EF6\u4E0D\u5B58\u5728"});return}let i=$.readFileSync(o);if(!i){e.status(500).json({error:"\u5185\u90E8\u9519\u8BEF",message:"\u8BFB\u53D6\u5931\u8D25"});return}switch(C.extname(n).toLowerCase()){case ".png":e.setHeader("Content-Type","image/png");break;case ".mp3":e.setHeader("Content-Type","audio/mpeg");break;case ".mp4":e.setHeader("Content-Type","video/mp4");break;default:e.setHeader("Content-Type","application/octet-stream");}e.send(i);});});var Yc,Ss,As=c(()=>{ge();Yc=async(t,e,r,n=true)=>{if(n&&process.send)return process.send("restart"),{status:"success",data:"\u5DF2\u53D1\u9001\u91CD\u542F\u4FE1\u53F7"};let{config:i}=await Promise.resolve().then(()=>(v(),Q));if(i().pm2Restart||process.exit(),process.env.pm_id){let{error:u}=await _("npx karin rs");if(u)return {status:"failed",data:u};process.exit();}let{error:a}=await _("npx karin pm2");if(a)return {status:"failed",data:a};process.exit();},Ss=async()=>{if(logger.mark("\u6536\u5230\u91CD\u542F\u8BF7\u6C42\uFF0C\u6B63\u5728\u91CD\u542F..."),process.env.karin_runtime==="pm2"){await _(`pm2 restart ${process.env.pm_id}`);return}if(process.env.karin_runtime==="tsx")throw new Error("tsx \u4E0D\u652F\u6301\u91CD\u542F");process!=null&&process.send&&(process.send("restart"),logger.mark("\u53D1\u9001\u91CD\u542F\u4FE1\u53F7\u6210\u529F"));};});var Fi=c(()=>{me();Fr();As();F.get("/restart",async(t,e)=>{if(!et.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}e.status(200).end(),Ss();});});var Bi=c(()=>{$i();Ii();Pi();Ci();Fi();});var Os,Ni=c(()=>{me();O();Os=new WebSocketServer({server:Cr});Os.on("error",t=>{throw t.code==="EADDRINUSE"?logger.fatal(`[server] \u7AEF\u53E3 ${process.env.karin_port} \u5DF2\u88AB\u5360\u7528\uFF0C\u65E0\u6CD5\u542F\u52A8 http WebSocket \u670D\u52A1`):logger.fatal(`[server] http\u670D\u52A1\u542F\u52A8\u5931\u8D25: ${t.message}`),t});Os.on("connection",(t,e)=>{if(debug(`wss:connection host: ${e.headers.host} url: ${e.url}`),e.url==="/"||e.url==="/onebot/v11/ws/"||e.url==="/onebot/v11/ws/index"){m.emit("ws:connection:onebot",t,e);return}m.emit("ws:connection",t,e);});});var Di={};S(Di,{app:()=>F,listen:()=>Kc,server:()=>Cr,wss:()=>Os});var Rs=c(()=>{Bi();Ni();me();});var Te,Br=c(()=>{Te=class{account;adapter;super;raw;constructor(){this.account={uin:"",uid:"",selfId:"",subId:{},name:"",avatar:""},this.adapter={index:-1,name:"",version:"",platform:"qq",standard:"other",protocol:"console",communication:"other",address:"",secret:null,connectTime:-1};}get selfId(){return this.account.selfId}get selfName(){return this.account.name}selfSubId(e){return this.account.subId[e]}logger(e,...r){logger.bot(e,this.account.selfId,...r);}sendMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendLongMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendForwardMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}recallMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getAvatarUrl(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupAvatarUrl(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getHistoryMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getForwardMsg(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupHighlights(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}createResId(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGgroupHighlights(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendLike(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}groupKickMember(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMute(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupAllMute(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupAdmin(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMemberCard(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupName(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupQuit(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMemberTitle(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getStrangerInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getFriendList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupInfo(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMemberInfo(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMemberList(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupHonor(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setFriendApplyResult(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupApplyResult(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setInvitedJoinGroupResult(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setMsgReaction(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}uploadFile(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}downloadFile(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}createGroupFolder(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}renameGroupFolder(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}delGroupFolder(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}uploadGroupFile(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}delGroupFile(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupFileSystemInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupFileList(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupRemark(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getNotJoinedGroupInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getAtAllCount(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMuteList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}pokeUser(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCookies(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCredentials(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCSRFToken(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getHttpCookies(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}};});var ji=c(()=>{logger.mark("Karin \u542F\u52A8\u4E2D...");logger.mark(`\u5F53\u524D\u7248\u672C: ${process.env.karin_version}`);logger.mark("https://github.com/KarinJS/Karin");});var fe=c(()=>{cs();us();});var Vc,te,Cs,qi,Li,pf,Hi,tt,rt,Nr,he=c(()=>{fe();Qe();Ge();Qe();kr();Vc=0,te=[],Cs=(t,e=false)=>{var r,n,s;try{return typeof t=="number"?((r=te.find(o=>o.index===t))==null?void 0:r.bot)||null:e?((n=te.find(o=>o.bot.adapter.protocol===t))==null?void 0:n.bot)||null:((s=te.find(o=>o.bot.selfId===t))==null?void 0:s.bot)||null}catch{return null}},qi=()=>te.map(t=>t.bot),Li=()=>te,pf=()=>te.map(t=>t.bot.selfId),Hi=()=>te.length,tt=(t,e,r)=>{let n=s=>{let o=te.findIndex(s);if(o!==-1){let[i]=te.splice(o,1);return logger.bot("info",i.bot.selfId,`${logger.red("[service][\u5378\u8F7DBot]")} ${i.bot.adapter.name}`),true}return logger.warn(`[service][\u5378\u8F7DBot] \u672A\u627E\u5230\u6307\u5B9ABot: ${JSON.stringify({type:t,idOrIndex:e,address:r})}`),false};return t==="index"?n(s=>s.index===e):t==="selfId"?n(({bot:s})=>s.selfId===e):t==="address"?n(({bot:s})=>s.selfId===e&&s.adapter.address===r):(logger.warn(`[service][\u5378\u8F7DBot] \u672A\u77E5\u7684\u5378\u8F7D\u65B9\u5F0F: ${t}`),false)},rt=(t,e)=>{let r=++Vc;te.push({index:r,bot:e});let n=o=>logger.green(`[\u6CE8\u518CBot][${o}]`),s=e.sendForwardMsg;return e.sendForwardMsg=async(o,i,a)=>s.call(e,o,i,a),setTimeout(async()=>{let{level:o}=await Promise.resolve().then(()=>(Sr(),fs)),i=`karin:restart:${e.selfId}`,a=await o.has(i);if(a)try{let{selfId:u,contact:p,messageId:g,time:d}=a,w=((Date.now()-d)/1e3).toFixed(2);if(Number(w)>120)return !1;let b=[x.reply(g),x.text(`
10
+ \u91CD\u542F\u6210\u529F\uFF1A${w}\u79D2`)];await Nr(u,p,b);}finally{await o.del(i);}},10),m.once("online",()=>{t==="webSocketClient"?logger.bot("info",e.selfId,`${n("\u6B63\u5411webSocket")} ${e.account.name}: ${e.adapter.address}`):t==="other"?(e.adapter.address="internal://127.0.0.1",logger.bot("info",e.selfId,`${n("internal")} ${e.account.name}`)):t==="http"?logger.bot("info",e.selfId,`${n("HTTP")} ${e.account.name}: ${e.adapter.address}`):t==="webSocketServer"?logger.bot("info",e.selfId,`${n("\u53CD\u5411WebSocket")} ${e.account.name}: ${e.adapter.address}`):t==="grpc"&&logger.bot("info",e.selfId,`${n("gRPC")} ${e.account.name}: ${e.adapter.address}`);}),r},Nr=async(t,e,r,n={recallMsg:0,retryCount:1,retry_count:1})=>{let s={},o=Me(r),i=Cs(t);if(!i)throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u672A\u627E\u5230\u5BF9\u5E94Bot\u5B9E\u4F8B");let{recallMsg:a}=n,u=n.retryCount??n.retry_count??1,{raw:p}=ie(o);e.scene==="group"?logger.bot("info",t,`${logger.green("Send Proactive Group")} ${e.peer}: ${p}`):logger.bot("info",t,`${logger.green("Send Proactive private")} ${e.peer}: ${p}`);try{m.emit(Hn,e),s=await i.sendMsg(e,o,u),logger.bot("debug",t,`\u4E3B\u52A8\u6D88\u606F\u7ED3\u679C:${JSON.stringify(s,null,2)}`);}catch(g){logger.bot("error",t,`\u4E3B\u52A8\u6D88\u606F\u53D1\u9001\u5931\u8D25:${p}`),logger.error(g);}return s.message_id=s.messageId,a&&a>0&&(s!=null&&s.messageId)&&setTimeout(()=>i.recallMsg(e,s.messageId),a*1e3),s};});var Ki,Qc,Fs,Bs=c(()=>{V();Ki=async(t,e)=>{let r;for(let n of l.handler[t]||[])try{let s=!0,o=()=>{s=!1;},i=n.fnc(e,o);if(r=Dc.types.isPromise(i)?await i:i,s)return logger.mark(`[Handler][Done]: [${n.pkg.name}][${n.file.method}][${t}]`),r}catch(s){logger.error(`[Handler][Error]: [${n.pkg.name}][${n.file.method}][${t}]`),logger.error(s);}return r},Qc=t=>!!l.handler[t],Fs=Object.assign(Ki,{call:Ki,has:Qc});});var Ns=c(()=>{ji();Sr();he();Bs();});var nt,Ds,js,Ui,qs,st,Se=c(()=>{nt={},Ds={},js={},Ui=(t,e)=>nt[e]?false:(t.cd>0&&(nt[e]=setTimeout(()=>{delete nt[e];},t.cd*1e3)),true),qs=(t,e,r)=>Ds[e]||js[r]?false:(t.cd>0&&(Ds[e]=setTimeout(()=>{delete Ds[e];},t.cd*1e3)),t.userCD>0&&(js[r]=setTimeout(()=>{delete js[r];},t.userCD*1e3)),true),st=(t,e,r)=>["frientPoke","receiveLike","groupPoke","groupMessageReaction"].includes(t.subEvent)?nt[r]?false:(e.cd>0&&(nt[r]=setTimeout(()=>{delete nt[r];},e.cd*1e3)),true):true;});var ot,Ht,Dr=c(()=>{O();ot=new Map,Ht=t=>{let e=t.contact.subPeer?`${t.contact.peer}:${t.contact.subPeer}:${t.userId}`:`${t.contact.peer}:${t.userId}`;return ot.has(e)?(m.emit(`ctx:${e}`,t),ot.delete(e),true):false};});var y,Kt,U,Ut,W,it,at,ut,Wt,ct,Ls,be=c(()=>{kr();xr();O();Qe();y=(t,e)=>logger.debug(`[\u6D88\u606F\u8FC7\u6EE4][${t}] ${e}`),Kt=t=>{let{msg:e,raw:r}=ie(t.elements);t.msg=e,t.rawMessage=r;},U=(t,e)=>{e.master.includes(`${t.selfId}@${t.userId}`)||e.master.includes(t.userId)?(t.isMaster=true,t.isAdmin=true):e.admin.includes(`${t.selfId}@${t.userId}`)||e.admin.includes(t.userId)?(t.isAdmin=true,t.isMaster=false):(t.isAdmin=false,t.isMaster=false),Rt.prop(t,"isMaster"),Rt.prop(t,"isAdmin");},Ut=(t,e)=>{let r=new RegExp(`^(${e.join("|")})`),n=t.msg.match(r);if(!n){t.alias="";return}t.msg=t.msg.replace(r,"").trim(),t.alias=n[1]||"";},W=t=>{m.emit(Ln,t.contact);},it=(t,e)=>!(t.adapter.length&&!t.adapter.includes(e)||t.dsbAdapter.length&&t.dsbAdapter.includes(e)),at=(t,e)=>{if(!e.enable.length)return true;let r=[t.pkg.name,`${t.pkg.name}:${t.file.basename}`,`${t.pkg.name}:${t.file.method}`];for(let n of r)if(e.enable.includes(n))return true;return false},ut=(t,e)=>{if(!e.disable.length)return true;let r=[t.pkg.name,`${t.pkg.name}:${t.file.basename}`,`${t.pkg.name}:${t.file.method}`];for(let n of r)if(e.disable.includes(n))return false;return true},Wt=(t,e,r,n)=>{var i,a;if(!n)return y(t.userId,`\u5F53\u524D\u5904\u4E8ECD\u4E2D: ${t.eventId}`),false;if((i=e.enable.users)!=null&&i.length&&!e.enable.users.includes(t.userId))return y(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((a=e.disable.users)!=null&&a.length&&e.disable.users.includes(t.userId))return y(t.userId,`\u7528\u6237\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(t.event!=="message")return true;let s={0:()=>true,2:()=>!t.isAdmin&&!t.isMaster?(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u7BA1\u7406\u5458\u4F7F\u7528: ${t.messageId}`),false):true,3:()=>t.alias?true:(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false),5:()=>!t.isAdmin&&!t.isMaster&&!t.alias&&!t.atBot?(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8@\u6216\u522B\u540D\u89E6\u53D1(\u7BA1\u7406\u5458\u4F8B\u5916): ${t.messageId}`),false):true,6:()=>t.isMaster?true:(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u4E3B\u4EBA\u4F7F\u7528: ${t.messageId}`),false),default:()=>true};return (s[r.mode]||s.default)()},ct=(t,e,r,n)=>{var i,a,u,p,g,d,w,b,G,D;if(!n)return y(t.userId,`\u5F53\u524D\u5904\u4E8ECD\u4E2D: ${t.eventId}`),false;if(e.enable.users.length&&!e.enable.users.includes(t.userId))return y(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if(e.disable.users.length&&e.disable.users.includes(t.userId))return y(t.userId,`\u7528\u6237\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(t.isGroup){if((i=e.enable.groups)!=null&&i.length&&!e.enable.groups.includes(t.groupId))return y(t.groupId,`\u7FA4\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((a=e.disable.groups)!=null&&a.length&&e.disable.groups.includes(t.groupId))return y(t.groupId,`\u7FA4\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if((u=r.memberEnable)!=null&&u.length&&!r.memberEnable.includes(t.userId))return y(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u7FA4\u6210\u5458\u767D\u540D\u5355: ${t.eventId}`),false;if((p=r.memberDisable)!=null&&p.length&&r.memberDisable.includes(t.userId))return y(t.userId,`\u7528\u6237\u5904\u4E8E\u7FA4\u6210\u5458\u9ED1\u540D\u5355: ${t.eventId}`),false}if(t.isGuild){if((g=e.enable.guilds)!=null&&g.length&&!e.enable.guilds.includes(t.guildId))return y(t.guildId,`\u9891\u9053\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((d=e.disable.guilds)!=null&&d.length&&e.disable.guilds.includes(t.guildId))return y(t.guildId,`\u9891\u9053\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if((w=e.enable.channels)!=null&&w.length&&!e.enable.channels.includes(t.channelId))return y(t.channelId,`\u5B50\u9891\u9053\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((b=e.disable.channels)!=null&&b.length&&e.disable.channels.includes(t.channelId))return y(t.channelId,`\u5B50\u9891\u9053\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if((G=r.memberEnable)!=null&&G.length&&!r.memberEnable.includes(t.userId))return y(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u9891\u9053\u6210\u5458\u767D\u540D\u5355: ${t.eventId}`),false;if((D=r.memberDisable)!=null&&D.length&&r.memberDisable.includes(t.userId))return y(t.userId,`\u7528\u6237\u5904\u4E8E\u9891\u9053\u6210\u5458\u9ED1\u540D\u5355: ${t.eventId}`),false}if(t.event!=="message")return true;let s={0:()=>true,1:()=>t.atBot?true:(y(t.userId,`\u5F53\u524D\u54CD\u5E94\u6A21\u5F0F\u4EC5\u5141\u8BB8@\u673A\u5668\u4EBA\u4F7F\u7528: ${t.messageId}`),false),2:()=>!t.isAdmin&&!t.isMaster?(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u7BA1\u7406\u5458\u4F7F\u7528: ${t.messageId}`),false):true,3:()=>t.alias?true:(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false),4:()=>!t.alias&&!t.atBot?(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u6216@\u673A\u5668\u4EBA\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false):true,5:()=>!t.isAdmin&&!t.isMaster&&!t.alias&&!t.atBot?(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8@\u6216\u522B\u540D\u89E6\u53D1(\u7BA1\u7406\u5458\u4F8B\u5916): ${t.messageId}`),false):true,6:()=>t.isMaster?true:(y(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u4E3B\u4EBA\u4F7F\u7528: ${t.messageId}`),false),default:()=>true};return (s[r.mode]||s.default)()},Ls=(t,e)=>{var r,n,s,o;return (n=(r=e.enable)==null?undefined:r.groupLog)!=null&&n.length&&!e.enable.groupLog.includes(t.groupId)?(y(t.groupId,`\u7FA4\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false):(o=(s=e.disable)==null?undefined:s.groupLog)!=null&&o.length&&e.disable.groupLog.includes(t.groupId)?(y(t.groupId,`\u7FA4\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false):true};});var pt,Hs=c(()=>{pt=class{static master="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u4E3B\u4EBA\u624D\u80FD\u64CD\u4F5C";static admin="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7BA1\u7406\u5458\u624D\u80FD\u64CD\u4F5C";static owner="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7FA4\u4E3B\u624D\u80FD\u64CD\u4F5C";static groupAdmin="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7FA4\u7BA1\u7406\u5458\u624D\u80FD\u64CD\u4F5C";static handleNoPermission(e,r,n){return r===false?(e.bot.logger("debug",`${n}: ${e.messageId}`),false):(e.reply(typeof r=="string"?r:n),false)}static private(e,r){return !r.permission||r.permission==="all"?true:r.permission==="master"?e.isMaster?true:this.handleNoPermission(e,r.authFailMsg,this.master):r.permission==="admin"?e.isMaster||e.isAdmin?true:this.handleNoPermission(e,r.authFailMsg,this.admin):true}static groups(e,r){var n,s,o,i,a,u;if(!r.permission||r.permission==="all")return true;if(r.permission==="master")return e.isMaster?true:this.handleNoPermission(e,r.authFailMsg,this.master);if(r.permission==="admin")return e.isMaster||e.isAdmin?true:this.handleNoPermission(e,r.authFailMsg,this.admin);if(e.isGroup){if(r.permission==="group.owner")return e.isMaster||e.isAdmin||((n=e.sender)==null?undefined:n.role)==="owner"?true:this.handleNoPermission(e,r.authFailMsg,this.owner);if(r.permission==="group.admin")return e.isMaster||e.isAdmin||((s=e.sender)==null?undefined:s.role)==="owner"||((o=e.sender)==null?undefined:o.role)==="admin"?true:this.handleNoPermission(e,r.authFailMsg,this.groupAdmin)}else if(e.isGuild){if(r.permission==="guild.owner")return e.isMaster||e.isAdmin||((i=e.sender)==null?undefined:i.role)==="owner"?true:this.handleNoPermission(e,r.authFailMsg,this.owner);if(r.permission==="guild.admin")return e.isMaster||e.isAdmin||((a=e.sender)==null?undefined:a.role)==="owner"||((u=e.sender)==null?undefined:u.role)==="admin"?true:this.handleNoPermission(e,r.authFailMsg,this.groupAdmin)}return true}};});var Yi,Ji,Vi,zi,Xc,Qi=c(()=>{Se();V();Dr();O();v();be();Hs();Yi=async t=>{let e=T(),r=Ie(t.groupId,t.selfId),n=Ls(t,e);if(Kt(t),U(t,e),Ut(t,r.alias),W(t),Vi(t,"group","\u7FA4\u6D88\u606F",n?"info":"debug"),Ht(t))return t;let o=qs(r,t.groupId,t.userId);ct(t,e,r,o)&&zi(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.group"||!["all","master","admin","group.owner","group.admin"].includes(a.permission)));},Ji=async t=>{let e=T(),r=Ie(t.groupId,t.selfId),n=Ls(t,e);if(Kt(t),U(t,e),Ut(t,r.alias),W(t),Vi(t,"groupTemp","\u7FA4\u4E34\u65F6\u6D88\u606F"),Ht(t))return t;let o=qs(r,t.groupId,t.userId);ct(t,e,r,o)&&zi(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.groupTemp"||!["all","master","admin"].includes(a.permission)));},Vi=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.rawMessage}`);},zi=async(t,e,r,n)=>{for(let s of l.command){if(!n(s))continue;if(!await Xc(t,s,e,r))return}y(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.messageId}`);},Xc=async(t,e,r,n)=>{let s=e.reg;if(s&&!s.test(t.msg)||!it(e,t.bot.adapter.protocol)||!at(e,r)||!ut(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let o=logger.fnc(t.logFnc);n&&e.log(t.selfId,`${o}${t.logText} ${Pt.truncate(t.msg,{length:100})}`);let i=Date.now();try{if(!pt.groups(t,e))return !1;let a=!1;if(e.type==="fnc"){let u=await e.fnc(t,()=>{a=!0;});a===!1&&u===!1&&(a=!0);}else {let u=new e.Cls;if(typeof(u==null?void 0:u[e.file.method])!="function")return !0;u.e=t,u.next=()=>{a=!0;};let p=await u[e.file.method](u.e);a===!1&&p===!1&&(a=!0);}return a===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(a){return m.emit("error",new Error(t.logFnc,{cause:a})),false}finally{let a=logger.green(Date.now()-i+"ms"),u=Pt.truncate(t.msg,{length:100});n&&e.log(t.selfId,`${o} ${u} \u5904\u7406\u5B8C\u6210 ${a}`);}};});var Zi,Zc,ep,tp,ea=c(()=>{Se();V();O();Dr();v();be();Hs();Zi=async t=>{let e=T(),r=Xe(t.userId,t.selfId);if(Kt(t),U(t,e),Ut(t,r.alias),W(t),Zc(t,"friend","\u597D\u53CB\u6D88\u606F"),Ht(t))return t;Wt(t,e,r,Ui(r,t.userId))&&ep(t,r,o=>!(o.event!=="message"&&o.event!=="message.friend"||!["all","master","admin"].includes(o.permission)));},Zc=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.rawMessage}`);},ep=async(t,e,r)=>{for(let n of l.command){if(!r(n))continue;if(!await tp(t,n,e))return}y(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.messageId}`);},tp=async(t,e,r)=>{let n=e.reg;if(n&&!n.test(t.msg)||!it(e,t.bot.adapter.protocol)||!at(e,r)||!ut(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let s=logger.fnc(t.logFnc);e.log(t.selfId,`${s}${t.logText} ${Pt.truncate(t.msg,{length:100})}`);let o=Date.now();try{if(!pt.private(t,e))return !1;let i=!1;if(e.type==="fnc"){let a=await e.fnc(t,()=>{i=!0;});i===!1&&a===!1&&(i=!0);}else {let a=new e.Cls;if(typeof(a==null?void 0:a[e.file.method])!="function")return !0;a.e=t,a.next=()=>{i=!0;};let u=await a[e.file.method](a.e);i===!1&&u===!1&&(i=!0);}return i===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(i){return m.emit("error",new Error(t.logFnc,{cause:i})),false}finally{let i=logger.green(Date.now()-o+"ms"),a=Pt.truncate(t.msg,{length:100});e.log(t.selfId,`${s} ${a} \u5904\u7406\u5B8C\u6210 ${i}`);}};});var ta=c(()=>{Qi();ea();});var gt,lt,dt,rp,Yt=c(()=>{V();O();be();gt=t=>{switch(t.subEvent){case "friendPoke":t.tips=`\u6233\u4E00\u6233: ${t.content.operatorId} ${t.content.action||"\u6233\u4E86\u6233"} ${t.content.targetId}`;break;case "receiveLike":t.tips=`\u6536\u5230\u70B9\u8D5E: ${t.content.count}`;break;case "friendRecall":t.tips=`\u64A4\u56DE\u6D88\u606F: ${t.content.messageId}`;break;case "friendFileUploaded":t.tips=`\u6587\u4EF6\u4E0A\u4F20: [fid:${t.content.fid}] [url:${t.content.url}] [name:${t.content.name}]`;break;case "friendIncrease":t.tips=`\u65B0\u589E\u597D\u53CB: ${t.content.targetId}`;break;case "friendDecrease":t.tips=`\u597D\u53CB\u51CF\u5C11: ${t.content.targetId}`;break;case "groupPoke":t.tips=`\u6233\u4E00\u6233: ${t.content.operatorId} ${t.content.action||"\u6233\u4E86\u6233"} ${t.content.targetId}`;break;case "groupMessageReaction":t.tips=`\u8868\u60C5\u52A8\u6001: \u7ED9\u6D88\u606F ${t.content.messageId} ${t.content.isSet?"\u6DFB\u52A0":"\u53D6\u6D88"}\u4E86\u8868\u60C5 ${t.content.faceId}`;break;case "groupRecall":t.tips=`\u64A4\u56DE\u6D88\u606F: ${t.content.messageId}`;break;case "groupFileUploaded":t.tips=`\u6587\u4EF6\u4E0A\u4F20: [fid:${t.content.fid}] [url:${t.content.url}] [name:${t.content.name}]`;break;case "groupMemberAdd":t.tips=`\u65B0\u589E\u6210\u5458: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupMemberRemove":t.tips=`\u79FB\u9664\u6210\u5458: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupCardChanged":t.tips=`\u540D\u7247\u53D8\u52A8: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupAdminChanged":t.tips=`\u7BA1\u7406\u5458\u53D8\u52A8: ${t.content.targetId} \u88AB${t.content.isAdmin?"\u8BBE\u7F6E":"\u53D6\u6D88"}\u7BA1\u7406\u5458`;break;case "groupSignIn":t.tips=`\u7B7E\u5230: ${t.content.targetId}`;break;case "groupMemberTitleUpdate":t.tips=`\u5934\u8854\u53D8\u52A8: ${t.content.title}`;break;case "groupHonorChange":t.tips=`\u8363\u8A89\u53D8\u66F4: ${t.userId} \u83B7\u5F97\u4E86 ${t.content.honorType} \u8363\u8A89`;break;case "groupLuckyKing":t.tips=`\u8FD0\u6C14\u738B: ${t.content.userId} \u4ECE ${t.content.userId} \u53D1\u7684\u7EA2\u5305\u4E2D\u83B7\u5F97\u4E86\u8FD0\u6C14\u738B`;break;case "groupHighlightsChange":{t.content.isSet?t.tips=`\u8BBE\u7F6E\u7CBE\u534E: ${t.content.operatorId} \u5C06 ${t.content.messageId} \u8BBE\u7F6E\u4E3A\u7CBE\u534E\u6D88\u606F`:t.tips=`\u53D6\u6D88\u7CBE\u534E: ${t.content.operatorId} \u5C06 ${t.content.messageId} \u53D6\u6D88\u7CBE\u534E\u6D88\u606F`;break}case "groupMemberBan":{t.content.isBan?t.tips=`\u7981\u8A00\u6210\u5458: ${t.content.operatorId} \u5C06 ${t.content.targetId} \u7981\u8A00 ${t.content.duration}\u79D2`:t.tips=`\u89E3\u9664\u7981\u8A00: ${t.content.operatorId} \u89E3\u9664\u4E86 ${t.content.targetId} \u7684\u7981\u8A00`;break}case "groupWholeBan":{t.content.isBan?t.tips=`\u5168\u5458\u7981\u8A00: ${t.content.operatorId}`:t.tips=`\u89E3\u9664\u5168\u5458\u7981\u8A00: ${t.content.operatorId}`;break}}},lt=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.tips}`);},dt=async(t,e)=>{for(let r of l.accept){if(r.event!==t.event&&r.event!==`${t.event}.${t.subEvent}`)continue;if(!await rp(t,r,e))return}y(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.eventId}`);},rp=async(t,e,r)=>{if(!it(e,t.bot.adapter.protocol)||!at(e,r)||!ut(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let n=logger.fnc(t.logFnc);e.log(t.selfId,`${n}${t.logText}`);let s=Date.now();try{let o=!1,i=await e.fnc(t,()=>{o=!0;});return o===!1&&i===!1&&(o=!0),o===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(o){return m.emit("error",new Error(t.logFnc,{cause:o})),false}finally{e.log(t.selfId,`${n} \u5904\u7406\u5B8C\u6210 ${logger.green(Date.now()-s+"ms")}`);}};});var B,ra=c(()=>{Se();v();Yt();be();B=async t=>{let e=T(),r=Ie(t.groupId,t.selfId);U(t,e),W(t),gt(t),lt(t,"group","\u7FA4\u901A\u77E5");let n=st(t,r,t.groupId);ct(t,e,r,n)&&dt(t,r);};});var jr,na=c(()=>{Yt();Se();v();be();jr=async t=>{let e=T(),r=Xe(t.userId,t.selfId);U(t,e),W(t),gt(t),lt(t,"friend","\u597D\u53CB\u901A\u77E5");let n=st(t,r,t.userId);Wt(t,e,r,n)&&dt(t,r);};});var sa=c(()=>{ra();na();});var oa=c(()=>{Se();v();Yt();be();});var ia=c(()=>{Se();Yt();v();be();});var aa=c(()=>{oa();ia();});var Ae,Jt=c(()=>{xr();fe();fe();Ae=class{#e;#t;#r;#s;#n;#o;#i;#a;#u;#c;reply;store;logFnc;logText;isMaster;isAdmin;constructor({event:e,subEvent:r,eventId:n,rawEvent:s,time:o,contact:i,sender:a,srcReply:u,bot:p}){this.#e=p.selfId,this.#t=e,this.#r=r,this.#s=n,this.#n=s,this.#o=o,this.#i=i,this.#a=a,this.#u=u,this.#c=p,this.store=new Map,this.logFnc="",this.logText="",this.isMaster=false,this.isAdmin=false,this.reply=async(g,d)=>{let w=Me(g),b=(d==null?undefined:d.at)??false,G=(d==null?undefined:d.reply)??false,D=(d==null?undefined:d.recallMsg)??0;b&&!this.isPrivate&&w.unshift(x.at(this.userId)),G&&"message_id"in this&&w.unshift(x.reply(this.message_id));let Ce={messageId:"",time:0,messageTime:0,rawData:{},message_id:""},wn=this.#u(w),{raw:io}=ie(w);return this.isGroup?this.selfId!=="console"&&logger.bot("info",this.selfId,`${logger.green(`Send Group ${this.contact.peer}: `)}${io.replace(/\n/g,"\\n")}`):this.selfId!=="console"&&logger.bot("info",this.selfId,`${logger.green(`Send private ${this.contact.peer}: `)}${io.replace(/\n/g,"\\n")}`),Ce=Dc.types.isPromise(wn)?await wn:wn,Ce.message_id=Ce.messageId,D>0&&Ce.messageId&&setTimeout(()=>{this.bot.recallMsg(this.contact,Ce.messageId);},D*1e3),Ce},Ot(this,"reply");}get self_id(){return this.#e}get user_id(){return this.userId}get selfId(){return this.#e}get userId(){return this.#a.userId}get event(){return this.#t}get subEvent(){return this.#r}get eventId(){return this.#s}get rawEvent(){return this.#n}get time(){return this.#o}get contact(){return this.#i}get sender(){return this.#a}get srcReply(){return this.#u}get bot(){return this.#c}get isPrivate(){return this.#i.scene==="friend"}get isFriend(){return this.isPrivate}get isGroup(){return this.#i.scene==="group"}get isGuild(){return this.#i.scene==="guild"}get isGroupTemp(){return this.#i.scene==="groupTemp"}get isDirect(){return this.#i.scene==="direct"}};});var Vt,qr,Lr,Hr,Ks=c(()=>{Jt();Vt=class extends Ae{#e;#t;#r;#s;elements;msg;alias;rawMessage;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,messageId:p,messageSeq:g,elements:d}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"message"}),this.#e="message",this.#t=e,this.#r=p,this.#s=g,this.elements=d,this.msg="",this.alias="",this.rawMessage="";}get raw_message(){return this.rawMessage}get message_id(){return this.messageId}get message_seq(){return this.messageSeq}get event(){return this.#e}get subEvent(){return this.#t}get messageId(){return this.#r}get messageSeq(){return this.#s}get at(){return this.elements.filter(e=>e.type==="at").map(e=>e.targetId).filter(Boolean)}get atBot(){return this.at.includes(this.selfId)}get atAll(){return this.at.includes("all")}get image(){return this.elements.filter(e=>e.type==="image").map(e=>e.file).filter(Boolean)}get record(){let e=this.elements.find(r=>r.type==="record");return e?e.file:""}get replyId(){let e=this.elements.find(r=>r.type==="reply");return e?e.messageId:""}get reply_id(){return this.replyId}},qr=class extends Vt{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"friend"})),this.#e="friend",this.#t=e.contact,this.#r=e.sender;}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Lr=class extends Vt{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"group"})),this.#e="group",this.#t=e.contact,this.#r=e.sender;}get group_id(){return this.groupId}get groupId(){return this.contact.peer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Hr=class extends Vt{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"groupTemp"})),this.#e="groupTemp",this.#t=e.contact,this.#r=e.sender;}get group_id(){return this.groupId}get groupId(){return this.contact.peer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return true}};});var mt,Kr,Ur,Wr,R,Yr,Jr,Vr,zr,Qr,Xr,Zr,en,tn,rn,nn,sn,Us=c(()=>{Jt();mt=class extends Ae{#e;#t;tips;content;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"notice"}),this.#e="notice",this.#t=e,this.tips="";}get event(){return this.#e}get subEvent(){return this.#t}},Kr=class extends mt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendIncrease"})),this.#e="friendIncrease",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Ur=class extends mt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendPoke"})),this.#e="friendPoke",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Wr=class extends mt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendRecall"})),this.#e="friendRecall",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},R=class extends mt{get group_id(){return this.contact.peer}get groupId(){return this.contact.peer}},Yr=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupPoke"})),this.#e="groupPoke",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Jr=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupRecall"})),this.#e="groupRecall",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Vr=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupFileUploaded"})),this.#e="groupFileUploaded",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},zr=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupCardChanged"})),this.#e="groupCardChanged",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Qr=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupHighlightsChange"})),this.#e="groupHighlightsChange",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Xr=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberAdd"})),this.#e="groupMemberAdd",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Zr=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberRemove"})),this.#e="groupMemberRemove",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},en=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupAdminChanged"})),this.#e="groupAdminChanged",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},tn=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberBan"})),this.#e="groupMemberBan",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},rn=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMessageReaction"})),this.#e="groupMessageReaction",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},nn=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupLuckyKing"})),this.#e="groupLuckyKing",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},sn=class extends R{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupHonorChange"})),this.#e="groupHonorChange",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}};});var Ws=c(()=>{Jt();});var on,an,ua,ca,pa,ga,la,da,ma,fa,ha,ba,ya,wa,_a,Ys,xa,Ea,un=c(()=>{ta();sa();aa();Ks();Us();Ws();on=t=>{let e=new qr(t);return Zi(e),e},an=t=>{let e=new Lr(t);return Yi(e),e},ua=t=>{let e=new Hr(t);return Ji(e),e},ca=t=>{let e=new Kr(t);return jr(e),e},pa=t=>{let e=new Ur(t);return jr(e),e},ga=t=>{let e=new Wr(t);return jr(e),e},la=t=>{let e=new Yr(t);return B(e),e},da=t=>{let e=new Jr(t);return B(e),e},ma=t=>{let e=new Vr(t);return B(e),e},fa=t=>{let e=new zr(t);return B(e),e},ha=t=>{let e=new Qr(t);return B(e),e},ba=t=>{let e=new Xr(t);return B(e),e},ya=t=>{let e=new Zr(t);return B(e),e},wa=t=>{let e=new en(t);return B(e),e},_a=t=>{let e=new tn(t);return B(e),e},Ys=t=>{let e=new rn(t);return B(e),e},xa=t=>{let e=new nn(t);return B(e),e},Ea=t=>{let e=new sn(t);return B(e),e};});var ue,E,va=c(()=>{ue=(t,e="",r,n,s,o)=>(e||(e=""),{userId:t,nick:e,name:e,sex:r,age:n,uid:s,uin:o}),E=(t,e,r,n,s,o,i,a,u,p,g)=>{if(typeof t=="object"){let d=t.name||"";return {userId:t.userId,nick:d,name:d,role:t.role,card:t.card,area:t.area,level:t.level,title:t.title,sex:t.sex,age:t.age,uid:t.uid,uin:t.uin}}if(typeof t=="string")return {userId:t,nick:r||"",name:r||"",role:e||"unknown",card:o,area:i,level:a,title:u,sex:n,age:s,uid:p,uin:g};throw TypeError("\u63D0\u4F9B\u7684\u53C2\u6570\u7C7B\u578B\u9519\u8BEF")};});var ye,k,ka,Ga=c(()=>{ye=(t,e="")=>({scene:"friend",peer:t,name:e}),k=(t,e="")=>({scene:"group",peer:t,name:e}),ka=(t,e,r="")=>({scene:"groupTemp",peer:t,subPeer:e,name:r});});var zt=c(()=>{Jt();Us();va();Ga();Ks();Ws();});var Ma,Y,cn,$a,Ia=c(()=>{Br();Ge();cr();v();j();Ns();fe();un();zt();Ma=0,Y="console",cn=class extends Te{constructor(){super(),m.on("karin:adapter:open",()=>process.stdin.on("data",e=>this.createEvent(e))),m.on("karin:adapter:close",()=>process.stdin.removeAllListeners("data")),this.adapter.name="@karinjs/console",this.adapter.communication="other",this.adapter.platform="other",this.adapter.standard="other",this.adapter.version=process.env.karin_version,this.account.name=Y,this.account.uid=Y,this.account.uin=Y,this.account.selfId=Y,this.account.avatar="https://p.qlogo.cn/gh/967068507/967068507/0",m.emit("karin:adapter:open");}get selfId(){return this.account.selfId}createEvent(e){let r=e.toString().trim(),n=Math.floor(Math.random()*1e9),s=Date.now();if(r.startsWith("group")){let i=k("10010");an({bot:this,contact:i,elements:[x.text(r.replace(/^group/,"").trim())],eventId:`${Y}${s}`,messageId:`${Y}${s}`,messageSeq:n,rawEvent:{data:e},sender:E(Y,"member"),time:s,srcReply:a=>this.sendMsg(i,a)});return}let o=ye(Y);on({bot:this,contact:o,elements:[x.text(r.replace(/^group/,"").trim())],eventId:`${Y}.${s}`,messageId:`${Y}.${s}`,messageSeq:n,rawEvent:{data:e},sender:ue(Y,""),time:s,srcReply:i=>this.sendMsg(o,i)});}async sendMsg(e,r,n){let s=Date.now(),o=(++Ma).toString(),i={message_id:o,messageId:o,time:s,messageTime:s,rawData:{}},a=[];for(let u of r){if(u.type==="at"){a.push(`[at:${u.targetId}]`);continue}if(u.type==="text"){a.push(u.text);continue}if(u.type==="image"||u.type==="record"||u.type==="video"){let p=u.file.startsWith("http")?u.file:await this.getUrl(u.file,".png");a.push(`[${u.type}: ${logger.blue(p)} ]`);continue}a.push(JSON.stringify(u));}return e.scene==="group"?(a.unshift(logger.green("Send group message: ")),logger.info(a.join(""))):(a.unshift(logger.green("Send private message: ")),logger.info(a.join(""))),i}async getUrl(e,r){let n=X(),s=(++Ma).toString(),o=C.join(xe,`${s}${r}`);return await $.promises.writeFile(o,await Le(e)),n.console.isLocal?`http://127.0.0.1:${n.port}/console/${s}${r}`:n.console.host?`${n.console.host}/console/${s}${r}?token=${n.console.token}`:`http://127.0.0.1:${n.port}/console/${s}${r}?token=${n.console.token}`}},$a=new cn;rt("other",$a);});var Pa,J,Ta,Sa,Vs,Oe,ip,ap,pn,gn,Js,Aa,up,Oa=c(()=>{Pa=0,J=[],Ta=(t,e)=>{let r=++Pa;return J.push({index:r,id:t,render:e}),logger.mark(`[render:${Pa}] ${logger.green("\u6CE8\u518C\u6210\u529F")}: ${t}`),r},Sa=t=>{let e=J.find(r=>r.index===t);return e?(J.splice(J.findIndex(r=>r.index===t),1),logger.mark(`[render] ${logger.yellow("\u5378\u8F7D\u6210\u529F")}: ${e.id}`),true):(logger.error(`[render] \u5378\u8F7D\u5931\u8D25: \u4E0D\u5B58\u5728\u7D22\u5F15 ${t}`),false)},Vs=t=>{if(J.length===0)throw new Error("[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u6E32\u67D3\u5668\u5217\u8868\u4E3A\u7A7A");if(!t)return J[Math.floor(Math.random()*J.length)];if(typeof t=="number"){let r=J.find(n=>n.index===t);if(!r)throw new Error(`[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u672A\u627E\u5230\u6E32\u67D3\u5668\uFF1A${t}`);return r}let e=J.find(r=>r.id===t);if(!e)throw new Error(`[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u672A\u627E\u5230\u6E32\u67D3\u5668\uFF1A${t}`);return e},Oe=async(t,e)=>await Vs(e).render(Object.assign(t,{encoding:"base64"})),ip=()=>J.length,ap=()=>J.map(e=>e),pn=t=>Oe({file:t,name:"render",encoding:"base64",pageGotoParams:{waitUntil:"networkidle2"}}),gn=(t,e)=>(!e&&e!==0&&(e=true),Oe({file:t,name:"render",encoding:"base64",multiPage:e,pageGotoParams:{waitUntil:"networkidle2"}})),Js=class{app(e){return Ta(e.id,e.render)}unapp(e){return Sa(e)}App(e=""){return Vs(e)}async render(e,r){return Oe(e,r)}async renderHtml(e){return pn(e)}async renderMultiHtml(e,r){return gn(e,r)}},Aa=new Js,up=Aa;});var ln,zs,gp,lp,dp,mp,Ra=c(()=>{j();Et();ln=new Map,zs=new Map,gp=t=>{if(t.data){if(t.file.startsWith("http"))throw TypeError("\u4ED6\u55B5\u7684 \u4E0D\u4F1A\u771F\u7684\u6709\u7B28\u6BD4\u4F20\u4E2Ahttp\u6765\u5F53\u505A\u6A21\u677F\u5427...");let e=C.resolve(t.file),r=lp(e),n=pp.render(r,t.data),s=dp(t.file,n,t.name);return $.writeFileSync(s,n),delete t.data,delete t.name,t.file=`file://${s}`,t}return !t.file.startsWith("http")&&!t.file.startsWith("file")&&(t.file=`file://${t.file}`),delete t.data,delete t.name,t},lp=t=>{let e=ln.get(t);if(e)return e;let r=$.readFileSync(t,"utf-8");return mp(t,r),r},dp=(t,e,r)=>{let n=C.extname(t),s=C.basename(t,n),o=C.join(vt,r||"render"),i=C.join(o,`${s}-${Date.now()}${n}`);return Be(o),$.writeFileSync(i,e),i},mp=async(t,e)=>{if(ln.set(t,e),zs.has(t))return;let r=hu.watch(t);zs.set(t,r),r.on("change",()=>{ln.set(t,$.readFileSync(t,"utf-8")),logger.info(`[\u6587\u4EF6\u53D8\u52A8] html\u6A21\u677F\u53D1\u9001\u53D8\u52A8: ${t}`);}),r.on("unlink",()=>{ln.delete(t),r.close(),zs.delete(t),r.removeAllListeners(),logger.info(`[\u6587\u4EF6\u5220\u9664] html\u6A21\u677F\u88AB\u5220\u9664: ${t}`);});};});var Ca=c(()=>{});var Qs=c(()=>{Oa();Ra();Ca();});var Fa={};S(Fa,{AdapterBase:()=>Te,AdapterConsole:()=>cn,Renderer:()=>up,adapter:()=>$a,callRender:()=>Oe,getRender:()=>Vs,getRenderCount:()=>ip,getRenderList:()=>ap,registerRender:()=>Ta,render:()=>Aa,renderHtml:()=>pn,renderMultiHtml:()=>gn,renderTpl:()=>gp,unregisterRender:()=>Sa});var Ba=c(()=>{Br();Ia();Qs();});var Za=Date.now(),co=false,uo=()=>co||process.env.karin_dev||process.argv.some(t=>t.includes("debug")),po=t=>{let e=i=>K.hex("#0cafff")(i),r=i=>{e=i;},n=(...i)=>{process.stderr.write(`${e(t)} ${Dc.format(...i)} ${e(`+${Date.now()-Za}ms`)}
11
+ `);},s=()=>{},o=uo()?n:s;return Object.assign(o,{chalk:K,setColor:r,enable:i=>{co=i,o=uo()?n:s;}})};var eu=po("core");global.debug=eu;v();j();$.existsSync(Mn)||$.mkdirSync(Mn);var Fc=(t={})=>{if(t.config)return ks.configure(t.config);let{level:e="info",daysToKeep:r=7,overall:n=true,fragments:s=false,maxLogSize:o=30}=t.log4jsCfg||{},i={appenders:{console:{type:"console",layout:{type:"pattern",pattern:`%[[Karin][%d{hh:mm:ss.SSS}][%4.4p]%] ${process.env.karin_dev==="dev"?"[%f{3}:%l] ":""}%m`}}},categories:{default:{appenders:["console"],level:e,enableCallStack:process.env.karin_dev==="dev"}},levels:{handler:{value:15e3,colour:"cyan"}}};return n&&(i.categories.default.appenders.unshift("overall"),i.appenders.overall={type:"file",filename:"logs/logger",pattern:"yyyy-MM-dd.log",keepFileExt:true,alwaysIncludePattern:true,daysToKeep:n||7,layout:{type:"pattern",pattern:"[%d{hh:mm:ss.SSS}][%4.4p] %m"}}),s&&(i.categories.default.appenders.unshift("fragments"),i.appenders.fragments={type:"file",filename:"logs/app.log",pattern:"MM-dd.log",keepFileExt:true,alwaysIncludePattern:true,daysToKeep:r||7,maxLogSize:(o||30)*1024*1024,numBackups:9999999,layout:{type:"pattern",pattern:"[%d{hh:mm:ss.SSS}][%4.4p] %m"}}),ks.configure(i)},Bc=(t,e)=>{let r=t;return r.chalk=K,r.red=K.red,r.green=K.green,r.yellow=K.yellow,r.blue=K.blue,r.magenta=K.magenta,r.cyan=K.cyan,r.white=K.white,r.gray=K.gray,r.violet=K.hex("#868ECC"),r.fnc=K.hex("#FFFF00"),r.bot=(n,s,...o)=>{switch(n){case "trace":return r.trace(r.violet(`[Bot:${s}]`),...o);case "debug":return r.debug(r.violet(`[Bot:${s}]`),...o);case "mark":return r.mark(r.violet(`[Bot:${s}]`),...o);case "info":return r.info(r.violet(`[Bot:${s}]`),...o);case "warn":return r.warn(r.violet(`[Bot:${s}]`),...o);case "error":return r.error(r.violet(`[Bot:${s}]`),...o);case "fatal":return r.fatal(r.violet(`[Bot:${s}]`),...o);default:return r.info(r.violet(`[Bot:${s}]`),...o)}},r},vi=(t={})=>{Fc(t);let e=Bc(ks.getLogger("default"));return global.logger=e,e};debug("debug: init logger");var Vd=vi({log4jsCfg:T().log4jsCfg});v();Ar();vs();bs();await ys(jt());var fp=async()=>{let[{LoaderPlugin:t},{listen:e}]=await Promise.all([Promise.resolve().then(()=>(Mi(),Gi)),Promise.resolve().then(()=>(Rs(),Di)),Promise.resolve().then(()=>(Ba(),Fa))]);await Promise.all([new t().init(),e(jt(),ws())]);};fp();Ns();var Xs={};S(Xs,{accept:()=>bp,button:()=>yp,command:()=>_p,ctx:()=>xp,handler:()=>Ep,render:()=>wp,sendAdmin:()=>kp,sendMaster:()=>vp,task:()=>hp});Pe();var hp=(t,e,r,n={})=>{if(!t)throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570[name]");if(!e)throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570[cron]");if(!r||typeof r!="function")throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570\u6216\u7C7B\u578B\u9519\u8BEF[fnc]");return {name:t,cron:e,fnc:r,log:de(n.log,false),schedule:undefined,file:Z("task",n.name||"task"),pkg:ee()}};Pe();var bp=(t,e,r={})=>{let n=r.dsbAdapter||r.notAdapter||[],s=Number(r.rank??r.priority);return {event:t,fnc:e,log:de(r.log,true),adapter:Array.isArray(r.adapter)?r.adapter:[],dsbAdapter:Array.isArray(n)?n:[],file:Z("accept",r.name||"accept"),pkg:ee(),priority:s??1e4}};Pe();var yp=(t,e,r={})=>{let n=Number(r.rank??r.priority);return {fnc:e,reg:t instanceof RegExp?t:new RegExp(t),rank:isNaN(n)?1e4:n,file:Z("button",r.name||"button"),pkg:ee(),priority:n??1e4}};Qs();var wp=(t,e,r)=>t==="opt"?Oe(e,r):typeof t=="string"?e?gn(t,e):pn(t):Oe(t,e);Pe();var _p=(t,e,r={})=>{t=typeof t=="string"?new RegExp(t):t;let n=typeof e=="function"?e:async i=>{let a=typeof e=="number"?String(e):e;return await i.reply(a,{at:"at"in r&&r.at||false,reply:"reply"in r&&r.reply||false,recallMsg:"recallMsg"in r&&Number(r.recallMsg)||0}),!("stop"in r&&!r.stop)},s=r.dsbAdapter||r.notAdapter||[],o=Number(r.rank??r.priority);return {type:"fnc",event:r.event||"message",fnc:n,log:de(r.log,true),permission:r.perm||r.permission||"all",priority:isNaN(o)?1e4:o,reg:t,adapter:Array.isArray(r.adapter)?r.adapter:[],dsbAdapter:Array.isArray(s)?s:[],authFailMsg:r.authFailMsg||true,file:Z("command",r.name||"command"),pkg:ee()}};O();Dr();var xp=async(t,e)=>{let r=(e==null?undefined:e.time)||120,n=(e==null?undefined:e.userId)||t.userId||t.user_id,s=t.contact.subPeer?`${t.contact.peer}:${t.contact.subPeer}:${n}`:`${t.contact.peer}:${n}`;return ot.set(s,t),new Promise((o,i)=>{let a=setTimeout(()=>{let u=ot.get(s);if((u==null?undefined:u.eventId)===t.eventId)return ot.delete(s),e!=null&&e.reply&&t.reply(e.replyMsg||"\u64CD\u4F5C\u8D85\u65F6\u5DF2\u53D6\u6D88"),m.removeAllListeners(`ctx:${s}`),i(new Error(`\u63A5\u6536\u4E0B\u6587\u4E8B\u4EF6\u8D85\u65F6\uFF0C\u5DF2\u53D6\u6D88\u4E0B\u6587\u76D1\u542C: ${s}`)),true},r*1e3);m.once(`ctx:${s}`,u=>{clearTimeout(a),o(u);});})};Pe();var Ep=(t,e,r={})=>{if(!t)throw new Error("[handler]: \u7F3A\u5C11\u53C2\u6570[key]");if(!e)throw new Error("[handler]: \u7F3A\u5C11\u53C2\u6570[fnc]");return {key:t,fnc:e,priority:Number(r.rank??r.priority)||1e4,file:Z("handler",r.name||"handler"),pkg:ee()}};he();v();var vp=async(t,e,r,n={recallMsg:0,retryCount:1,mustMaster:false})=>{let s=(n==null?undefined:n.mustMaster)??false,o=xs();if(s){if(!o.includes(`${t}@${e}`))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662FBot\u7684\u4E13\u5C5E\u4E3B\u4EBA")}else if(!o.includes(e))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662F\u4E3B\u4EBA");return Nr(t,{peer:e,scene:"friend"},r,n)},kp=async(t,e,r,n={recallMsg:0,retryCount:1,mustAdmin:false})=>{let s=(n==null?undefined:n.mustAdmin)??false,o=Es();if(s){if(!o.includes(`${t}@${e}`))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662FBot\u7684\u4E13\u5C5E\u7BA1\u7406\u5458")}else if(!o.includes(e))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662F\u7BA1\u7406\u5458");return Nr(t,{peer:e,scene:"friend"},r,n)};O();he();var Zs=class extends EventEmitter{name="karin";contact(e,r,n,s){return e==="guild"||e==="direct"||e==="groupTemp"?{scene:e,peer:r,subPeer:n,name:s}:{scene:e,peer:r,subPeer:undefined,name:s}}contactGroup(e,r){return {scene:"group",peer:e,subPeer:undefined,name:r||""}}contactFriend(e,r){return {scene:"friend",peer:e,subPeer:undefined,name:r||""}}contactGuild(e,r,n,s){return {scene:"guild",peer:e,subPeer:r,name:n||"",subName:s||""}}contactGroupTemp(e,r,n){return {scene:"groupTemp",peer:e,subPeer:r,name:n||""}}friendSender(e,r,n="unknown",s,o,i){return {userId:String(e),nick:r,sex:n,age:s,uid:o,uin:i,name:r}}groupSender(e,r,n,s,o,i,a,u,p,g,d){return {userId:String(e),role:r||"unknown",nick:n||"",sex:s,age:o,card:i,area:a,level:u,title:p,uid:g,uin:d,name:n||""}}getBotByIndex(e){return Cs(e)}getBotCount(){return Hi()}getBotAll(e){return e?Li():qi().map(r=>r)}},Mp=()=>{m.on("ws:connection",(t,e)=>{let r=`ws:connection:${e.url||"/"}`;if(debug(`on ws:connection host: ${e.headers.host} url: ${e.url}`),!Xt.listenerCount(r)){t.close(),logger.warn(`[server][webSocket] \u8FDE\u63A5\u65AD\u5F00 \u672A\u627E\u5230\u7ED1\u5B9A\u7684\u8DEF\u7531: ${e.url||"/"}`);return}Xt.emit(r,t,e);}),m.on("watch:file",(t,e,r)=>{Xt.emit("file:change",t,e,r);});},Xt=new Zs;Mp();debug("debug: init karin");var Na=Object.assign(Xt,Xs),Ey=Na;fe();V();var Gy=async(t,e)=>{let r=[];for(let n of l.button)if(n.reg.test(t))try{let o=!1,i=()=>{o=!0;},a=await n.fnc(i,e);if(a&&(Array.isArray(a)?r.push(...a):r.push(a)),!o)return r}catch(o){logger.error(`[Button][Error] ${n.pkg.name}:`),logger.error(o);}return r};is();var Da={};S(Da,{Watch:()=>St,Watcher:()=>At,YamlEditor:()=>ne,absPath:()=>or,applyComments:()=>Tt,base64:()=>ur,buffer:()=>Le,clearRequire:()=>Po,clearRequireFile:()=>pe,comment:()=>Cn,copyConfig:()=>Eo,copyConfigSync:()=>xo,copyFiles:()=>In,copyFilesSync:()=>$n,createPluginDir:()=>ir,downFile:()=>sr,existToMkdir:()=>nr,existToMkdirSync:()=>Be,exists:()=>_n,existsSync:()=>lo,file:()=>I,filesByExt:()=>He,getFiles:()=>ar,getPluginInfo:()=>It,getRelPath:()=>lr,isDir:()=>rr,isDirSync:()=>mo,isFile:()=>go,isFileSync:()=>fo,isPlugin:()=>hr,isStatic:()=>Oo,isSubPath:()=>mr,json:()=>Mo,key:()=>vr,lock:()=>Rt,lockMethod:()=>Nn,lockProp:()=>Ot,log:()=>Dn,logs:()=>jn,mkdir:()=>xn,mkdirSync:()=>xt,parseChangelog:()=>Ct,pkgRoot:()=>fr,range:()=>qn,read:()=>Ue,readFile:()=>Go,readJson:()=>Pn,readJsonSync:()=>Gt,requireFile:()=>L,requireFileSync:()=>N,rmSync:()=>ho,save:()=>yr,sep:()=>ce,splitPath:()=>gr,stream:()=>Ee,urlToPath:()=>dr,watch:()=>Fn,watchAndMerge:()=>Bo,write:()=>br,writeJson:()=>Tn,writeJsonSync:()=>Mt,yaml:()=>Co});Gr();ve();Er();Gr();var La={};S(La,{checkGitPluginUpdate:()=>Sp,checkPkgUpdate:()=>Ip,errorToString:()=>ku,exec:()=>_,ffmpeg:()=>es,ffplay:()=>Su,ffprobe:()=>ts,fileToUrl:()=>Op,fileToUrlHandlerKey:()=>ro,formatTime:()=>ns,getCommit:()=>Zt,getHash:()=>to,getPid:()=>Vn,getPkgVersion:()=>er,getRemotePkgVersion:()=>fn,getRequestIp:()=>Ai,getTime:()=>ja,importModule:()=>$p,isClass:()=>Gs,isDocker:()=>Pu,isIPv4Loop:()=>Is,isIPv6Loop:()=>Si,isLinux:()=>$u,isLocalRequest:()=>Ps,isLoopback:()=>Ti,isMac:()=>Iu,isRoot:()=>Tu,isWin:()=>$r,restart:()=>Yc,restartDirect:()=>Ss,stringifyError:()=>Wn,updateAllGitPlugin:()=>Ap,updateAllPkg:()=>Tp,updateGitPlugin:()=>qa,updatePkg:()=>Pp,uptime:()=>Au});Ts();zn();ge();ss();Ms();Yn();rs();var $p=async(t,e=false)=>{try{return {status:!0,data:await import(`file://${t}${e?`?t=${Date.now()}`:""}`)}}catch(r){return {status:false,data:r}}};Jn();ge();ve();Ir();var eo=(t=false)=>L("package.json",{force:t}),Ip=async t=>{let e=(global==null?undefined:global.logger)||console;try{let r=await er(t),n=await fn(t);return r===n?{status:"no",local:r}:{status:"yes",local:r,remote:n}}catch(r){return e.error(r),{status:"error",error:r}}},er=async t=>{var a,u,p,g;let{status:e,stdout:r,error:n}=await _(`npm list ${t} --depth=0`);if(e)throw (a=n==null?undefined:n.stack)!=null&&a.toString().includes("empty")?new Error(`\u83B7\u53D6\u5931\u8D25\uFF0C${t} \u672A\u5B89\u88C5`):n;let o=new RegExp(`${t}@(\\d+\\.\\d+\\.\\d+)`,"gm").exec(r.toString());if(o!=null&&o[1])return o[1];let i=await eo();return ((u=i==null?undefined:i.dependencies)==null?undefined:u[t])||((p=i==null?undefined:i.devDependencies)==null?undefined:p[t])||((g=i==null?undefined:i.peerDependencies)==null?undefined:g[t])},fn=async(t,e="latest")=>{var i;let r=e==="latest"?`npm show ${t} version`:`npm show ${t} dist-tags.${e}`,{status:n,stdout:s,error:o}=await _(r);if(n)throw (i=o==null?undefined:o.stack)!=null&&i.toString().includes("empty")?new Error(`\u83B7\u53D6\u5931\u8D25\uFF0C${t} \u672A\u5B89\u88C5`):o;return s.toString().trim()},Pp=async(t,e="latest")=>{let r=(global==null?undefined:global.logger)||console;try{let n=await er(t),s=await fn(t,e);if(n===s)return {status:"failed",data:`[${t}][\u65E0\u66F4\u65B0] ${n} => ${s}`};let o=`pnpm up ${t}@${s}`,{error:i}=await _(o);return i?{status:"failed",data:i}:await er(t)!==s?{status:"failed",data:`[${t}][\u66F4\u65B0\u5931\u8D25] \u8BF7\u5C1D\u8BD5\u624B\u52A8\u66F4\u65B0 pnpm up ${t}@${s}`}:{status:"ok",data:`[${t}][\u66F4\u65B0\u6210\u529F] ${n} => ${s}`,local:n,remote:s}}catch(n){return r.error(n),{status:"failed",data:n}}},Tp=async()=>{let t=(global==null?undefined:global.logger)||console;try{let e=await oe("npm",!1);e.push("node-karin");let r={},n=[`
12
+ ------- \u66F4\u65B0npm\u63D2\u4EF6 --------`],s=["pnpm up"],o=await eo(),i=[];if(await Promise.all(e.map(async g=>{let d=await er(g),w=await fn(g)||o.dependencies[g];if(d===w){n.push(`[${g}][\u65E0\u66F4\u65B0] ${d} => ${w}`);return}n.push(`\u66F4\u65B0${g} ${d} => ${w}`),s.push(`${g}@${w}`),r[g]={local:d,remote:w};})),s.length===1)return n.push("\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~"),n.push("---------------------------"),t.info(n.join(`
13
+ `)),"\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~";n.push("----------------------------"),t.info(n.join(`
14
+ `));let a=s.join(" ");t.info(`\u5F00\u59CB\u66F4\u65B0: ${a}`);let{error:u}=await _(a);if(u)return Object.keys(r).forEach(g=>{i.push(`[${g}][\u66F4\u65B0\u5931\u8D25] \u8BF7\u5C1D\u8BD5\u624B\u52A8\u66F4\u65B0 pnpm up ${g}@${r[g].remote}`);}),i.unshift(`[\u66F4\u65B0\u5931\u8D25] \u66F4\u65B0\u6570\u91CF: ${i.length}`),t.error(i.join(`
15
+ `)),t.error(u),i.join(`
16
+ `);let p=await eo(!0);return Object.keys(r).forEach(g=>{var w,b,G;(((w=p.dependencies)==null?void 0:w[g])||((b=p.devDependencies)==null?void 0:b[g])||((G=p.peerDependencies)==null?void 0:G[g]))!==r[g].remote?i.push(`[${g}][\u66F4\u65B0\u5931\u8D25] \u8BF7\u5C1D\u8BD5\u624B\u52A8\u66F4\u65B0 pnpm up ${g}@${r[g].remote}`):i.push(`[${g}][\u66F4\u65B0\u6210\u529F] ${r[g].local} => ${r[g].remote}`);}),i.sort((g,d)=>g.includes("\u6210\u529F")?-1:1),t.info(i.join(`
17
+ `)),i.join(`
18
+ `)}catch(e){return t.error(e),e.message||"\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u67E5\u770B\u65E5\u5FD7"}},Sp=async(t,e=120)=>{var n;let r=(global==null?undefined:global.logger)||console;try{if(!$.existsSync(t))return {status:"error",data:new Error("\u8DEF\u5F84\u4E0D\u5B58\u5728")};if(!$.existsSync(`${t}/.git`))return {status:"error",data:new Error("\u8BE5\u8DEF\u5F84\u4E0D\u662F\u4E00\u4E2Agit\u4ED3\u5E93")};let s=setTimeout(()=>({status:"failed",data:"\u6267\u884C\u8D85\u65F6"}),e*1e3),o={cwd:t},{error:i}=await _("git fetch origin",o);if(i)return {status:"error",data:i};let{stdout:a}=await _("git status -uno",o);if(clearTimeout(s),a.includes("Your branch is up to date with"))return {status:"no",data:`\u5F53\u524D\u7248\u672C\u5DF2\u662F\u6700\u65B0\u7248\u672C
19
+ \u6700\u540E\u66F4\u65B0\u65F6\u95F4\uFF1A${await ja(t)}`};let u=Number((n=a.match(/Your branch is behind '.*' by (\d+) commits/))==null?void 0:n[1])||1,p=await Zt({path:t,count:u,branch:"origin"});return clearTimeout(s),{status:"yes",data:p,count:u}}catch(s){return r.error(s),{status:"error",data:s}}},Zt=async t=>{let{path:e,count:r=1,hash:n,branch:s}=t,o=`git log -${r} --format="[%ad]%s %n" --date="format:%m-%d %H:%M"`;n&&(o=`git log ${n}..HEAD --format="[%ad] %s %n" --date="format:%m-%d %H:%M"`),s&&(o=`git log -${r} ${s} --format="[%ad] %s %n" --date="format:%m-%d %H:%M"`);let{stdout:i,error:a}=await _(o,{cwd:e});if(a)throw a;return i},to=async(t,e=true)=>{let r=e?"git rev-parse --short HEAD":"git rev-parse HEAD",{stdout:n,error:s}=await _(r,{cwd:t});if(s)throw s;return n},ja=async t=>{let e='git log -1 --format=%cd --date=format:"%Y-%m-%d %H:%M:%S"',{stdout:r,error:n}=await _(e,{cwd:t});return n?"\u83B7\u53D6\u6700\u540E\u4E00\u6B21\u63D0\u4EA4\u65F6\u95F4\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u66F4\u65B0Git~":r},qa=async(t,e="git pull",r=120)=>{let n=(global==null?undefined:global.logger)||console;try{if(!$.existsSync(t))return {status:"failed",data:"\u8DEF\u5F84\u4E0D\u5B58\u5728"};if(!$.existsSync(`${t}/.git`))return {status:"failed",data:"\u8BE5\u8DEF\u5F84\u4E0D\u662F\u4E00\u4E2Agit\u4ED3\u5E93"};let s=setTimeout(()=>({status:"failed",data:"\u6267\u884C\u8D85\u65F6"}),r*1e3),o=await to(t);e=e||"git pull";let{error:i}=await _(e,{cwd:t});if(i){let p=`
20
+ \u66F4\u65B0\u5931\u8D25
21
+ \u9519\u8BEF\u4FE1\u606F\uFF1A${(i==null?void 0:i.stack)||(i==null?void 0:i.message)}
22
+ \u8BF7\u89E3\u51B3\u9519\u8BEF\u540E\u91CD\u8BD5\u6216\u6267\u884C\u3010#\u5F3A\u5236\u66F4\u65B0\u3011`;return clearTimeout(s),{status:"failed",data:p}}let a=await to(t);if(o===a){clearTimeout(s);let p=await Zt({path:t,count:1});return {status:"failed",data:`
23
+ \u5F53\u524D\u7248\u672C\u5DF2\u662F\u6700\u65B0\u7248\u672C
24
+ \u6700\u540E\u66F4\u65B0\u65F6\u95F4\uFF1A${r}
25
+ \u66F4\u65B0\u8BE6\u60C5\uFF1A${p}`}}clearTimeout(s);let u=await Zt({path:t,count:1});return {status:"ok",data:`
26
+ \u66F4\u65B0\u6210\u529F
27
+ \u66F4\u65B0\u65E5\u5FD7\uFF1A${Zt({path:t,count:1})}`,commit:u}}catch(s){return n.error(s),{status:"failed",data:s}}},Ap=async(t="git pull",e=120)=>{try{let r=(global==null?void 0:global.logger)||console,n=await oe("git",!1),s=[`
28
+ ------- \u66F4\u65B0git\u63D2\u4EF6 --------`];if(!n.length)return s.push("\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~"),s.push("----------------------------"),r.info(s.join(`
29
+ `)),"\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~";let o=[];return await Promise.allSettled(n.map(async i=>{let a=`./plugins/${i}`,{status:u,data:p}=await qa(a,t,e);u==="ok"?(s.push(`[${i}][\u66F4\u65B0\u6210\u529F] ${p}`),o.push(`[${i}][\u66F4\u65B0\u6210\u529F] ${p}`)):(s.push(`[${i}][\u66F4\u65B0\u5931\u8D25] ${p}`),o.push(`[${i}][\u66F4\u65B0\u5931\u8D25] ${p}`));})),s.push("----------------------------"),r.info(s.join(`
30
+ `)),o.join(`
31
+ `)}catch(r){return logger.error(r),r.message||"\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u67E5\u770B\u65E5\u5FD7"}};As();Bs();var ro="fileToUrl",Op=async(t,e,r,n)=>{if(!Fs.has(ro))throw new Error("[Handler][Error]: \u6CA1\u6709\u914D\u7F6E\u6587\u4EF6\u8F6C\u6362\u4E3Aurl\u7684\u5904\u7406\u5668");return Fs(ro,{file:e,type:t,filename:r,args:n})};fe();Qe();v();Er();Rs();O();v();O();var ft=new Map,Ha=(t,e)=>{e?ft.set(t,{token:e,isAuth:true}):ft.set(t,{token:null,isAuth:false}),logger.debug(`[service][onebot-post][\u6CE8\u518CBot] ${t}`);},no=t=>{ft.delete(t),logger.debug(`[service][onebot-post][\u5378\u8F7DBot] ${t}`);};var Rp=(t,e)=>{if(ft.get(t)){if(!e){ft.set(t,{token:null,isAuth:false});return}ft.set(t,{token:e,isAuth:true});}};m.on("watch:file",(t,e,r)=>{if(t==="server"){if(!r.onebotHttp||!Array.isArray(r.onebotHttp))return logger.debug("\u6CA1\u6709\u914D\u7F6EonebotHttp \u5DF2\u8DF3\u8FC7"),true;for(let{selfId:n,api:s,token:o}of r.onebotHttp)if(n!=="default"){if(n=String(n),o=String(o),!n||!s||!s.startsWith("http")){logger.bot("error",n,"\u8BF7\u914D\u7F6E\u6B63\u786E\u7684 onebot http \u4FE1\u606F");continue}Rp(n,o);}}});Br();var hn=(f=>(f.sendPrivateMsg="send_private_msg",f.sendGroupMsg="send_group_msg",f.sendMsg="send_msg",f.deleteMsg="delete_msg",f.getMsg="get_msg",f.getForwardMsg="get_forward_msg",f.sendLike="send_like",f.setGroupKick="set_group_kick",f.setGroupBan="set_group_ban",f.setGroupAnonymousBan="set_group_anonymous_ban",f.setGroupWholeBan="set_group_whole_ban",f.setGroupAdmin="set_group_admin",f.setGroupAnonymous="set_group_anonymous",f.setGroupCard="set_group_card",f.setGroupName="set_group_name",f.setGroupLeave="set_group_leave",f.setGroupSpecialTitle="set_group_special_title",f.setFriendAddRequest="set_friend_add_request",f.setGroupAddRequest="set_group_add_request",f.getLoginInfo="get_login_info",f.getStrangerInfo="get_stranger_info",f.getFriendList="get_friend_list",f.getGroupInfo="get_group_info",f.getGroupList="get_group_list",f.getGroupMemberInfo="get_group_member_info",f.getGroupMemberList="get_group_member_list",f.getGroupHonorInfo="get_group_honor_info",f.getCookies="get_cookies",f.getCsrfToken="get_csrf_token",f.getCredentials="get_credentials",f.getRecord="get_record",f.getImage="get_image",f.canSendImage="can_send_image",f.canSendRecord="can_send_record",f.getStatus="get_status",f.getVersionInfo="get_version_info",f.getVersion="get_version",f.setRestart="set_restart",f.cleanCache="clean_cache",f.sendForwardMsg="send_forward_msg",f.sendGroupForwardMsg="send_group_forward_msg",f.sendPrivateForwardMsg="send_private_forward_msg",f.getFriendMsgHistory="get_friend_msg_history",f.getGroupMsgHistory="get_group_msg_history",f.setMsgEmojiLike="set_msg_emoji_like",f.uploadGroupFile="upload_group_file",f.uploadPrivateFile="upload_private_file",f.getEssenceMsgList="get_essence_msg_list",f.setEssenceMsg="set_essence_msg",f.deleteEssenceMsg="delete_essence_msg",f))(hn||{});var Cp=(n=>(n.Male="male",n.Female="female",n.Unknown="unknown",n))(Cp||{}),so=(o=>(o.Message="message",o.Notice="notice",o.Request="request",o.MetaEvent="meta_event",o.MessageSent="message_sent",o))(so||{}),Fp=(r=>(r.Private="private",r.Group="group",r))(Fp||{}),Bp=(i=>(i.Friend="friend",i.Group="group",i.Other="other",i.Normal="normal",i.Anonymous="anonymous",i.Notice="notice",i))(Bp||{}),Ka=(b=>(b.GroupUpload="group_upload",b.GroupAdmin="group_admin",b.GroupDecrease="group_decrease",b.GroupIncrease="group_increase",b.GroupBan="group_ban",b.FriendAdd="friend_add",b.GroupRecall="group_recall",b.FriendRecall="friend_recall",b.Notify="notify",b.GroupMsgEmojiLike="group_msg_emoji_like",b.GroupMsgEmojiLikeLagrange="reaction",b.GroupEssence="essence",b.GroupCard="group_card",b))(Ka||{}),Np=(r=>(r.Friend="friend",r.Group="group",r))(Np||{});fe();var Re=(t,e,r,n)=>{if(n){let s=JSON.stringify(n,null,2).replace(/\\n/g,`
32
+ `);return new Error(`[${t}][sendApi] \u8BF7\u6C42\u9519\u8BEF:
33
+ action: ${e}
34
+ params: ${r}
35
+ error: ${s}}`)}logger.error(`[${t}][sendApi][\u8BF7\u6C42\u9519\u8BEF]:
36
+ action: ${e}
37
+ params: ${r}`);};function ht(t){let e=[];for(let r of t)switch(r.type){case "text":e.push(x.text(r.data.text));break;case "face":e.push(x.face(Number(r.data.id)));break;case "image":e.push(x.image(r.data.url||r.data.file,{fileType:r.data.type}));break;case "record":e.push(x.record(r.data.url||r.data.file,r.data.magic===1));break;case "video":e.push(x.video(r.data.url||r.data.file));break;case "at":e.push(x.at(r.data.qq,r.data.name));break;case "poke":break;case "contact":e.push(x.contact(r.data.type==="qq"?"friend":"group",r.data.id));break;case "location":e.push(x.location(Number(r.data.lat),Number(r.data.lon),r.data.title||"",r.data.content||""));break;case "reply":e.push(x.reply(r.data.id));break;case "forward":break;case "json":e.push(x.json(r.data.data));break;case "xml":e.push(x.xml(r.data.data));break;default:e.push(x.text(JSON.stringify(r)));}return e}var Ua=(t,e)=>{if(!e||!t.startsWith("file://"))return t;let r=["127.0.0.1","localhost"],n=new URL(e);return r.includes(n.hostname)?t:`base64://${$.readFileSync(t.replace("file://","")).toString("base64")}`},oo=(t,e)=>{var n,s,o;let r=[];for(let i of t){let a=i.type;switch(i.type){case "text":r.push({type:a,data:{text:i.text}});break;case "face":r.push({type:a,data:{id:i.id}});break;case "at":r.push({type:a,data:{qq:String(i.targetId),name:i.name}});break;case "reply":r.push({type:a,data:{id:i.messageId}});break;case "image":case "video":{r.push({type:a,data:{file:Ua(i.file,e.adapter.address)}});break}case "json":case "xml":{r.push({type:a,data:{data:i.data}});break}case "record":{r.push({type:a,data:{file:Ua(i.file,e.adapter.address),magic:i.magic||false}});break}case "music":{if(i.platform==="custom"){let{url:u,audio:p,title:g,author:d,pic:w}=i;r.push({type:"music",data:{type:"custom",url:u,audio:p,title:g,content:d,image:w}});}else r.push({type:"music",data:{type:i.platform,id:i.id}});break}case "longMsg":case "basketball":case "dice":case "marketFace":case "rps":{r.push({type:i.type,data:{id:i.id}});break}case "gift":{r.push({type:"gift",data:{qq:i.qq,id:i.id}});break}case "share":{r.push({type:"share",data:{url:i.url,title:i.title,content:i.content,image:i.image}});break}case "weather":{r.push({type:"weather",data:{city:i.city,type:i.type}});break}case "raw":r.push(i.data);break;case "node":{i.subType==="messageID"?r.push({type:"forward",data:{id:i.messageId}}):r.push({type:"node",data:{user_id:i.userId||e.selfId,nickname:i.nickname||e.selfName,content:oo(i.message,e),prompt:(n=i==null?undefined:i.options)==null?undefined:n.prompt,summary:(s=i==null?undefined:i.options)==null?undefined:s.summary,source:(o=i==null?undefined:i.options)==null?undefined:o.source}});break}case "button":case "markdown":case "keyboard":default:{r.push(i);break}}}return r};un();zt();var Wa=(t,e)=>{debug("onebot:createMessage",t);let r=t.time;if(t.message_type==="private"){if(t.sub_type==="friend"){let n=t.sender.user_id+"",s=ye(n),o=ue(n,t.sender.nickname,t.sender.sex,t.sender.age);on({bot:e,time:r,contact:s,sender:o,rawEvent:t,messageId:t.message_id+"",messageSeq:t.message_id,eventId:`message:${t.message_id}`,elements:ht(t.message),srcReply:i=>e.sendMsg(s,i)});return}if(t.sub_type==="group"){let n=t.group_id+""||t.temp_source+"",s=t.sender.user_id+"",o=ka(n,s),i=ue(s,t.sender.nickname);ua({bot:e,contact:o,elements:ht(t.message),eventId:`message:${t.message_id}`,messageId:t.message_id+"",messageSeq:t.message_id,rawEvent:t,sender:i,time:r,srcReply:a=>e.sendMsg(o,a)});}return}if(t.message_type==="group"&&t.sub_type==="normal"){let n=t.group_id+"",s=t.sender.user_id+"",{nickname:o,role:i,sex:a,age:u,card:p,area:g,level:d,title:w}=t.sender,b=k(n),G=E(s,i,o,a,u,p,g,d,w);an({bot:e,contact:b,elements:ht(t.message),eventId:`message:${t.message_id}`,messageId:t.message_id+"",messageSeq:t.message_id,rawEvent:t,sender:G,time:r,srcReply:D=>e.sendMsg(b,D)});return}logger.warn(`[AdapterOneBot] \u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${JSON.stringify(t)}`);};zt();un();var Ya=(t,e)=>{let r=t.time;if(t.notice_type==="friend_recall"){let n=t.user_id+"",s=t.message_id+"",o=ye(n);ga({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:o,sender:ue(n),srcReply:i=>e.sendMsg(o,i),content:{messageId:s,operatorId:n,tips:""}});return}if(t.notice_type==="friend_add"){let n=t.user_id+"",s=ye(n);ca({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:s,sender:ue(n),srcReply:o=>e.sendMsg(s,o),content:{targetId:n}});return}if(t.notice_type==="notify"&&t.sub_type==="poke"&&t.group_id){let n=t.user_id+"",s=t.group_id+"",o=k(s);la({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:n,targetId:t.target_id+"",action:"",actionImage:"",suffix:""}});return}if(t.notice_type==="notify"&&t.sub_type==="poke"){let n=t.user_id+"",s=ye(n);pa({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:s,sender:ue(n),srcReply:o=>e.sendMsg(s,o),content:{operatorId:n,targetId:t.target_id+"",action:"",actionImage:"",suffix:""}});return}if(t.notice_type==="notify"&&t.sub_type==="lucky_king"){let n=t.user_id+"",s=t.group_id+"",o=k(s);xa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{userId:n,targetId:t.target_id+""}});return}if(t.notice_type==="notify"&&t.sub_type==="honor"){let n=t.user_id+"",s=t.group_id+"",o=k(s);Ea({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{honorType:t.honor_type}});return}if(t.notice_type==="group_recall"){let n=t.user_id+"",s=t.group_id+"",o=t.message_id+"",i=t.operator_id+"",a=k(s);da({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:a,sender:E(n),srcReply:u=>e.sendMsg(a,u),content:{messageId:o,operatorId:i,targetId:n,tip:""}});return}if(t.notice_type==="group_increase"){let n=t.user_id+"",s=t.group_id+"",o=k(s);ba({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,type:t.sub_type}});return}if(t.notice_type==="group_decrease"){let n=t.user_id+"",s=t.group_id+"",o=k(s);ya({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,type:t.sub_type==="kick_me"?"kickBot":t.sub_type}});return}if(t.notice_type==="group_upload"){let n=t.user_id+"",s=t.group_id+"",o=k(s);ma({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{fid:t.file.id,name:t.file.name,size:t.file.size,subId:t.file.busid}});return}if(t.notice_type==="group_admin"){let n=t.user_id+"",s=t.group_id+"",o=k(s);wa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{targetId:n,isAdmin:t.sub_type==="set"}});return}if(t.notice_type==="group_ban"){let n=t.user_id+"",s=t.group_id+"",o=k(s);_a({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,duration:t.duration,isBan:t.sub_type==="ban"}});return}if(t.notice_type==="group_msg_emoji_like"){let n=t.user_id+"",s=t.group_id+"",o=k(s);Ys({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{count:t.likes[0].count,faceId:t.likes[0].emoji_id,isSet:true,messageId:t.message_id+""}});return}if(t.notice_type==="reaction"){let n=t.operator_id+"",s=t.group_id+"",o=k(s);Ys({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{count:t.count,faceId:Number(t.code),isSet:t.sub_type==="add",messageId:t.message_id+""}});return}if(t.notice_type==="essence"){let n=t.sender_id+"",s=t.group_id+"",o=k(s);ha({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{isSet:t.sub_type==="add",messageId:t.message_id+"",operatorId:t.operator_id+"",senderId:n}});return}if(t.notice_type==="group_card"){let n=t.user_id+"",s=t.group_id+"",o=k(s);fa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{newCard:t.card_new,operatorId:"",targetId:n}});return}logger.warn(`[AdapterOneBot] \u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${JSON.stringify(t)}`);};zt();var bt=class extends Te{constructor(){super(),this.adapter.platform="qq",this.adapter.standard="onebot11";}eventHandlers(e,r){if(debug("onebot",r),e.post_type==="message"||e.post_type==="message_sent"){debug("onebot:message",r),Wa(e,this);return}if(e.post_type==="notice"){debug("onebot:notice",r),Ya(e,this);return}if(e.post_type==="request"){debug("onebot:request",r);return}if(e.post_type==="meta_event"){if(debug("onebot:meta",r),e.meta_event_type==="lifecycle"){e.sub_type==="enable"&&logger.bot("debug",this.selfId,"OneBot\u542F\u7528"),e.sub_type==="disable"&&logger.bot("debug",this.selfId,"OneBot\u505C\u7528"),e.sub_type==="connect"&&logger.bot("debug",this.selfId,"WebSocket\u8FDE\u63A5\u6210\u529F");return}logger.bot("warn",this.selfId,`\u6536\u5230\u672A\u77E5\u5143\u4E8B\u4EF6: ${r}`);return}if(e.retcode){debug("onebot:retcode",r);let{retcode:n}=e;if(n===1401||n===1403){logger.error(`[oneBot11][\u9274\u6743\u5931\u8D25] address: ${this.adapter.address} event: ${r}`);return}logger.bot("error",this.selfId,`\u53D1\u751F\u672A\u77E5\u9519\u8BEF: ${r}`);}debug("onebot:unknown",r),logger.bot("warn",this.selfId,`\u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${r}`);}AdapterConvertKarin(e){return ht(e)}KarinConvertAdapter(e){return oo(e,this)}async getAvatarUrl(e=this.account.selfId,r=0){return Number(e)?`https://q1.qlogo.cn/g?b=qq&s=${r}&nk=${e}`:`https://q.qlogo.cn/qqapp/${e}/${e}/${r}`}async getGroupAvatarUrl(e,r=0,n=0){return `https://p.qlogo.cn/gh/${e}/${e}${n?"_"+n:""}/`+r}async sendMsg(e,r,n){try{let{scene:s,peer:o}=e,i;s==="group"?i=await this.sendApi("send_msg",{message_type:"group",group_id:Number(o),message:this.KarinConvertAdapter(r)}):s==="groupTemp"?i=await this.sendApi("send_private_msg",{user_id:Number(e.subPeer),group_id:Number(o),message:this.KarinConvertAdapter(r)}):i=await this.sendApi("send_msg",{message_type:"private",user_id:Number(o),message:this.KarinConvertAdapter(r)});let a=String(i.message_id),u=Date.now();return {messageId:a,messageTime:u,rawData:i,message_id:a,time:u}}catch(s){if(n&&n>0)return this.sendMsg(e,r,n-1);throw s}}async SendMessage(e,r,n){return this.sendMsg(e,r,n)}async sendLongMsg(e,r){let n,{scene:s,peer:o}=e;s==="group"?n=await this.sendApi("send_group_msg",{group_id:Number(o),message:[{type:"forward",data:{id:r}}]}):n=await this.sendApi("send_private_msg",{user_id:Number(o),message:[{type:"forward",data:{id:r}}]});let i=String(n.message_id),a=Date.now();return {messageId:i,messageTime:a,rawData:n,message_id:i,message_time:a,time:a}}async SendMessageByResId(e,r){return this.sendLongMsg(e,r)}async recallMsg(e,r){try{return await this.sendApi("delete_msg",{message_id:Number(r)}),!0}catch{return false}}async RecallMessage(e,r){return this.recallMsg(e,r)}async getMsg(e,r){let n=await this.sendApi("get_msg",{message_id:Number(r)}),s=n.sender.user_id+"",o=n.message_seq||n.message_id,i=n.message_id+"";return {time:n.time,messageId:i,message_id:i,message_seq:o,messageSeq:o,contact:{scene:n.message_type==="group"?"group":"friend",peer:e.peer,sub_peer:null,name:""},sender:{userId:s,uid:s,uin:n.sender.user_id,nick:n.sender.nickname,role:"unknown",name:n.sender.nickname},elements:this.AdapterConvertKarin(n.message)}}async GetMessage(e,r){return this.getMsg(e,r)}async getHistoryMsg(e,r,n){var a,u,p,g;let s;this.adapter.name==="Lagrange.OneBot"?s={message_id:Number(r),count:n}:s={message_seq:(await this.getMsg(e,r)).message_seq,count:n};let o;e.scene==="group"?(s.group_id=Number(e.peer),o=await this.sendApi("get_group_msg_history",s)):(s.user_id=Number(e.peer),o=await this.sendApi("get_friend_msg_history",s));let i=[];for(let d of o.messages){let w=d.sender.user_id+""||"",b=String(d.message_id)||"",G=d.message_seq||0,D={time:Date.now(),messageId:b,messageSeq:G,message_id:b,message_seq:G,contact:e,sender:{userId:w,uid:w,uin:d.sender.user_id,nick:((a=d==null?undefined:d.sender)==null?undefined:a.nickname)||"",name:((u=d==null?undefined:d.sender)==null?undefined:u.nickname)||"",role:((p=d==null?undefined:d.sender)==null?undefined:p.role)||"unknown",card:e.scene==="group"&&((g=d==null?undefined:d.sender)==null?undefined:g.card)||""},elements:this.AdapterConvertKarin(d.message)};i.push(D);}return i}async GetHistoryMessage(e,r,n=1){return this.getHistoryMsg(e,r,n)}async sendLike(e,r){try{return await this.sendApi("send_like",{user_id:Number(e),times:r}),!0}catch{return false}}async VoteUser(e,r=10){return this.sendLike(e,r)}async groupKickMember(e,r,n,s){try{return await this.sendApi("set_group_kick",{group_id:Number(e),user_id:Number(r),reject_add_request:n}),!0}catch{return false}}async KickMember(e,r,n=false,s=""){return this.groupKickMember(e,r,n,s)}async setGroupMute(e,r,n){try{return await this.sendApi("set_group_ban",{group_id:Number(e),user_id:Number(r),duration:n}),!0}catch{return false}}async BanMember(e,r,n){return this.setGroupMute(e,r,n)}async setGroupAllMute(e,r){try{return await this.sendApi("set_group_whole_ban",{group_id:Number(e),enable:r}),!0}catch{return false}}async SetGroupWholeBan(e,r=true){return this.setGroupAllMute(e,r)}async setGroupAdmin(e,r,n){try{return await this.sendApi("set_group_admin",{group_id:Number(e),user_id:Number(r),enable:n}),!0}catch{return false}}async SetGroupAdmin(e,r,n){return this.setGroupAdmin(e,r,n)}async setGroupMemberCard(e,r,n){try{return await this.sendApi("set_group_card",{group_id:Number(e),user_id:Number(r),card:n}),!0}catch{return false}}async ModifyMemberCard(e,r,n){return this.setGroupMemberCard(e,r,n)}async setGroupName(e,r){try{return await this.sendApi("set_group_name",{group_id:Number(e),group_name:r}),!0}catch{return false}}async ModifyGroupName(e,r){return this.setGroupName(e,r)}async setGroupQuit(e,r){try{return await this.sendApi("set_group_leave",{group_id:Number(e),is_dismiss:r}),!0}catch{return false}}async LeaveGroup(e,r=false){return this.setGroupQuit(e,r)}async setGroupMemberTitle(e,r,n){try{return await this.sendApi("set_group_special_title",{group_id:Number(e),user_id:Number(r),special_title:n}),!0}catch{return false}}async SetGroupUniqueTitle(e,r,n){return this.setGroupMemberTitle(e,r,n)}async GetCurrentAccount(){let e=await this.sendApi("get_login_info",{});return {account_uid:e.user_id+"",account_uin:e.user_id+"",account_name:e.nickname}}async getStrangerInfo(e){let r=await this.sendApi("get_stranger_info",{user_id:Number(e[0]),no_cache:true});return {...r,userId:e,user_id:e,uid:r.uid||"",uin:e,qid:r.qid||"",nick:r.nickname,remark:"",level:0,birthday:"",login_day:r.login_days||0,vote_cnt:0,is_school_verified:undefined,age:r.age,sex:r.sex||"unknown",big_vip:undefined,hollywood_vip:undefined,qq_vip:r.is_vip,super_vip:undefined,voted:undefined}}async getFriendList(e){return (await this.sendApi("get_friend_list",{})).map(n=>{let s=n.user_id+"";return {...n,userId:s,user_id:s,uid:n.uid||"",uin:s,qid:n.qid||"",nick:n.nickname,remark:"",level:0,birthday:"",login_day:n.login_days||0,vote_cnt:0,is_school_verified:undefined,age:n.age,sex:n.sex||"unknown",big_vip:undefined,hollywood_vip:undefined,qq_vip:n.is_vip,super_vip:undefined,voted:undefined}})}async GetStrangerProfileCard(e){return this.getStrangerInfo(e[0])}async GetFriendList(){return this.getFriendList()}async getGroupInfo(e,r){let n=await this.sendApi("get_group_info",{group_id:Number(e),no_cache:r}),s=n.group_name;return {groupId:e,groupName:s,groupRemark:s,maxMemberCount:n.max_member_count,memberCount:n.member_count,groupDesc:"",group_name:s,group_remark:s,max_member_count:n.max_member_count,member_count:n.member_count,group_uin:e,admins:[],owner:""}}async GetGroupInfo(e,r=false){return this.getGroupInfo(e,r)}async getGroupList(e){return (await this.sendApi("get_group_list",{no_cache:e})).map(n=>{let s=n.group_id+"",o=n.group_name;return {groupId:s,groupName:o,groupRemark:o,maxMemberCount:n.max_member_count,memberCount:n.member_count,groupDesc:"",group_name:o,group_remark:o,max_member_count:n.max_member_count,member_count:n.member_count,group_uin:s,admins:[],owner:""}})}async GetGroupList(){return this.getGroupList()}async getGroupMemberInfo(e,r,n){let s=Number(r),o=await this.sendApi("get_group_member_info",{group_id:Number(e),user_id:s,no_cache:n});return {...o,userId:r,uid:r,uin:r,nick:o.nickname,role:o.role,age:o.age,uniqueTitle:o.title,card:o.card,joinTime:o.join_time,lastActiveTime:o.last_sent_time,level:Number(o.level)||0,shutUpTime:0,distance:undefined,honors:[],unfriendly:o.unfriendly,sex:o.sex,get sender(){return E(this.userId,this.role,this.nick,this.sex,this.age,this.card,this.area,this.level,this.title)}}}async GetGroupMemberInfo(e,r,n=false){return this.getGroupMemberInfo(e,r,n)}async getGroupMemberList(e,r){return (await this.sendApi("get_group_member_list",{group_id:Number(e),no_cache:r})).map(s=>{let o=s.user_id+"";return {...s,userId:o,uid:o,uin:o,nick:s.nickname,role:s.role,age:s.age,uniqueTitle:s.title,card:s.card,joinTime:s.join_time,lastActiveTime:s.last_sent_time,level:Number(s.level)||0,shutUpTime:0,distance:undefined,honors:[],unfriendly:s.unfriendly,sex:s.sex,get sender(){return E(o,s.role,s.nickname,s.sex,s.age,s.card,s.area,Number(s.level),s.title)}}})}async GetGroupMemberList(e,r=false){return this.getGroupMemberList(e,r)}async getGroupHonor(e){let r=await this.sendApi("get_group_honor_info",{group_id:Number(e),type:"all"}),n=[];return r.talkative_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5386\u53F2\u9F99\u738B",id:0,avatar:s.avatar,description:s.description});}),r.performer_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u7FA4\u804A\u4E4B\u706B",avatar:s.avatar,id:0,description:s.description});}),r.legend_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u7FA4\u804A\u70BD\u7130",avatar:s.avatar,id:0,description:s.description});}),r.strong_newbie_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5192\u5C16\u5C0F\u6625\u7B0B",avatar:s.avatar,id:0,description:s.description});}),r.emotion_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5FEB\u4E50\u4E4B\u6E90",avatar:s.avatar,id:0,description:s.description});}),n}async GetGroupHonor(e,r=false){return this.getGroupHonor(e)}async setMsgReaction(e,r,n,s){try{return await this.sendApi("set_msg_emoji_like",{message_id:r,emoji_id:n,is_set:s}),!0}catch{return false}}async ReactMessageWithEmoji(e,r,n,s=true){return this.setMsgReaction(e,r,n,s)}async GetVersion(){let e=await this.sendApi("get_version_info",{});return {name:e.app_name,app_name:e.app_name,version:e.app_version,protocol:e.protocol_version}}async DownloadForwardMessage(e){throw new Error("Method not implemented.")}async getGroupHighlights(e,r,n){let s=[],o=await this.sendApi("get_essence_msg_list",{group_id:Number(e)});for(let i of o){let{message_seq:a,elements:u}=await this.getMsg({scene:"group",peer:e,name:""},i.message_id+""),p=i.sender_id+"",g=i.operator_id+"";s.push({groupId:e,senderId:p,operatorId:g,senderName:i.sender_nick,operatorName:i.operator_nick,operationTime:i.operator_time,messageTime:i.sender_time,messageSeq:a,messageId:i.message_id+"",jsonElements:JSON.stringify(u),group_id:e,sender_uid:p,sender_uin:p,sender_nick:i.sender_nick,operator_uid:g,operator_uin:g,operator_nick:i.operator_nick,operation_time:i.operator_time,message_time:i.sender_time,message_id:i.message_id+"",message_seq:a,json_elements:JSON.stringify(u)});}return s}async GetEssenceMessageList(e,r,n){return this.getGroupHighlights(e,r,n)}async uploadFile(e,r,n,s){try{return e.scene==="group"?await this.sendApi("upload_group_file",{group_id:Number(e.peer),file:r,name:n,folder:s}):await this.sendApi("upload_private_file",{user_id:Number(e.peer),file:r,name:n}),!0}catch{return false}}async UploadGroupFile(e,r,n,s){return this.uploadFile({scene:"group",peer:e,name:""},r,n,s)}async UploadPrivateFile(e,r,n){return this.uploadFile({scene:"friend",peer:e,name:""},r,n)}async setGgroupHighlights(e,r,n){try{return await this.sendApi(n?"set_essence_msg":"delete_essence_msg",{message_id:Number(r)}),!0}catch{return false}}async SetEssenceMessage(e,r){return this.setGgroupHighlights(e,r,true)}async DeleteEssenceMessage(e,r){return this.setGgroupHighlights(e,r,false)}async PokeMember(e,r){throw new Error("Method not implemented.")}async setFriendApplyResult(e,r,n){try{return await this.sendApi("set_friend_add_request",{flag:e,approve:r,remark:n}),!0}catch{return false}}async SetFriendApplyResult(e,r,n){return this.setFriendApplyResult(e,r,n)}async setGroupApplyResult(e,r,n){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"add",reason:n}),!0}catch{return false}}async SetGroupApplyResult(e,r,n){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"add",reason:n}),!0}catch{return false}}async setInvitedJoinGroupResult(e,r){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"invite"}),!0}catch{return false}}async SetInvitedJoinGroupResult(e,r,n){return this.setInvitedJoinGroupResult(e,r)}forwardKarinConvertAdapter(e){let r=[];for(let n of e)if(n.subType==="messageID")r.push({type:"node",data:{id:n.messageId}});else {let s={type:"node",data:{user_id:n.userId,nickname:n.nickname,content:this.KarinConvertAdapter(n.message)}};typeof n.options=="object"&&(n.options.prompt&&(s.data.prompt=n.options.prompt),n.options.summary&&(s.data.summary=n.options.summary),n.options.source&&(s.data.source=n.options.source)),r.push(s);}return r}async sendForwardMsg(e,r,n){if(e.scene==="group"){let s=await this.sendApi("send_group_forward_msg",{group_id:Number(e.peer),messages:this.forwardKarinConvertAdapter(r),...n}),o=String(s.message_id);return {messageId:o,forwardId:s.forward_id,message_id:o}}if(e.scene==="friend"){let s=await this.sendApi("send_private_forward_msg",{user_id:Number(e.peer),messages:this.forwardKarinConvertAdapter(r),...n}),o=String(s.message_id);return {messageId:o,forwardId:s.forward_id,message_id:o}}throw TypeError(`\u4E0D\u652F\u6301\u7684\u573A\u666F\u7C7B\u578B: ${e.scene}`)}async sendForwardMessage(e,r){return this.sendForwardMsg(e,r)}async sendApi(e,r,n=120){throw new Error("tips: \u8BF7\u5728\u5B50\u7C7B\u4E2D\u5B9E\u73B0\u6B64\u65B9\u6CD5")}async SendApi(e,r,n=0){return this.sendApi(e,r,n)}};he();var yt=class extends bt{seq;socket;constructor(e){super(),this.seq=0,this.socket=e;}async init(e,r,n){this.account.uid=e,this.account.uin=e,this.account.selfId=e,this.adapter.address=r;try{this.adapter.communication=n,this.onEvent(),await Promise.all([this.setBotInfo(),this.setAdapterInfo()]),logger.bot("info",this.selfId,`[onebot11][${n}] \u8FDE\u63A5\u6210\u529F: ${r}`),this.adapter.index=rt(n,this);}catch{throw this.socket.close(),new Error(`[onebot11][${n}] \u8FDE\u63A5\u5931\u8D25: ${r}`)}}onEvent(){this.socket.on("message",e=>{let r=e.toString(),n=JSON.parse(r),s=n;if(n.echo)return logger.bot("debug",this.selfId,`Api\u8C03\u7528\u56DE\u5E94: ${r}`),this.socket.emit(n.echo,n);if(s.post_type==="meta_event"&&s.meta_event_type==="heartbeat"){logger.bot("trace",this.selfId,"\u5FC3\u8DF3");return}logger.bot("debug",this.selfId,`\u6536\u5230\u4E0A\u62A5\u4E8B\u4EF6: ${r}`),this.eventHandlers(s,r);});}async setAdapterInfo(){let e=await this.sendApi("get_version_info",{});this.adapter.name=e.app_name,this.adapter.version=e.app_version;}async setBotInfo(){let e=await this.sendApi("get_login_info",{});this.account.name=e.nickname,this.account.selfId=e.user_id+"",this.account.avatar=`https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}`;}async sendApi(e,r,n=120){n||(n=Q.timeout());let s=++this.seq+"",o=JSON.stringify({echo:s,action:e,params:r});return logger.bot("debug",this.selfId,`\u53D1\u9001Api\u8BF7\u6C42 ${e}: ${o}`),new Promise((i,a)=>{let u=setTimeout(()=>{a(Re(this.selfId,e,o,"\u8BF7\u6C42\u8D85\u65F6"));},n*1e3);this.socket.send(o),this.socket.once(s,p=>{clearTimeout(u),p.status==="ok"?i(p.data):a(Re(this.selfId,e,o,p));});})}};Ge();he();var bn=class extends bt{#e;constructor(e,r,n){super(),this.account.selfId=e,this.adapter.address=r,this.adapter.communication="http",this.#e=n;}async init(){if(!await this.firstRequest())throw no(this.selfId),new Error(`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u5931\u8D25: ${this.adapter.address}`);await this.setBotInfo(),logger.bot("info",this.selfId,`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u6210\u529F: ${this.adapter.address}`),this.adapter.index=rt(this.adapter.communication,this);let r=setInterval(async()=>{await this.firstRequest()||(logger.bot("info",this.selfId,`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u5173\u95ED: ${this.adapter.address}`),tt("index",this.adapter.index),no(this.selfId),clearInterval(r));},60*1e3);m.on(`onebot:${this.selfId}`,n=>{let s=JSON.stringify(n);this.eventHandlers(n,s);});}async firstRequest(){try{return await this.setAdapterInfo(),!0}catch{return false}}async setAdapterInfo(){let e=await this.sendApi("get_version_info",{});this.adapter.name=e.app_name,this.adapter.version=e.app_version;}async setBotInfo(){let e=await this.sendApi("get_login_info",{});this.account.name=e.nickname,this.account.selfId=e.user_id+"",this.account.avatar=`https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}`;}async sendApi(e,r,n=120){n||(n=Q.timeout());let s=JSON.stringify(r);logger.bot("debug",this.selfId,`\u53D1\u9001Api\u8BF7\u6C42 ${e}: ${s}`);try{let o=this.#e?{Authorization:`Bearer ${this.#e}`}:{},{data:i}=await vo.post(`${this.adapter.address}/${e}`,r,{headers:o,timeout:n*1e3});if(i.status==="ok")return i.data;throw Re(this.selfId,e,s,i)}catch(o){throw vo.isAxiosError(o)&&o.code==="ECONNABORTED"?Re(this.selfId,e,s,"\u8BF7\u6C42\u8D85\u65F6"):(Re(this.selfId,e,s),o)}}};he();var tr=class t extends yt{token;constructor(e,r){super(e),this.token=r,this.socket.on("close",()=>{try{this.socket.removeAllListeners(),tt("index",this.adapter.index),logger.bot("info",this.selfId,`\u8FDE\u63A5\u5173\u95ED\uFF0C\u5C06\u57285\u79D2\u540E\u91CD\u8FDE: ${this.adapter.address}`);}finally{setTimeout(()=>{t.init(this.adapter.address,this.token);},5e3);}});}static async init(e,r){let n=r?`Bearer ${r}`:undefined,s=n?new za(e,{headers:{authorization:n}}):new za(e);s.on("open",async()=>{await new t(s,r).init("\u83B7\u53D6\u4E2D...",e,"webSocketClient");}),s.on("error",o=>{logger.error(`[onebot][webSocketClient]\u8FDE\u63A5\u5931\u8D25: ${e}`),logger.error(o);});}};he();var yn=class extends yt{socket;request;constructor(e,r){super(e),this.socket=e,this.request=r;}async init(){let e=`ws://${this.request.headers.host}${this.request.url}`,r=String(this.request.headers["x-self-id"]);this.auth(r)&&(super.init(r,e,"webSocketServer"),this.socket.on("close",()=>{this.socket.removeAllListeners(),tt("index",this.adapter.index),logger.bot("info",this.selfId,"\u8FDE\u63A5\u5173\u95ED");}));}auth(e){let r=Q.server();if(!r.reverseWsToken)return logger.bot("debug",e,"\u672A\u8BBE\u7F6E\u53CD\u5411ws\u9274\u6743\u79D8\u94A5\uFF0C\u8DF3\u8FC7\u9274\u6743"),true;let n=this.request.headers.authorization;return n!==`Bearer ${r.reverseWsToken}`?(logger.bot("error",e,`[oneBot11][\u9274\u6743\u5931\u8D25] address: ${this.adapter.address} token: ${n}`),this.socket.close(),false):(logger.bot("debug",e,`\u9274\u6743\u6210\u529F: ${n}`),true)}};var jp=async()=>{m.on("ws:connection:onebot",(t,e)=>{new yn(t,e).init();}),m.once("online",()=>{logger.info(`[server] onebot: ${logger.green(`ws://127.0.0.1:${process.env.karin_port}`)}`),logger.info(`[server] onebot: ${logger.green(`ws://127.0.0.1:${process.env.karin_port}/onebot/v11/ws`)}`);});},qp=async()=>{let t=X();if(t.forwardWs)for(let e of t.forwardWs)typeof e=="string"?tr.init(e):tr.init(e.url,e.token);},Lp=async()=>{let t=X();if(!(!t.onebotHttp||!Array.isArray(t.onebotHttp)))for(let{selfId:e,api:r,token:n}of t.onebotHttp)try{if(e==="default")continue;if(e=String(e),n=String(n),!e||!r||!r.startsWith("http")){logger.bot("error",e,"\u8BF7\u914D\u7F6E\u6B63\u786E\u7684 onebot http \u4FE1\u606F");continue}Ha(e,n),await new bn(e,r,n).init();}catch(s){logger.error(s);}};qp();jp();Lp();
38
+ export{hn as Action,Ey as Bot,so as OB11Event,Bp as OB11MessageSubType,Fp as OB11MessageType,Ka as OB11NoticeType,Np as OB11RequestType,Cp as OB11Sex,St as Watch,At as Watcher,ne as YamlEditor,or as absPath,F as app,Tt as applyComments,ur as base64,Le as buffer,Gy as buttonHandle,Do as changelog,Sp as checkGitPluginUpdate,Ip as checkPkgUpdate,Po as clearRequire,pe as clearRequireFile,Cn as comment,ai as common,Q as config,Eo as copyConfig,xo as copyConfigSync,In as copyFiles,$n as copyFilesSync,vi as createLogger,ir as createPluginDir,ie as createRawMessage,Na as default,sr as downFile,ku as errorToString,_ as exec,nr as existToMkdir,Be as existToMkdirSync,_n as exists,lo as existsSync,es as ffmpeg,Su as ffplay,ts as ffprobe,I as file,Op as fileToUrl,ro as fileToUrlHandlerKey,He as filesByExt,ns as formatTime,Da as fs,qi as getAllBot,pf as getAllBotID,Li as getAllBotList,Cs as getBot,Hi as getBotCount,Zt as getCommit,ar as getFiles,to as getHash,Vn as getPid,er as getPkgVersion,It as getPluginInfo,lr as getRelPath,fn as getRemotePkgVersion,Ai as getRequestIp,ja as getTime,Fs as handler,$p as importModule,Gs as isClass,rr as isDir,mo as isDirSync,Pu as isDocker,go as isFile,fo as isFileSync,Is as isIPv4Loop,Si as isIPv6Loop,$u as isLinux,Ps as isLocalRequest,Ti as isLoopback,Iu as isMac,hr as isPlugin,Tu as isRoot,Oo as isStatic,mr as isSubPath,$r as isWin,Mo as json,Na as karin,os as karinToQQBot,vr as key,Tc as level,Kc as listen,Rt as lock,Nn as lockMethod,Ot as lockProp,Dn as log,Vd as logger,jn as logs,si as makeForward,Me as makeMessage,xn as mkdir,xt as mkdirSync,Ct as parseChangelog,fr as pkgRoot,ni as qqbotToKarin,qn as range,Ue as read,Go as readFile,Pn as readJson,Gt as readJsonSync,fi as redis,rt as registerBot,L as requireFile,N as requireFileSync,Yc as restart,Ss as restartDirect,ho as rmSync,yr as save,x as segment,Nr as sendMsg,ce as sep,Cr as server,gr as splitPath,Ee as stream,Wn as stringifyError,La as system,tt as unregisterBot,Ap as updateAllGitPlugin,Tp as updateAllPkg,qa as updateGitPlugin,Pp as updatePkg,Au as uptime,dr as urlToPath,Fn as watch,Bo as watchAndMerge,br as write,Tn as writeJson,Mt as writeJsonSync,Os as wss,Co as yaml};