@zhin.js/adapter-wechat-mp 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @zhin.js/adapter-wechat-mp
2
2
 
3
+ ## 2.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - zhin.js@3.0.0
8
+ - @zhin.js/host-router@2.0.0
9
+
10
+ ## 1.0.1
11
+
12
+ ### Patch Changes
13
+
14
+ - d8def69: fix: 性能优化
15
+ - 2ef4896: fix: 更新概念 Bot=>Endpoint,已适配后续更多的业务场景;统一角色权限
16
+ - Updated dependencies [d8def69]
17
+ - Updated dependencies [2ef4896]
18
+ - @zhin.js/host-router@1.0.1
19
+ - zhin.js@2.0.1
20
+
3
21
  ## 1.0.0
4
22
 
5
23
  ### Patch Changes
package/README.md CHANGED
@@ -36,7 +36,7 @@ plugins:
36
36
  - "@zhin.js/adapter-wechat-mp"
37
37
  - "@zhin.js/host-router"
38
38
 
39
- bots:
39
+ endpoints:
40
40
  - context: wechat-mp
41
41
  name: my-wechat-bot
42
42
  appId: "${WECHAT_APP_ID}"
@@ -56,7 +56,7 @@ bots:
56
56
  完整选项示例(含可选加密字段):
57
57
 
