@zhin.js/adapter-wechat-mp 3.0.0 → 3.0.2
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 +25 -0
- package/README.md +5 -0
- package/lib/adapter.d.ts +1 -0
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +1 -0
- package/lib/adapter.js.map +1 -1
- package/lib/endpoint.d.ts.map +1 -1
- package/lib/endpoint.js +23 -18
- package/lib/endpoint.js.map +1 -1
- package/lib/segment-mapper.d.ts +2 -0
- package/lib/segment-mapper.d.ts.map +1 -0
- package/lib/segment-mapper.js +2 -0
- package/lib/segment-mapper.js.map +1 -0
- package/package.json +7 -7
- package/src/adapter.ts +1 -0
- package/src/endpoint.ts +27 -17
- package/src/segment-mapper.ts +1 -0
- /package/{skills/wechat-mp/SKILL.md → agent/skills/wechat-mp.md} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @zhin.js/adapter-wechat-mp
|
|
2
2
|
|
|
3
|
+
## 3.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 872c583: Slack 适配器 Phase 1/2:mrkdwn 出站、长消息切分、斜杠/按钮 ephemeral 反馈、入站 mrkdwn→Markdown、editMessage 对齐 core。
|
|
8
|
+
|
|
9
|
+
Logger 表格日志与 string-width 列宽;Agent AI Handler 框线表格与 introspection/MCP 导出;Core side-event 归一化;Schedule 时区规划;多适配器 side-event 与 API surface 更新。
|
|
10
|
+
|
|
11
|
+
- 872c583: fix: 代码格式优化
|
|
12
|
+
- Updated dependencies [872c583]
|
|
13
|
+
- Updated dependencies [872c583]
|
|
14
|
+
- @zhin.js/host-router@2.0.3
|
|
15
|
+
- zhin.js@4.1.2
|
|
16
|
+
|
|
17
|
+
## 3.0.1
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- 5cc9c03: fix: ai 优化
|
|
22
|
+
- b9b3881: fix: 增加游戏引擎以及部分游戏
|
|
23
|
+
- Updated dependencies [5cc9c03]
|
|
24
|
+
- Updated dependencies [7700903]
|
|
25
|
+
- @zhin.js/host-router@2.0.2
|
|
26
|
+
- zhin.js@4.1.1
|
|
27
|
+
|
|
3
28
|
## 3.0.0
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -134,6 +134,11 @@ root.addMiddleware(async (message, next) => {
|
|
|
134
134
|
| `48001 api unauthorized` | 未认证订阅号无客服 API;保持默认 `replyMode: passive` |
|
|
135
135
|
| 加密模式报错 | `encodingAESKey`、`encrypt` 与公众平台「安全模式」设置一致 |
|
|
136
136
|
|
|
137
|
+
## AI 工具
|
|
138
|
+
|
|
139
|
+
技能说明见 `agent/skills/wechat-mp.md`。群管与平台工具按公众号能力在 `src/index.ts` 注册。
|
|
140
|
+
|
|
141
|
+
|
|
137
142
|
## 文档链接
|
|
138
143
|
|
|
139
144
|
- [微信公众号适配器文档](https://zhin.js.org/adapters/wechat-mp)
|
package/lib/adapter.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare class WeChatMPAdapter extends Adapter<WeChatMPEndpoint> {
|
|
|
9
9
|
#private;
|
|
10
10
|
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
11
11
|
static outboundRichSegmentPolicy: import("zhin.js").OutboundRichSegmentPolicy;
|
|
12
|
+
static interactivePolicy: "text";
|
|
12
13
|
constructor(plugin: Plugin, router: Router);
|
|
13
14
|
createEndpoint(config: WeChatMPConfig): WeChatMPEndpoint;
|
|
14
15
|
}
|
package/lib/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAA0C,MAAM,SAAS,CAAC;AAClF,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;IAC3E,OAAgB,yBAAyB,8CAA0C;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAA0C,MAAM,SAAS,CAAC;AAClF,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;IAC3E,OAAgB,yBAAyB,8CAA0C;IACnF,OAAgB,iBAAiB,EAAG,MAAM,CAAU;gBAItC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK1C,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB;CAG3D"}
|
package/lib/adapter.js
CHANGED
|
@@ -6,6 +6,7 @@ import { WeChatMPEndpoint } from "./endpoint.js";
|
|
|
6
6
|
export class WeChatMPAdapter extends Adapter {
|
|
7
7
|
static capabilities = ['inbound', 'outbound'];
|
|
8
8
|
static outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_TEXT_ONLY;
|
|
9
|
+
static interactivePolicy = 'text';
|
|
9
10
|
#router;
|
|
10
11
|
constructor(plugin, router) {
|
|
11
12
|
super(plugin, 'wechat-mp', []);
|
package/lib/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,sCAAsC,EAAE,MAAM,SAAS,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,OAAO,eAAgB,SAAQ,OAAyB;IAC1D,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAC3E,MAAM,CAAU,yBAAyB,GAAG,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,sCAAsC,EAAE,MAAM,SAAS,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,OAAO,eAAgB,SAAQ,OAAyB;IAC1D,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAC3E,MAAM,CAAU,yBAAyB,GAAG,sCAAsC,CAAC;IACnF,MAAM,CAAU,iBAAiB,GAAG,MAAe,CAAC;IAElD,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"}
|
package/lib/endpoint.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,EAKO,MAAM,SAAS,CAAC;AACtC,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;AAmBpD,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;IA2ChE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE;IAgEhE,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BnD,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/endpoint.js
CHANGED
|
@@ -6,9 +6,10 @@ 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, hasOutbound, runInboundMessage, truncatePreview, } from 'zhin.js';
|
|
9
|
+
import { formatCompact, Message, segment, hasOutbound, runInboundMessage, truncatePreview, expandInteractiveSegmentsInContent, } from 'zhin.js';
|
|
10
10
|
import { registerFetchRoute } from "@zhin.js/host-router/router";
|
|
11
11
|
import { getPassiveReplyCapture, recordPassiveReplyText, runWithPassiveReplyCapture, } from "./passive-reply.js";
|
|
12
|
+
import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
|
|
12
13
|
function queryParam(value) {
|
|
13
14
|
if (typeof value === "string")
|
|
14
15
|
return value;
|
|
@@ -60,8 +61,8 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
60
61
|
this.setupRoutes();
|
|
61
62
|
// 定期刷新access_token
|
|
62
63
|
this.startTokenRefreshTimer();
|
|
63
|
-
this.logger.
|
|
64
|
-
this.logger.
|
|
64
|
+
this.logger.debug(formatCompact({ endpoint: this.$config.name }));
|
|
65
|
+
this.logger.debug(formatCompact({ op: "webhook", path: this.$config.path }));
|
|
65
66
|
this.$connected = true;
|
|
66
67
|
}
|
|
67
68
|
catch (error) {
|
|
@@ -75,7 +76,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
75
76
|
this.tokenRefreshTimer = undefined;
|
|
76
77
|
}
|
|
77
78
|
this.$connected = false;
|
|
78
|
-
this.logger.
|
|
79
|
+
this.logger.debug(formatCompact({ op: "disconnect", endpoint: this.$config.name }));
|
|
79
80
|
}
|
|
80
81
|
handleVerification(ctx) {
|
|
81
82
|
const signature = queryParam(ctx.query.signature);
|
|
@@ -91,7 +92,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
91
92
|
? { signature: msgSignature, timestamp, nonce, echostr }
|
|
92
93
|
: { signature, timestamp, nonce };
|
|
93
94
|
const signFields = msgSignature ? 4 : 3;
|
|
94
|
-
this.logger.
|
|
95
|
+
this.logger.debug(formatCompact({
|
|
95
96
|
op: "verify",
|
|
96
97
|
stage: "recv",
|
|
97
98
|
path: ctx.path,
|
|
@@ -132,7 +133,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
132
133
|
ctx.body = "Forbidden";
|
|
133
134
|
return;
|
|
134
135
|
}
|
|
135
|
-
this.logger.
|
|
136
|
+
this.logger.debug(formatCompact({
|
|
136
137
|
op: "verify",
|
|
137
138
|
stage: "sign",
|
|
138
139
|
ok: true,
|
|
@@ -143,7 +144,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
143
144
|
if (secureMode && echostr && this.isEncryptedEchostr(echostr)) {
|
|
144
145
|
try {
|
|
145
146
|
body = this.decryptEchostr(echostr);
|
|
146
|
-
this.logger.
|
|
147
|
+
this.logger.debug(formatCompact({
|
|
147
148
|
op: "verify",
|
|
148
149
|
stage: "decrypt",
|
|
149
150
|
ok: true,
|
|
@@ -165,7 +166,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
165
166
|
}
|
|
166
167
|
}
|
|
167
168
|
else if (secureMode && echostr) {
|
|
168
|
-
this.logger.
|
|
169
|
+
this.logger.debug(formatCompact({
|
|
169
170
|
op: "verify",
|
|
170
171
|
stage: "decrypt",
|
|
171
172
|
ok: true,
|
|
@@ -173,7 +174,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
173
174
|
plainLen: body.length,
|
|
174
175
|
}));
|
|
175
176
|
}
|
|
176
|
-
this.logger.
|
|
177
|
+
this.logger.debug(formatCompact({
|
|
177
178
|
op: "verify",
|
|
178
179
|
stage: "done",
|
|
179
180
|
ok: true,
|
|
@@ -208,7 +209,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
208
209
|
const wechatMessage = await this.parseXMLMessage(xmlString);
|
|
209
210
|
if (wechatMessage) {
|
|
210
211
|
const message = this.$formatMessage(wechatMessage);
|
|
211
|
-
this.logger.
|
|
212
|
+
this.logger.debug(formatCompact({
|
|
212
213
|
recv: `private(${message.$channel.id})`,
|
|
213
214
|
endpoint: message.$endpoint,
|
|
214
215
|
preview: truncatePreview(segment.raw(message.$content)),
|
|
@@ -234,7 +235,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
234
235
|
ctx.set("Content-Type", "text/xml");
|
|
235
236
|
ctx.body = replyXML || "success";
|
|
236
237
|
if (replyXML) {
|
|
237
|
-
this.logger.
|
|
238
|
+
this.logger.debug(formatCompact({
|
|
238
239
|
op: "passive_reply",
|
|
239
240
|
stage: "sent",
|
|
240
241
|
encrypted: encryptReply,
|
|
@@ -282,7 +283,8 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
282
283
|
const channelType = 'private'; // 公众号消息都是私聊
|
|
283
284
|
const channelId = wechatMsg.FromUserName;
|
|
284
285
|
// 解析消息内容
|
|
285
|
-
const
|
|
286
|
+
const wire = WeChatMPEndpoint.parseMessageContent(wechatMsg);
|
|
287
|
+
const content = toCanonicalSegments(wire);
|
|
286
288
|
const base = {
|
|
287
289
|
$id: wechatMsg.MsgId || `${wechatMsg.CreateTime}`,
|
|
288
290
|
$adapter: 'wechat-mp',
|
|
@@ -370,14 +372,17 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
370
372
|
return segments.length > 0 ? segments : [segment.text('(空消息)')];
|
|
371
373
|
}
|
|
372
374
|
async $sendMessage(options) {
|
|
375
|
+
const canonical = expandInteractiveSegmentsInContent(options.content);
|
|
376
|
+
const wire = fromCanonicalSegments((Array.isArray(canonical) ? canonical : [canonical]).map((s) => typeof s === 'string' ? { type: 'text', data: { text: s } } : s));
|
|
377
|
+
const outbound = { ...options, content: wire };
|
|
373
378
|
if (getPassiveReplyCapture()) {
|
|
374
|
-
const text = this.extractSendText(
|
|
379
|
+
const text = this.extractSendText(outbound);
|
|
375
380
|
recordPassiveReplyText(text);
|
|
376
381
|
return `passive_${Date.now()}`;
|
|
377
382
|
}
|
|
378
383
|
if (!this.usesPassiveReply()) {
|
|
379
384
|
try {
|
|
380
|
-
return await this.sendCustomerServiceMessage(
|
|
385
|
+
return await this.sendCustomerServiceMessage(outbound);
|
|
381
386
|
}
|
|
382
387
|
catch (error) {
|
|
383
388
|
this.logger.error("Failed to send WeChat message:", error);
|
|
@@ -511,7 +516,7 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
511
516
|
}));
|
|
512
517
|
return "";
|
|
513
518
|
}
|
|
514
|
-
this.logger.
|
|
519
|
+
this.logger.debug(formatCompact({
|
|
515
520
|
op: "passive_reply",
|
|
516
521
|
ok: true,
|
|
517
522
|
plainLen: text.length,
|
|
@@ -523,13 +528,13 @@ export class WeChatMPEndpoint extends EventEmitter {
|
|
|
523
528
|
if (wechatMsg.MsgType === 'event') {
|
|
524
529
|
switch (wechatMsg.Event) {
|
|
525
530
|
case 'subscribe':
|
|
526
|
-
this.logger.
|
|
531
|
+
this.logger.debug(formatCompact({ op: "subscribe", user: wechatMsg.FromUserName, scene: wechatMsg.EventKey }));
|
|
527
532
|
return this.buildTextReply(wechatMsg, '感谢关注!');
|
|
528
533
|
case 'unsubscribe':
|
|
529
|
-
this.logger.
|
|
534
|
+
this.logger.debug(formatCompact({ op: "unsubscribe", user: wechatMsg.FromUserName }));
|
|
530
535
|
return '';
|
|
531
536
|
case 'SCAN':
|
|
532
|
-
this.logger.
|
|
537
|
+
this.logger.debug(formatCompact({ op: "scan", user: wechatMsg.FromUserName, scene: wechatMsg.EventKey }));
|
|
533
538
|
return '';
|
|
534
539
|
case 'LOCATION':
|
|
535
540
|
this.logger.debug(`User location: ${wechatMsg.FromUserName}, lat=${wechatMsg.Location_X}, lng=${wechatMsg.Location_Y}`);
|
package/lib/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segment-mapper.d.ts","sourceRoot":"","sources":["../src/segment-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segment-mapper.js","sourceRoot":"","sources":["../src/segment-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-wechat-mp",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Zhin.js adapter for WeChat Official Account (微信公众号)",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
"form-data": "^4.0.6"
|
|
12
12
|
},
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@zhin.js/host-router": "2.0.
|
|
15
|
-
"zhin.js": "4.1.
|
|
14
|
+
"@zhin.js/host-router": "2.0.3",
|
|
15
|
+
"zhin.js": "4.1.2"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/koa": "^3.0.3",
|
|
19
|
-
"@types/node": "^
|
|
19
|
+
"@types/node": "^26.1.0",
|
|
20
20
|
"@types/xml2js": "^0.4.14",
|
|
21
21
|
"typescript": "^6.0.3",
|
|
22
|
-
"@zhin.js/host-router": "2.0.
|
|
23
|
-
"zhin.js": "4.1.
|
|
22
|
+
"@zhin.js/host-router": "2.0.3",
|
|
23
|
+
"zhin.js": "4.1.2"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
26
|
"zhin",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"files": [
|
|
49
49
|
"src",
|
|
50
50
|
"lib",
|
|
51
|
-
"
|
|
51
|
+
"agent",
|
|
52
52
|
"README.md",
|
|
53
53
|
"CHANGELOG.md"
|
|
54
54
|
],
|
package/src/adapter.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { WeChatMPConfig } from "./types.js";
|
|
|
9
9
|
export class WeChatMPAdapter extends Adapter<WeChatMPEndpoint> {
|
|
10
10
|
static override readonly capabilities = ['inbound', 'outbound'] as const;
|
|
11
11
|
static override outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_TEXT_ONLY;
|
|
12
|
+
static override interactivePolicy = 'text' as const;
|
|
12
13
|
|
|
13
14
|
#router: Router;
|
|
14
15
|
|
package/src/endpoint.ts
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
hasOutbound,
|
|
18
18
|
runInboundMessage,
|
|
19
19
|
truncatePreview,
|
|
20
|
+
expandInteractiveSegmentsInContent,
|
|
20
21
|
type MessageBase,} from 'zhin.js';
|
|
21
22
|
import { registerFetchRoute, type Router, type RouterContext } from "@zhin.js/host-router/router";
|
|
22
23
|
import type { WeChatMPConfig, WeChatMessage, WeChatAPIResponse, TokenResponse } from "./types.js";
|
|
@@ -26,6 +27,7 @@ import {
|
|
|
26
27
|
recordPassiveReplyText,
|
|
27
28
|
runWithPassiveReplyCapture,
|
|
28
29
|
} from "./passive-reply.js";
|
|
30
|
+
import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
|
|
29
31
|
|
|
30
32
|
function queryParam(value: unknown): string {
|
|
31
33
|
if (typeof value === "string") return value;
|
|
@@ -88,8 +90,8 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
88
90
|
// 定期刷新access_token
|
|
89
91
|
this.startTokenRefreshTimer();
|
|
90
92
|
|
|
91
|
-
this.logger.
|
|
92
|
-
this.logger.
|
|
93
|
+
this.logger.debug(formatCompact({ endpoint: this.$config.name }));
|
|
94
|
+
this.logger.debug(formatCompact( { op: "webhook", path: this.$config.path }));
|
|
93
95
|
this.$connected= true;
|
|
94
96
|
} catch (error) {
|
|
95
97
|
this.logger.error('Failed to connect WeChat MP bot:', error);
|
|
@@ -103,7 +105,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
103
105
|
this.tokenRefreshTimer = undefined;
|
|
104
106
|
}
|
|
105
107
|
this.$connected = false;
|
|
106
|
-
this.logger.
|
|
108
|
+
this.logger.debug(formatCompact( { op: "disconnect", endpoint: this.$config.name }));
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
private handleVerification(ctx: RouterContext): void {
|
|
@@ -122,7 +124,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
122
124
|
: { signature, timestamp, nonce };
|
|
123
125
|
const signFields = msgSignature ? 4 : 3;
|
|
124
126
|
|
|
125
|
-
this.logger.
|
|
127
|
+
this.logger.debug(formatCompact({
|
|
126
128
|
op: "verify",
|
|
127
129
|
stage: "recv",
|
|
128
130
|
path: ctx.path,
|
|
@@ -166,7 +168,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
166
168
|
return;
|
|
167
169
|
}
|
|
168
170
|
|
|
169
|
-
this.logger.
|
|
171
|
+
this.logger.debug(formatCompact({
|
|
170
172
|
op: "verify",
|
|
171
173
|
stage: "sign",
|
|
172
174
|
ok: true,
|
|
@@ -178,7 +180,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
178
180
|
if (secureMode && echostr && this.isEncryptedEchostr(echostr)) {
|
|
179
181
|
try {
|
|
180
182
|
body = this.decryptEchostr(echostr);
|
|
181
|
-
this.logger.
|
|
183
|
+
this.logger.debug(formatCompact({
|
|
182
184
|
op: "verify",
|
|
183
185
|
stage: "decrypt",
|
|
184
186
|
ok: true,
|
|
@@ -198,7 +200,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
198
200
|
return;
|
|
199
201
|
}
|
|
200
202
|
} else if (secureMode && echostr) {
|
|
201
|
-
this.logger.
|
|
203
|
+
this.logger.debug(formatCompact({
|
|
202
204
|
op: "verify",
|
|
203
205
|
stage: "decrypt",
|
|
204
206
|
ok: true,
|
|
@@ -207,7 +209,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
207
209
|
}));
|
|
208
210
|
}
|
|
209
211
|
|
|
210
|
-
this.logger.
|
|
212
|
+
this.logger.debug(formatCompact({
|
|
211
213
|
op: "verify",
|
|
212
214
|
stage: "done",
|
|
213
215
|
ok: true,
|
|
@@ -253,7 +255,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
253
255
|
|
|
254
256
|
if (wechatMessage) {
|
|
255
257
|
const message = this.$formatMessage(wechatMessage);
|
|
256
|
-
this.logger.
|
|
258
|
+
this.logger.debug(formatCompact({
|
|
257
259
|
recv: `private(${message.$channel.id})`,
|
|
258
260
|
endpoint: message.$endpoint,
|
|
259
261
|
preview: truncatePreview(segment.raw(message.$content)),
|
|
@@ -284,7 +286,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
284
286
|
ctx.set("Content-Type", "text/xml");
|
|
285
287
|
ctx.body = replyXML || "success";
|
|
286
288
|
if (replyXML) {
|
|
287
|
-
this.logger.
|
|
289
|
+
this.logger.debug(formatCompact({
|
|
288
290
|
op: "passive_reply",
|
|
289
291
|
stage: "sent",
|
|
290
292
|
encrypted: encryptReply,
|
|
@@ -342,7 +344,8 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
342
344
|
const channelId = wechatMsg.FromUserName;
|
|
343
345
|
|
|
344
346
|
// 解析消息内容
|
|
345
|
-
const
|
|
347
|
+
const wire = WeChatMPEndpoint.parseMessageContent(wechatMsg);
|
|
348
|
+
const content = toCanonicalSegments(wire);
|
|
346
349
|
|
|
347
350
|
const base: MessageBase = {
|
|
348
351
|
$id: wechatMsg.MsgId || `${wechatMsg.CreateTime}`,
|
|
@@ -444,15 +447,22 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
444
447
|
}
|
|
445
448
|
|
|
446
449
|
async $sendMessage(options: SendOptions): Promise<string> {
|
|
450
|
+
const canonical = expandInteractiveSegmentsInContent(options.content);
|
|
451
|
+
const wire = fromCanonicalSegments(
|
|
452
|
+
(Array.isArray(canonical) ? canonical : [canonical]).map((s) =>
|
|
453
|
+
typeof s === 'string' ? { type: 'text' as const, data: { text: s } } : s,
|
|
454
|
+
),
|
|
455
|
+
);
|
|
456
|
+
const outbound = { ...options, content: wire };
|
|
447
457
|
if (getPassiveReplyCapture()) {
|
|
448
|
-
const text = this.extractSendText(
|
|
458
|
+
const text = this.extractSendText(outbound);
|
|
449
459
|
recordPassiveReplyText(text);
|
|
450
460
|
return `passive_${Date.now()}`;
|
|
451
461
|
}
|
|
452
462
|
|
|
453
463
|
if (!this.usesPassiveReply()) {
|
|
454
464
|
try {
|
|
455
|
-
return await this.sendCustomerServiceMessage(
|
|
465
|
+
return await this.sendCustomerServiceMessage(outbound);
|
|
456
466
|
} catch (error) {
|
|
457
467
|
this.logger.error("Failed to send WeChat message:", error);
|
|
458
468
|
throw error;
|
|
@@ -612,7 +622,7 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
612
622
|
return "";
|
|
613
623
|
}
|
|
614
624
|
|
|
615
|
-
this.logger.
|
|
625
|
+
this.logger.debug(formatCompact({
|
|
616
626
|
op: "passive_reply",
|
|
617
627
|
ok: true,
|
|
618
628
|
plainLen: text.length,
|
|
@@ -625,13 +635,13 @@ export class WeChatMPEndpoint extends EventEmitter implements Endpoint<WeChatMPC
|
|
|
625
635
|
if (wechatMsg.MsgType === 'event') {
|
|
626
636
|
switch (wechatMsg.Event) {
|
|
627
637
|
case 'subscribe':
|
|
628
|
-
this.logger.
|
|
638
|
+
this.logger.debug(formatCompact( { op: "subscribe", user: wechatMsg.FromUserName, scene: wechatMsg.EventKey }));
|
|
629
639
|
return this.buildTextReply(wechatMsg, '感谢关注!');
|
|
630
640
|
case 'unsubscribe':
|
|
631
|
-
this.logger.
|
|
641
|
+
this.logger.debug(formatCompact( { op: "unsubscribe", user: wechatMsg.FromUserName }));
|
|
632
642
|
return '';
|
|
633
643
|
case 'SCAN':
|
|
634
|
-
this.logger.
|
|
644
|
+
this.logger.debug(formatCompact( { op: "scan", user: wechatMsg.FromUserName, scene: wechatMsg.EventKey }));
|
|
635
645
|
return '';
|
|
636
646
|
case 'LOCATION':
|
|
637
647
|
this.logger.debug(`User location: ${wechatMsg.FromUserName}, lat=${wechatMsg.Location_X}, lng=${wechatMsg.Location_Y}`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { toCanonicalSegments, fromCanonicalSegments } from 'zhin.js';
|
|
File without changes
|