koishi-plugin-adapter-wecom
Version:
Koishi 企业微信适配器。
4 lines (3 loc) • 21.2 kB
JavaScript
var T=Object.defineProperty;var v=(P,k)=>T(P,"name",{value:k,configurable:!0});(()=>{"use strict";var P={346:function(p,a,l){var y=this&&this.__decorate||function(i,e,n,s){var t=arguments.length,r=t<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,n):s,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(i,e,n,s);else for(var m=i.length-1;m>=0;m--)(o=i[m])&&(r=(t<3?o(r):t>3?o(e,n,r):o(e,n))||r);return t>3&&r&&Object.defineProperty(e,n,r),r},c=this&&this.__metadata||function(i,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(i,e)},h=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(a,"__esModule",{value:!0}),a.WeComAdapter=void 0;const d=l(126),g=l(856),u=l(861),_=l(119),b=h(l(665)),M=l(593);let f=a.WeComAdapter=v(class extends d.Adapter.Server{constructor(){super(...arguments),this.xmlParser=new u.XMLParser}checkSignature(e,n,s){const{msg_signature:t,timestamp:r,nonce:o}=n;return(0,_.getSignature)(e,r,o,s)===t}async start(e){return e.ctx.router.get(e.config.path,this.koaGetHandler.bind(this)),e.ctx.router.post(e.config.path,this.koaPostHandler.bind(this)),e.initialize()}async stop(e){}async koaGetHandler(e){const n=e.request.query,{echostr:s}=n,t=this.bots.find(m=>this.checkSignature(m.config.token,n,s));if(!t){this.logger.warn("Bot not found."),e.status=404,e.body="Bot not found.";return}const r=(0,_.decrypt)(t.config.encodingAESKey,s),o=r?.message;if(!o){this.logger.warn("Invalid message: %s",r),e.status=400,e.body="invalid message";return}this.logger.success(`Registered bot ${t.selfId}: ${o}`),e.body=o}async koaPostHandler(e){const n=e.request.query,s=(await(0,b.default)(e.req)).toString("utf8").trim(),{xml:t}=await this.xmlParser.parse(s);if(!t?.Encrypt){this.logger.warn("Invalid xml: %s",s),e.status=400,e.body="invalid message";return}const r=this.bots.find(o=>o.config.agentId===t.AgentID?.toString()&&o.config.corpId===t.ToUserName);if(!r){e.status=404,e.body="Bot not found.";return}if(!this.checkSignature(r.config.token,n,t.Encrypt)){this.logger.warn(`Invalid signature for bot ${r.selfId}`),e.status=403,e.body="invalid signature";return}if(t.data=(0,_.decrypt)(r.config.encodingAESKey,t.Encrypt),!t.data){this.logger.warn("Invalid decrypted message: %s",t.Encrypt),e.status=400,e.body="invalid message";return}t.body=this.xmlParser.parse(t.data.message).xml,t.body||this.logger.warn("Invalid decrypted xml message: %s",t.data.message),(0,M.dispatchSession)(r,t),e.body="success",e.status=200}},"WeComAdapter");y([(0,g.InjectLogger)(),c("design:type",d.Logger)],f.prototype,"logger",void 0),a.WeComAdapter=f=y([(0,g.DefinePlugin)()],f)},520:(p,a)=>{Object.defineProperty(a,"__esModule",{value:!0})},91:(p,a)=>{Object.defineProperty(a,"__esModule",{value:!0})},616:function(p,a,l){var y=this&&this.__createBinding||(Object.create?function(h,d,g,u){u===void 0&&(u=g);var _=Object.getOwnPropertyDescriptor(d,g);(!_||("get"in _?!d.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return d[g]}}),Object.defineProperty(h,u,_)}:function(h,d,g,u){u===void 0&&(u=g),h[u]=d[g]}),c=this&&this.__exportStar||function(h,d){for(var g in h)g!=="default"&&!Object.prototype.hasOwnProperty.call(d,g)&&y(d,h,g)};Object.defineProperty(a,"__esModule",{value:!0}),c(l(520),a),c(l(591),a),c(l(516),a),c(l(187),a),c(l(46),a),c(l(91),a),c(l(751),a)},751:(p,a,l)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.adaptMenu=a.WecomMenuDef=void 0;const y=l(113),c=l(126);a.WecomMenuDef=c.Schema.object({type:c.Schema.union(["parent","click","view","scancode_push","scancode_waitmsg","pic_sysphoto","pic_photo_or_album","pic_weixin","location_select","view_miniprogram"]).required().description("\u83DC\u5355\u7684\u54CD\u5E94\u52A8\u4F5C\u7C7B\u578B\u3002"),name:c.Schema.string().description("\u83DC\u5355\u6807\u9898\u3002").required(),command:c.Schema.string().description("\u83DC\u5355\u7684\u54CD\u5E94\u52A8\u4F5C\u6307\u4EE4\u3002"),children:c.Schema.array(c.Schema.object({type:c.Schema.union(["click","view","scancode_push","scancode_waitmsg","pic_sysphoto","pic_photo_or_album","pic_weixin","location_select","view_miniprogram"]).required().description("\u83DC\u5355\u7684\u54CD\u5E94\u52A8\u4F5C\u7C7B\u578B\u3002"),name:c.Schema.string().description("\u83DC\u5355\u6807\u9898\u3002").required(),command:c.Schema.string().description("\u83DC\u5355\u7684\u54CD\u5E94\u52A8\u4F5C\u6307\u4EE4\u3002"),url:c.Schema.string().description("\u7F51\u9875\u94FE\u63A5\uFF0C\u6210\u5458\u70B9\u51FB\u83DC\u5355\u53EF\u6253\u5F00\u94FE\u63A5\uFF0C\u4E0D\u8D85\u8FC71024\u5B57\u8282\u3002"),pagePath:c.Schema.string().description("\u5C0F\u7A0B\u5E8F\u7684\u9875\u9762\u8DEF\u5F84\u3002"),appId:c.Schema.string().description("\u5C0F\u7A0B\u5E8F\u7684appid\u3002")})).description("\u5B50\u83DC\u5355\u3002"),url:c.Schema.string().description("\u7F51\u9875\u94FE\u63A5\uFF0C\u6210\u5458\u70B9\u51FB\u83DC\u5355\u53EF\u6253\u5F00\u94FE\u63A5\uFF0C\u4E0D\u8D85\u8FC71024\u5B57\u8282\u3002"),pagePath:c.Schema.string().description("\u5C0F\u7A0B\u5E8F\u7684\u9875\u9762\u8DEF\u5F84\u3002"),appId:c.Schema.string().description("\u5C0F\u7A0B\u5E8F\u7684appid\u3002")});const h=v((d,g)=>{if(!d.type&&!d.children)throw new Error("Menu type or children must be set");if(d.type!=="parent"){const u=(0,y.createHash)("sha512").update(`${d.type}${d.name}${d.command||""}`).digest("hex");return d.command&&g?.set(u,d.command),{type:d.type,name:d.name,key:u,url:d.url,pagepath:d.pagePath,appid:d.mediaId}}else return{name:d.name,sub_button:d.children.map(u=>(0,a.adaptMenu)(u,g))}},"adaptMenu");a.adaptMenu=h},187:(p,a)=>{Object.defineProperty(a,"__esModule",{value:!0})},46:function(p,a,l){var y=this&&this.__createBinding||(Object.create?function(h,d,g,u){u===void 0&&(u=g);var _=Object.getOwnPropertyDescriptor(d,g);(!_||("get"in _?!d.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return d[g]}}),Object.defineProperty(h,u,_)}:function(h,d,g,u){u===void 0&&(u=g),h[u]=d[g]}),c=this&&this.__exportStar||function(h,d){for(var g in h)g!=="default"&&!Object.prototype.hasOwnProperty.call(d,g)&&y(d,h,g)};Object.defineProperty(a,"__esModule",{value:!0}),c(l(180),a)},180:(p,a)=>{Object.defineProperty(a,"__esModule",{value:!0})},516:(p,a)=>{Object.defineProperty(a,"__esModule",{value:!0})},591:(p,a)=>{Object.defineProperty(a,"__esModule",{value:!0})},607:function(p,a,l){var y=this&&this.__decorate||function(n,s,t,r){var o=arguments.length,m=o<3?s:r===null?r=Object.getOwnPropertyDescriptor(s,t):r,w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")m=Reflect.decorate(n,s,t,r);else for(var I=n.length-1;I>=0;I--)(w=n[I])&&(m=(o<3?w(m):o>3?w(s,t,m):w(s,t))||m);return o>3&&m&&Object.defineProperty(s,t,m),m},c=this&&this.__metadata||function(n,s){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,s)},h=this&&this.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(a,"__esModule",{value:!0}),a.WeComBotConfig=void 0;const d=l(126),g=l(616),u=l(856),_=h(l(867)),b=l(593),M=l(346),f=l(542);let i=a.WeComBotConfig=v(class{constructor(){this.platform="wecom"}get selfId(){return`${this.corpId}:${this.agentId}`}},"WeComBotConfig");y([(0,u.SchemaProperty)({description:"\u4F01\u4E1A ID\u3002",required:!0}),c("design:type",String)],i.prototype,"corpId",void 0),y([(0,u.SchemaProperty)({description:"\u4F01\u4E1A\u5E94\u7528 ID\u3002",required:!0}),c("design:type",String)],i.prototype,"agentId",void 0),y([(0,u.SchemaProperty)({description:"\u4F01\u4E1A\u5E94\u7528\u5BC6\u94A5\u3002",role:"secret",required:!0}),c("design:type",String)],i.prototype,"secret",void 0),y([(0,u.SchemaProperty)({description:"\u56DE\u8C03\u8DEF\u5F84\u3002",default:"/wecom"}),c("design:type",String)],i.prototype,"path",void 0),y([(0,u.SchemaProperty)({description:"\u5E94\u7528\u6D88\u606F\u4E0A\u62A5 token\u3002",role:"secret",required:!0}),c("design:type",String)],i.prototype,"token",void 0),y([(0,u.SchemaProperty)({description:"\u5E94\u7528\u6D88\u606F\u4E0A\u64AD AES \u5BC6\u94A5\u3002",role:"secret",required:!0}),c("design:type",String)],i.prototype,"encodingAESKey",void 0),y([(0,u.SchemaProperty)({description:"\u4F01\u4E1A\u5FAE\u4FE1\u83DC\u5355\u914D\u7F6E\u3002",type:g.WecomMenuDef,default:[]}),c("design:type",Array)],i.prototype,"menus",void 0),a.WeComBotConfig=i=y([(0,u.RegisterSchema)()],i);let e=v(class extends d.Bot{constructor(){super(...arguments),this.internal={},this.buttonKeyMap=new Map}loadAdapter(){return(0,u.PluginDef)(M.WeComAdapter,this)}async initializeMenu(){if(!this.config.menus?.length){const o=await this.http.get("https://qyapi.weixin.qq.com/cgi-bin/menu/delete",{params:{access_token:await this.getToken(),agentid:this.config.agentId}});return o.errcode?(this.logger.error(`Failed to remove menu: ${o.errmsg}`),!1):!0}const t={button:this.config.menus.map(o=>(0,g.adaptMenu)(o,this.buttonKeyMap))},r=await this.http.post("https://qyapi.weixin.qq.com/cgi-bin/menu/create",t,{params:{access_token:await this.getToken(),agentid:this.config.agentId}});return r.errcode?(this.logger.error(`Failed to initialize menu ${JSON.stringify(t)}: ${r.errmsg}`),!1):!0}async fetchNewToken(){try{const s=await this.http.get("https://qyapi.weixin.qq.com/cgi-bin/gettoken",{params:{corpid:this.config.corpId,corpsecret:this.config.secret}});if(s.errcode){this.logger.error(`Failed to fetch secret with code ${s.errcode}: ${s.errmsg}`);return}const t=new b.WeComToken;return t.token=s.access_token,t.selfId=this.selfId,await this.aragami.set(t,{ttl:s.expires_in*1e3}),s.access_token}catch(s){this.logger.error(`Failed to fetch secret: ${s.toString()}`);return}}async getToken(){const s=await this.aragami.get(b.WeComToken,this.selfId);return s?s.token:this.fetchNewToken()}async handleMenuEvent(s,t){const r=t.wecom.EventKey,o=this.buttonKeyMap.get(r);if(o){const m=await t.execute(o);m&&await this.sendPrivateMessage(t.userId,m)}}async initialize(){try{const[s,t]=await Promise.all([this.getSelf(),this.initializeMenu()]);if(!s){this.offline(new Error("Invalid credentials."));return}if(!t){this.offline(new Error("Failed to initialize menu."));return}Object.assign(this,s),this.online()}catch(s){this.offline(s)}}async getSelf(){const s=await this.getToken();if(!s)return;const t=await this.http.get("https://qyapi.weixin.qq.com/cgi-bin/agent/list",{params:{access_token:s}});if(t.errcode){this.logger.error(`Failed to get self: ${t.errmsg}`);return}const r=t.agentlist.find(m=>m.agentid.toString()===this.config.agentId);return r?{userId:this.config.selfId,username:r.name,avatar:r.square_logo_url}:{userId:this.config.selfId}}async getUser(s){const t=await this.http.get("https://qyapi.weixin.qq.com/cgi-bin/user/get",{params:{access_token:await this.getToken(),userid:s}});if(t.errcode){this.logger.error(`Failed to get user ${s}: ${t.errmsg}`);return}return(0,b.adaptUser)(t)}async getFriendList(){return[]}async deleteFriend(s){}async getGuild(s){}async getGuildList(){return[]}async getGuildMember(s,t){}async getGuildMemberList(s){return[]}async getChannel(s,t){}async getChannelList(s){return[]}async handleFriendRequest(s,t,r){}async handleGuildRequest(s,t,r){}async handleGuildMemberRequest(s,t,r){}async deleteMessage(s,t){const r=await this.getToken();if(!r){this.logger.error("Missing token.");return}try{const o=await this.http.post("https://qyapi.weixin.qq.com/cgi-bin/message/recall",{msgid:t},{params:{access_token:r}});o.errcode&&this.logger.error(`Failed to delete message ${t}: ${o.errmsg}`)}catch(o){this.logger.error(`Errored to delete message ${t}: ${o.toString()}`)}}async sendMessage(s,t,r,o){return this.sendPrivateMessage(s,t,o)}async sendPrivateMessage(s,t,r){const o=(0,d.makeArray)(s);return new f.WeComMessenger(this,o.join("|"),void 0,r).send(t)}async broadcast(s,t,r=this.ctx.root.config.delay.broadcast){const o=s.map(m=>typeof m=="string"?m:m[0]);return o.length?this.sendPrivateMessage(o,t):[]}},"WeComBot");y([(0,u.Inject)(!0),c("design:type",_.default)],e.prototype,"aragami",void 0),y([(0,u.Inject)(!0),c("design:type",d.Quester)],e.prototype,"http",void 0),y([(0,u.InjectLogger)(),c("design:type",d.Logger)],e.prototype,"logger",void 0),y([(0,u.UsePlugin)(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],e.prototype,"loadAdapter",null),e=y([(0,u.Reusable)(),(0,u.PluginSchema)(i),(0,u.DefinePlugin)()],e),a.default=e},542:function(p,a,l){var y=this&&this.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(a,"__esModule",{value:!0}),a.WeComMessenger=void 0;const c=l(126),h=y(l(941)),d=y(l(147)),g=y(l(17)),u=y(l(221)),_=y(l(890)),b=l(593);class M extends c.Messenger{constructor(){super(...arguments),this.buffer="",this.cardPropertyArrayKeyList={action_menu:"action_list",check_box:"option_list",button_selection:"option_list"},this.cardPropertyArrayPartentKeyList={select_list:"option_list"},this.isMarkdown=!1}async sendGenericMessage(i){const e=await this.bot.getToken();if(!e){this.bot.logger.error("Missing token.");return}const n={agentid:this.bot.config.agentId,touser:this.channelId,...i},s=await this.bot.http.post("https://qyapi.weixin.qq.com/cgi-bin/message/send",n,{params:{access_token:e}});return s.errcode&&this.bot.logger.error(`Failed to send message ${JSON.stringify(n)}: ${s.errmsg}`),s.invaliduser&&this.bot.logger.error(`Invalid users: ${s.invaliduser}`),s.invalidparty&&this.bot.logger.error(`Invalid parties: ${s.invalidparty}`),s.invalidtag&&this.bot.logger.error(`Invalid tags: ${s.invalidtag}`),s.msgid}async uploadMedia(i,e="image",n){const s=await this.bot.getToken();if(!s){this.bot.logger.error("Missing token.");return}const t=new h.default;t.append("media",i,n);const r=await this.bot.http.post("https://qyapi.weixin.qq.com/cgi-bin/media/upload",t,{params:{access_token:s,type:e},headers:t.getHeaders()});return r.errcode&&this.bot.logger.error(`Failed to upload media ${n}: ${r.errmsg}`),r.media_id}async sendMarkdownMessage(i,e={}){const n={msgtype:"markdown",markdown:{content:i},...e};return this.sendGenericMessage(n)}async sendTextMessage(i,e={}){const n={msgtype:"text",text:{content:i},...e};return this.sendGenericMessage(n)}async sendMediaMessage(i,e,n,s={}){const t=await this.uploadMedia(n,i,e);if(!t)return;const r={msgtype:i,[i]:{media_id:t},...s};return this.sendGenericMessage(r)}async prepareBufferAndFilename(i,e){const{url:n}=e;if(!n)return;if(n.startsWith("file://")){const t=n.slice(7),r=await d.default.promises.readFile(t),o=g.default.basename(t);return{buffer:r,filename:o}}if(n.startsWith("base64://")){const t=Buffer.from(e.url.slice(9),"base64");let r=e.file;if(!r)if(!n.startsWith("base64://"))r=g.default.basename(n);else{const o=await u.default.fromBuffer(t);o?r=`media.${o.ext}`:r="media.bin"}return{buffer:t,filename:r}}const s=await this.bot.http.file(n);return{buffer:Buffer.from(s.data),filename:s.filename}}text(i){this.buffer+=i}parseCardProperties(i,e=""){const n=(0,b.transformKey)(i.attrs,c.snakeCase),s=(0,c.snakeCase)(i.type),t=this.cardPropertyArrayKeyList[s]||this.cardPropertyArrayPartentKeyList[e];for(const r of i.children){if(t&&s!==t&&(n[t]??=[],n[t].push(this.parseCardProperties(r,s))),!r.type)continue;const o=(0,c.snakeCase)(r.type);let m;o.endsWith("_list")?m=r.children.map(w=>this.parseCardProperties(w,o)):m=this.parseCardProperties(r,s),n[o]=m}return!n.task_id&&i.type.startsWith("wecom:")&&(n.task_id=(0,_.default)({length:127,type:"alphanumeric"})),n}async flush(){const i=this.buffer.trim();if(i){const e=c.segment.text(i);this.isMarkdown&&(e.type="markdown"),await this.post(e),this.buffer=""}}async post(i){try{const e=await this.postElement(i);if(!e)return;const n=this.bot.session();n.messageId=e,n.app.emit(n,"send",n),this.results.push(n)}catch(e){this.errors.push(e)}}async postElement(i){const{type:e,attrs:n}=i;switch(e){case"text":return this.sendTextMessage(n.content);case"markdown":return this.sendMarkdownMessage(n.content);case"image":case"video":case"file":case"voice":if(!n.url)return;const{buffer:s,filename:t}=await this.prepareBufferAndFilename(e,n);if(!await this.uploadMedia(s,e,t))break;return this.sendMediaMessage(e,t,s);case"wecom:card":return this.sendGenericMessage({msgtype:"template_card",template_card:this.parseCardProperties(i)});default:if(e.startsWith("wecom:")){const o=e.slice(6);return this.sendGenericMessage({msgtype:o,[o]:(0,b.transformKey)(n,c.snakeCase)})}return}}async visit(i){const{type:e,attrs:n,children:s}=i;switch(e){case"text":this.text(n.content);break;case"p":await this.render(s),this.text(`
`);break;case"a":this.text(i.toString());break;case"at":n.id?this.text(`@${n.id}`):n.type==="all"?this.text("@\u5168\u4F53\u6210\u5458"):n.type==="here"?this.text("@\u5728\u7EBF\u6210\u5458"):n.role&&this.text(`@${n.role}`);break;case"sharp":this.text(` #${n.name} `);break;case"message":await this.flush();const t=this.isMarkdown;this.isMarkdown=t||!!(n.markdown&&n.markdown!==0),await this.render(s),await this.flush(),this.isMarkdown=t;break;default:(e.startsWith("wecom:")||["image","video","file","voice"].includes(e))&&(await this.flush(),await this.post(i)),await this.render(s)}}}v(M,"WeComMessenger"),a.WeComMessenger=M},593:function(p,a,l){var y=this&&this.__decorate||function(f,i,e,n){var s=arguments.length,t=s<3?i:n===null?n=Object.getOwnPropertyDescriptor(i,e):n,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")t=Reflect.decorate(f,i,e,n);else for(var o=f.length-1;o>=0;o--)(r=f[o])&&(t=(s<3?r(t):s>3?r(i,e,t):r(i,e))||t);return s>3&&t&&Object.defineProperty(i,e,t),t},c=this&&this.__metadata||function(f,i){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(f,i)};Object.defineProperty(a,"__esModule",{value:!0}),a.transformKey=a.WeComToken=a.dispatchSession=a.adaptSession=a.adaptUser=void 0;const h=l(126),d=l(867);function g(f){return{userId:f.userid,username:f.name,nickname:f.name,avatar:f.avatar}}v(g,"adaptUser"),a.adaptUser=g;function u(f,i){const{body:e}=i;if(!e)return;const n={selfId:f.selfId,targetId:e.ToUserName,messageId:e.MsgId?.toString(),wecom:e,userId:e.FromUserName,channelId:e.FromUserName,timestamp:e.CreateTime};if(e.MsgType==="event"&&!e.Event.startsWith("template_card_"))n.type=`wecom/${e.Event}`;else{switch(e.MsgType){case"text":const s=e;n.content=s.Content.toString();break;case"image":const t=e;n.content=h.segment.image(t.PicUrl).toString();break;case"link":const r=e;n.content=(0,h.segment)("a",{href:r.Url,picUrl:r.PicUrl},r.Title).toString();break;case"video":const o=e;n.content=(0,h.segment)("wecom:video",{mediaId:o.MediaId,thumbMediaId:o.ThumbMediaId}).toString();break;case"voice":const m=e;n.content=(0,h.segment)("wecom:voice",{mediaId:m.MediaId,format:m.Format}).toString();break;case"location":const w=e;n.content=(0,h.segment)("wecom:location",{latitude:w.Location_X,longitude:w.Location_Y,scale:w.Scale,label:w.Label}).toString();break;case"event":switch(e.Event){case"template_card_event":const I=e;n.content=(0,h.segment)("wecom:response",{key:I.EventKey,id:I.TaskId,type:I.CardType,code:I.ResponseCode},(0,h.makeArray)(I.SelectedItems.SelectedItem).map($=>(0,h.segment)("question",{key:$.QuestionKey},(0,h.makeArray)($.OptionIds.OptionId).map(W=>(0,h.segment)("option",{id:W}))))).toString();break;case"template_card_menu_event":const S=e;n.content=(0,h.segment)("wecom:menu",{key:S.EventKey,id:S.TaskId,type:S.CardType,code:S.ResponseCode}).toString();break}break;default:return}n.type="message",n.subtype="private",n.author={userId:n.userId}}return n}v(u,"adaptSession"),a.adaptSession=u;function _(f,i){const e=u(f,i);if(!e)return;const n=new h.Session(f,e);n.wecom=i.body,f.dispatch(n),i.body.Event&&["click","view","scan","scancode_waitmsg","pic_sysphoto","pic_photo_or_album","pic_weixin","location_select"].includes(i.body.Event)&&f.handleMenuEvent(i.body.Event,n).then()}v(_,"dispatchSession"),a.dispatchSession=_;class b{}v(b,"WeComToken"),a.WeComToken=b,y([(0,d.CacheKey)(),c("design:type",String)],b.prototype,"selfId",void 0);function M(f,i,e=new Set){if(typeof f!="object"||e.has(f))return f;const n={};if(!e.has(f)){e.add(f);for(const s of Object.keys(f)){let t=f[s];Array.isArray(t)?t=t.map(r=>M(r,i,e)):t=M(t,i,e),n[i(s)]=t}return n}}v(M,"transformKey"),a.transformKey=M},119:p=>{p.exports=require("@wecom/crypto")},890:p=>{p.exports=require("crypto-random-string")},861:p=>{p.exports=require("fast-xml-parser")},221:p=>{p.exports=require("file-type")},941:p=>{p.exports=require("form-data")},126:p=>{p.exports=require("koishi")},867:p=>{p.exports=require("koishi-plugin-cache-aragami")},856:p=>{p.exports=require("koishi-thirdeye")},665:p=>{p.exports=require("raw-body")},113:p=>{p.exports=require("crypto")},147:p=>{p.exports=require("fs")},17:p=>{p.exports=require("path")}},k={};function O(p){var a=k[p];if(a!==void 0)return a.exports;var l=k[p]={exports:{}};return P[p].call(l.exports,l,l.exports,O),l.exports}v(O,"__webpack_require__");var C=O(607),j=exports;for(var q in C)j[q]=C[q];C.__esModule&&Object.defineProperty(j,"__esModule",{value:!0})})();
//# sourceMappingURL=index.js.map