58
58
  ```yaml
59
- bots:
59
+ endpoints:
60
60
  - context: wechat-mp
61
61
  name: my-wechat-bot
62
62
  appId: ${WECHAT_APP_ID}
@@ -71,7 +71,7 @@ bots:
71
71
  import { defineConfig } from 'zhin.js'
72
72
 
73
73
  export default defineConfig({
74
- bots: [
74
+ endpoints: [
75
75
  {
76
76
  context: 'wechat-mp',
77
77
  name: 'my-wechat-bot',
package/lib/adapter.d.ts CHANGED
@@ -3,11 +3,12 @@
3
3
  */
4
4
  import { Adapter, Plugin } from "zhin.js";
5
5
  import type { Router } from "@zhin.js/host-router";
6
- import { WeChatMPBot } from "./bot.js";
6
+ import { WeChatMPEndpoint } from "./endpoint.js";
7
7
  import type { WeChatMPConfig } from "./types.js";
8
- export declare class WeChatMPAdapter extends Adapter<WeChatMPBot> {
8
+ export declare class WeChatMPAdapter extends Adapter<WeChatMPEndpoint> {
9
9
  #private;
10
+ static readonly capabilities: readonly ["inbound", "outbound"];
10
11
  constructor(plugin: Plugin, router: Router);
11
- createBot(config: WeChatMPConfig): WeChatMPBot;
12
+ createEndpoint(config: WeChatMPConfig): WeChatMPEndpoint;
12
13
  }
13
14
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,eAAgB,SAAQ,OAAO,CAAC,WAAW,CAAC;;gBAGzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK1C,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW;CAGjD"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,eAAgB,SAAQ,OAAO,CAAC,gBAAgB,CAAC;;IAC1D,gBAAyB,YAAY,mCAAoC;gBAI7D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK1C,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB;CAG3D"}
package/lib/adapter.js CHANGED
@@ -2,15 +2,16 @@
2
2
  * 微信公众号适配器
3
3
  */
4
4
  import { Adapter } from "zhin.js";
5
- import { WeChatMPBot } from "./bot.js";
5
+ import { WeChatMPEndpoint } from "./endpoint.js";
6
6
  export class WeChatMPAdapter extends Adapter {
7
+ static capabilities = ['inbound', 'outbound'];
7
8
  #router;
8
9
  constructor(plugin, router) {
9
10
  super(plugin, 'wechat-mp', []);
10
11
  this.#router = router;
11
12
  }
12
- createBot(config) {
13
- return new WeChatMPBot(this, this.#router, config);
13
+ createEndpoint(config) {
14
+ return new WeChatMPEndpoint(this, this.#router, config);
14
15
  }
15
16
  }
16
17
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,OAAO,eAAgB,SAAQ,OAAoB;IACrD,OAAO,CAAS;IAEhB,YAAY,MAAc,EAAE,MAAc;QACtC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,MAAsB;QAC5B,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACJ"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,OAAO,eAAgB,SAAQ,OAAyB;IAC1D,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAEzE,OAAO,CAAS;IAEhB,YAAY,MAAc,EAAE,MAAc;QACtC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,MAAsB;QACjC,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { EventEmitter } from "events";
2
- import { Bot, Message, MessageSegment, SendOptions } from 'zhin.js';
2
+ import { Endpoint, Message, MessageSegment, SendOptions } from 'zhin.js';
3
3
  import { type Router } from "@zhin.js/host-router/router";
4
4
  import type { WeChatMPConfig, WeChatMessage } from "./types.js";
5
5
  import type { WeChatMPAdapter } from "./adapter.js";
6
- export declare class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeChatMessage> {
6
+ export declare class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPConfig, WeChatMessage> {
7
7
  adapter: WeChatMPAdapter;
8
8
  $config: WeChatMPConfig;
9
9
  $connected: boolean;
@@ -70,4 +70,4 @@ export declare class WeChatMPBot extends EventEmitter implements Bot<WeChatMPCon
70
70
  */
71
71
  private encryptMessage;
72
72
  }
73
- //# sourceMappingURL=bot.d.ts.map
73
+ //# sourceMappingURL=endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAEH,QAAQ,EACR,OAAO,EACP,cAAc,EAGd,WAAW,EAKd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAsB,KAAK,MAAM,EAAsB,MAAM,6BAA6B,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAoC,MAAM,YAAY,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAkBpD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC;IAgB9E,OAAO,EAAE,eAAe;IAf3C,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,OAAO,CAAS;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,eAAe,CAAa;IAEpC,IAAI,MAAM,6BAEX;IAED,IAAI,GAAG,WAEJ;gBAEkB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IASnF,OAAO,CAAC,WAAW;IAcb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,OAAO,CAAC,kBAAkB;YA8GZ,aAAa;IAqF3B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,eAAe;YAWT,eAAe;IAW7B,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA0ChE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE;IAgEhE,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjC,0BAA0B;IAmBxC,OAAO,CAAC,iBAAiB;IAoEzB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,eAAe;YAOT,sBAAsB;YAyCtB,kBAAkB;IA4BhC,OAAO,CAAC,cAAc;YAeR,kBAAkB;IAoBhC,OAAO,CAAC,iBAAiB,CAAC,CAAiC;IAE3D,OAAO,CAAC,sBAAsB;IAcxB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAW/C;;;;;;OAMG;IACG,WAAW,CACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,EAC3C,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IA4ClB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,SAAS;IAKjB,gDAAgD;IAChD,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;YACW,cAAc;IA8C5B;;OAEG;IACH,OAAO,CAAC,cAAc;CAyCzB"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * 微信公众号 Bot 实现
2
+ * 微信公众号 Endpoint 实现
3
3
  */
4
4
  import axios from "axios";
5
5
  import * as xml2js from "xml2js";
6
6
  import { createHash, createDecipheriv, createCipheriv, randomBytes } from "crypto";
7
7
  import { EventEmitter } from "events";
8
8
  import FormData from "form-data";
9
- import { formatCompact, Message, segment, runInboundMessage, truncatePreview, } from 'zhin.js';
9
+ import { formatCompact, Message, segment, hasOutbound, runInboundMessage, truncatePreview, } from 'zhin.js';
10
10
  import { registerFetchRoute } from "@zhin.js/host-router/router";
11
11
  import { getPassiveReplyCapture, recordPassiveReplyText, runWithPassiveReplyCapture, } from "./passive-reply.js";
12
12
  function queryParam(value) {
@@ -20,7 +20,7 @@ function queryParam(value) {
20
20
  function normalizeEchostrParam(echostr) {
21
21
  return echostr.replace(/ /g, "+");
22
22
  }
23
- export class WeChatMPBot extends EventEmitter {
23
+ export class WeChatMPEndpoint extends EventEmitter {
24
24
  adapter;
25
25
  $config;
26
26
  $connected = false;
@@ -60,7 +60,7 @@ export class WeChatMPBot extends EventEmitter {
60
60
  this.setupRoutes();
61
61
  // 定期刷新access_token
62
62
  this.startTokenRefreshTimer();
63
- this.logger.info(formatCompact({ bot: this.$config.name }));
63
+ this.logger.info(formatCompact({ endpoint: this.$config.name }));
64
64
  this.logger.info(formatCompact({ op: "webhook", path: this.$config.path }));
65
65
  this.$connected = true;
66
66
  }
@@ -75,7 +75,7 @@ export class WeChatMPBot extends EventEmitter {
75
75
  this.tokenRefreshTimer = undefined;
76
76
  }
77
77
  this.$connected = false;
78
- this.logger.info(formatCompact({ op: "disconnect", bot: this.$config.name }));
78
+ this.logger.info(formatCompact({ op: "disconnect", endpoint: this.$config.name }));
79
79
  }
80
80
  handleVerification(ctx) {
81
81
  const signature = queryParam(ctx.query.signature);
@@ -210,7 +210,7 @@ export class WeChatMPBot extends EventEmitter {
210
210
  const message = this.$formatMessage(wechatMessage);
211
211
  this.logger.info(formatCompact({
212
212
  recv: `private(${message.$channel.id})`,
213
- bot: message.$bot,
213
+ endpoint: message.$endpoint,
214
214
  preview: truncatePreview(segment.raw(message.$content)),
215
215
  replyMode: this.getReplyMode(),
216
216
  encryptMode: this.getEncryptMode(),
@@ -282,11 +282,11 @@ export class WeChatMPBot extends EventEmitter {
282
282
  const channelType = 'private'; // 公众号消息都是私聊
283
283
  const channelId = wechatMsg.FromUserName;
284
284
  // 解析消息内容
285
- const content = WeChatMPBot.parseMessageContent(wechatMsg);
286
- const result = Message.from(wechatMsg, {
285
+ const content = WeChatMPEndpoint.parseMessageContent(wechatMsg);
286
+ const base = {
287
287
  $id: wechatMsg.MsgId || `${wechatMsg.CreateTime}`,
288
288
  $adapter: 'wechat-mp',
289
- $bot: this.$config.name,
289
+ $endpoint: this.$config.name,
290
290
  $sender: {
291
291
  id: wechatMsg.FromUserName,
292
292
  name: wechatMsg.FromUserName
@@ -298,20 +298,22 @@ export class WeChatMPBot extends EventEmitter {
298
298
  $raw: JSON.stringify(wechatMsg),
299
299
  $timestamp: wechatMsg.CreateTime * 1000,
300
300
  $content: content,
301
- $recall: async () => {
302
- await this.$recallMessage(result.$id);
303
- },
304
- $reply: async (content) => {
301
+ };
302
+ if (hasOutbound(this)) {
303
+ base.$recall = async () => {
304
+ await this.$recallMessage(wechatMsg.MsgId || `${wechatMsg.CreateTime}`);
305
+ };
306
+ base.$reply = async (replyContent) => {
305
307
  return await this.adapter.sendMessage({
306
308
  context: this.$config.context,
307
- bot: this.$config.name,
309
+ endpoint: this.$config.name,
308
310
  id: wechatMsg.FromUserName,
309
311
  type: 'private',
310
- content
312
+ content: replyContent
311
313
  });
312
- }
313
- });
314
- return result;
314
+ };
315
+ }
316
+ return Message.from(wechatMsg, base);
315
317
  }
316
318
  static parseMessageContent(wechatMsg) {
317
319
  const segments = [];
@@ -385,7 +387,7 @@ export class WeChatMPBot extends EventEmitter {
385
387
  this.logger.warn(formatCompact({
386
388
  op: "send",
387
389
  skip: "passive_outside_webhook",
388
- bot: this.$config.name,
390
+ endpoint: this.$config.name,
389
391
  }));
390
392
  return `passive_skipped_${Date.now()}`;
391
393
  }
@@ -780,4 +782,4 @@ export class WeChatMPBot extends EventEmitter {
780
782
  }
781
783
  }
782
784
  // 定义 Adapter 类
783
- //# sourceMappingURL=bot.js.map
785
+ //# sourceMappingURL=endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -10,6 +10,6 @@ declare module "zhin.js" {
10
10
  }
11
11
  }
12
12
  export * from "./types.js";
13
- export { WeChatMPBot } from "./bot.js";
13
+ export { WeChatMPEndpoint } from "./endpoint.js";
14
14
  export { WeChatMPAdapter } from "./adapter.js";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,MAAM,EAAE,OAAO,sBAAsB,EAAE,MAAM,CAAC;SAC/C;KACF;IACD,UAAU,QAAQ;QAChB,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,MAAM,EAAE,OAAO,sBAAsB,EAAE,MAAM,CAAC;SAC/C;KACF;IACD,UAAU,QAAQ;QAChB,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
package/lib/index.js CHANGED
@@ -4,14 +4,14 @@
4
4
  import { usePlugin } from "zhin.js";
5
5
  import { WeChatMPAdapter } from "./adapter.js";
6
6
  export * from "./types.js";
7
- export { WeChatMPBot } from "./bot.js";
7
+ export { WeChatMPEndpoint } from "./endpoint.js";
8
8
  export { WeChatMPAdapter } from "./adapter.js";
9
9
  const plugin = usePlugin();
10
10
  const { provide, useContext } = plugin;
11
11
  useContext("router", (router) => {
12
12
  provide({
13
13
  name: "wechat-mp",
14
- description: "WeChat MP Bot Adapter",
14
+ description: "WeChat MP Endpoint Adapter",
15
15
  mounted: async (p) => {
16
16
  const adapter = new WeChatMPAdapter(p, router);
17
17
  await adapter.start();
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAa/C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;AAEvC,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;IACtC,OAAO,CAAC;QACN,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAwB,EAAE,EAAE;YAC1C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;KACsB,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAa/C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;AAEvC,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;IACtC,OAAO,CAAC;QACN,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAwB,EAAE,EAAE;YAC1C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;KACsB,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,25 +1,26 @@
1
1
  {
2
2
  "name": "@zhin.js/adapter-wechat-mp",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "description": "Zhin.js adapter for WeChat Official Account (微信公众号)",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
8
8
  "dependencies": {
9
9
  "xml2js": "^0.6.2",
10
- "axios": "^1.16.1",
10
+ "axios": "^1.17.0",
11
11
  "form-data": "^4.0.0"
12
12
  },
13
13
  "peerDependencies": {
14
- "@zhin.js/host-router": "1.0.0",
15
- "zhin.js": "2.0.0"
14
+ "@zhin.js/host-router": "2.0.0",
15
+ "zhin.js": "3.0.0"
16
16
  },
17
17
  "devDependencies": {
18
- "@types/xml2js": "^0.4.14",
19
18
  "@types/koa": "^3.0.3",
20
- "@types/node": "^25.9.1",
19
+ "@types/node": "^25.9.2",
20
+ "@types/xml2js": "^0.4.14",
21
21
  "typescript": "^6.0.3",
22
- "zhin.js": "2.0.0"
22
+ "@zhin.js/host-router": "2.0.0",
23
+ "zhin.js": "3.0.0"
23
24
  },
24
25
  "keywords": [
25
26
  "zhin",
package/src/adapter.ts CHANGED
@@ -3,10 +3,12 @@
3
3
  */
4
4
  import { Adapter, Plugin } from "zhin.js";
5
5
  import type { Router } from "@zhin.js/host-router";
6
- import { WeChatMPBot } from "./bot.js";
6
+ import { WeChatMPEndpoint } from "./endpoint.js";
7
7
  import type { WeChatMPConfig } from "./types.js";
8
8
 
9
- export class WeChatMPAdapter extends Adapter<WeChatMPBot> {
9
+ export class WeChatMPAdapter extends Adapter<WeChatMPEndpoint> {
10
+ static override readonly capabilities = ['inbound', 'outbound'] as const;
11
+
10
12
  #router: Router;
11
13
 
12
14
  constructor(plugin: Plugin, router: Router) {
@@ -14,7 +16,7 @@ export class WeChatMPAdapter extends Adapter<WeChatMPBot> {
14
16
  this.#router = router;
15
17
  }
16
18
 
17
- createBot(config: WeChatMPConfig): WeChatMPBot {
18
- return new WeChatMPBot(this, this.#router, config);
19
+ createEndpoint(config: WeChatMPConfig): WeChatMPEndpoint {
20
+ return new WeChatMPEndpoint(this, this.#router, config);
19
21
  }
20
22
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 微信公众号 Bot 实现
2
+ * 微信公众号 Endpoint 实现
3
3
  */
4
4
  import axios from "axios";
5
5
  import * as xml2js from "xml2js";
@@ -8,14 +8,16 @@ import { EventEmitter } from "events";
8
8
  import FormData from "form-data";
9
9
  import {
10
10
  formatCompact,
11
- Bot,
11
+ Endpoint,
12
12
  Message,
13
13
  MessageSegment,
14
14
  segment,
15
15
  SendContent,
16
16
  SendOptions,
17
+ hasOutbound,
17
18
  runInboundMessage,
18
19
  truncatePreview,
20
+ type MessageBase,
19
21
  } from 'zhin.js';
20
22
  import { registerFetchRoute, type Router, type RouterContext } from "@zhin.js/host-router/router";
21
23
  import type { WeChatMPConfig, WeChatMessage, WeChatAPIResponse, TokenResponse } from "./types.js";
@@ -37,7 +39,7 @@ function normalizeEchostrParam(echostr: string): string {
37
39
  return echostr.replace(/ /g, "+");
38
40
  }
39
41
 
40
- export class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeChatMessage> {
42
+ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPConfig, WeChatMessage> {
41
43
  $config: WeChatMPConfig;
42
44
  $connected: boolean = false;
43
45
  router: Router;
@@ -87,7 +89,7 @@ export class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeC
87
89
  // 定期刷新access_token
88
90
  this.startTokenRefreshTimer();
89
91
 
90
- this.logger.info(formatCompact({ bot: this.$config.name }));
92
+ this.logger.info(formatCompact({ endpoint: this.$config.name }));
91
93
  this.logger.info(formatCompact( { op: "webhook", path: this.$config.path }));
92
94
  this.$connected= true;
93
95
  } catch (error) {
@@ -102,7 +104,7 @@ export class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeC
102
104
  this.tokenRefreshTimer = undefined;
103
105
  }
104
106
  this.$connected = false;
105
- this.logger.info(formatCompact( { op: "disconnect", bot: this.$config.name }));
107
+ this.logger.info(formatCompact( { op: "disconnect", endpoint: this.$config.name }));
106
108
  }
107
109
 
108
110
  private handleVerification(ctx: RouterContext): void {
@@ -254,7 +256,7 @@ export class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeC
254
256
  const message = this.$formatMessage(wechatMessage);
255
257
  this.logger.info(formatCompact({
256
258
  recv: `private(${message.$channel.id})`,
257
- bot: message.$bot,
259
+ endpoint: message.$endpoint,
258
260
  preview: truncatePreview(segment.raw(message.$content)),
259
261
  replyMode: this.getReplyMode(),
260
262
  encryptMode: this.getEncryptMode(),
@@ -341,12 +343,12 @@ export class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeC
341
343
  const channelId = wechatMsg.FromUserName;
342
344
 
343
345
  // 解析消息内容
344
- const content = WeChatMPBot.parseMessageContent(wechatMsg);
346
+ const content = WeChatMPEndpoint.parseMessageContent(wechatMsg);
345
347
 
346
- const result = Message.from(wechatMsg, {
348
+ const base: MessageBase = {
347
349
  $id: wechatMsg.MsgId || `${wechatMsg.CreateTime}`,
348
350
  $adapter: 'wechat-mp',
349
- $bot: this.$config.name,
351
+ $endpoint: this.$config.name,
350
352
  $sender: {
351
353
  id: wechatMsg.FromUserName,
352
354
  name: wechatMsg.FromUserName
@@ -358,21 +360,24 @@ export class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeC
358
360
  $raw: JSON.stringify(wechatMsg),
359
361
  $timestamp: wechatMsg.CreateTime * 1000,
360
362
  $content: content,
361
- $recall: async () => {
362
- await this.$recallMessage(result.$id)
363
- },
364
- $reply: async (content: SendContent): Promise<string> => {
363
+ };
364
+
365
+ if (hasOutbound(this)) {
366
+ base.$recall = async () => {
367
+ await this.$recallMessage(wechatMsg.MsgId || `${wechatMsg.CreateTime}`);
368
+ };
369
+ base.$reply = async (replyContent: SendContent): Promise<string> => {
365
370
  return await this.adapter.sendMessage({
366
371
  context: this.$config.context,
367
- bot: this.$config.name,
372
+ endpoint: this.$config.name,
368
373
  id: wechatMsg.FromUserName,
369
374
  type: 'private',
370
- content
375
+ content: replyContent
371
376
  });
372
- }
373
- });
374
-
375
- return result;
377
+ };
378
+ }
379
+
380
+ return Message.from(wechatMsg, base);
376
381
  }
377
382
 
378
383
  static parseMessageContent(wechatMsg: WeChatMessage): MessageSegment[] {
@@ -458,7 +463,7 @@ export class WeChatMPBot extends EventEmitter implements Bot<WeChatMPConfig, WeC
458
463
  this.logger.warn(formatCompact({
459
464
  op: "send",
460
465
  skip: "passive_outside_webhook",
461
- bot: this.$config.name,
466
+ endpoint: this.$config.name,
462
467
  }));
463
468
  return `passive_skipped_${Date.now()}`;
464
469
  }
package/src/index.ts CHANGED
@@ -17,7 +17,7 @@ declare module "zhin.js" {
17
17
  }
18
18
 
19
19
  export * from "./types.js";
20
- export { WeChatMPBot } from "./bot.js";
20
+ export { WeChatMPEndpoint } from "./endpoint.js";
21
21
  export { WeChatMPAdapter } from "./adapter.js";
22
22
 
23
23
  const plugin = usePlugin();
@@ -26,7 +26,7 @@ const { provide, useContext } = plugin;
26
26
  useContext("router", (router: Router) => {
27
27
  provide({
28
28
  name: "wechat-mp",
29
- description: "WeChat MP Bot Adapter",
29
+ description: "WeChat MP Endpoint Adapter",
30
30
  mounted: async (p: Plugin) => {
31
31
  const adapter = new WeChatMPAdapter(p, router);
32
32
  await adapter.start();
package/lib/bot.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAEH,GAAG,EACH,OAAO,EACP,cAAc,EAGd,WAAW,EAGd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAsB,KAAK,MAAM,EAAsB,MAAM,6BAA6B,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAoC,MAAM,YAAY,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAkBpD,qBAAa,WAAY,SAAQ,YAAa,YAAW,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC;IAgBpE,OAAO,EAAE,eAAe;IAf3C,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,OAAO,CAAS;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,eAAe,CAAa;IAEpC,IAAI,MAAM,6BAEX;IAED,IAAI,GAAG,WAEJ;gBAEkB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IASnF,OAAO,CAAC,WAAW;IAcb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,OAAO,CAAC,kBAAkB;YA8GZ,aAAa;IAqF3B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,eAAe;YAWT,eAAe;IAW7B,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAuChE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE;IAgEhE,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjC,0BAA0B;IAmBxC,OAAO,CAAC,iBAAiB;IAoEzB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,eAAe;YAOT,sBAAsB;YAyCtB,kBAAkB;IA4BhC,OAAO,CAAC,cAAc;YAeR,kBAAkB;IAoBhC,OAAO,CAAC,iBAAiB,CAAC,CAAiC;IAE3D,OAAO,CAAC,sBAAsB;IAcxB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAW/C;;;;;;OAMG;IACG,WAAW,CACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,EAC3C,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IA4ClB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,SAAS;IAKjB,gDAAgD;IAChD,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;YACW,cAAc;IA8C5B;;OAEG;IACH,OAAO,CAAC,cAAc;CAyCzB"}
package/lib/bot.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}