@zhin.js/adapter-wecom 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/lib/side-event-dispatch.js +15 -18
- package/package.json +16 -16
- package/src/side-event-dispatch.ts +15 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @zhin.js/adapter-wecom
|
|
2
2
|
|
|
3
|
+
## 1.1.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 43eda99: Unify Notice and Request payloads with their public types and runtime exports. Use camelCase fields, preserve native data under metadata, and bind canonical endpoint identity and request actions to the held generation. Remove legacy data aliases and from factories.
|
|
8
|
+
|
|
9
|
+
Keep login and lifecycle signals as independent SystemEvent payloads on system.receive, without chat conversation fields or user interaction. Update built-in adapter projections and authoring guidance.
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [43eda99]
|
|
12
|
+
- Updated dependencies [0de4836]
|
|
13
|
+
- @zhin.js/core@1.1.39
|
|
14
|
+
- @zhin.js/adapter@1.1.15
|
|
15
|
+
|
|
16
|
+
## 1.1.3
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies [5b5d270]
|
|
21
|
+
- Updated dependencies [36c2eb9]
|
|
22
|
+
- @zhin.js/im-contract@1.1.2
|
|
23
|
+
- @zhin.js/core@1.1.38
|
|
24
|
+
- @zhin.js/adapter@1.1.15
|
|
25
|
+
- @zhin.js/host-http@1.1.2
|
|
26
|
+
- @zhin.js/agent-feature@1.1.2
|
|
27
|
+
- @zhin.js/feature-kit@1.1.2
|
|
28
|
+
- @zhin.js/skill@1.1.2
|
|
29
|
+
- @zhin.js/tool@1.1.2
|
|
30
|
+
|
|
3
31
|
## 1.1.2
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildNotice, buildSystem, senderFromId } from '@zhin.js/core';
|
|
1
|
+
import { composeSideEventName, sideEventConversation, buildNotice, buildSystem, senderFromId } from '@zhin.js/core';
|
|
2
2
|
import { formatCompact } from '@zhin.js/logger';
|
|
3
3
|
import { resolveChatType } from './protocol.js';
|
|
4
4
|
function mapWecomEventParts(eventName) {
|
|
@@ -19,14 +19,12 @@ export function receiveWecomSideEvent(emit, endpointKey, configId, msg, logger)
|
|
|
19
19
|
const eventName = msg.Event ?? 'unknown';
|
|
20
20
|
if (eventName === 'enter_agent') {
|
|
21
21
|
void emit('system.receive', buildSystem(msg, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
$sub_type: 'enter_agent',
|
|
29
|
-
$timestamp: msg.CreateTime ?? Date.now(),
|
|
22
|
+
id: `wecom:enter_agent:${msg.FromUserName}:${msg.CreateTime ?? Date.now()}`,
|
|
23
|
+
clientAdapter: 'wecom',
|
|
24
|
+
endpointId: configId,
|
|
25
|
+
type: 'system',
|
|
26
|
+
name: composeSideEventName('system', 'wecom', 'enter_agent'),
|
|
27
|
+
timestamp: Number.isFinite(msg.CreateTime) && msg.CreateTime > 0 ? msg.CreateTime * 1000 : Date.now(),
|
|
30
28
|
})).catch((err) => {
|
|
31
29
|
logger.warn(formatCompact({
|
|
32
30
|
op: 'wecom_system_side_event_failed',
|
|
@@ -42,15 +40,14 @@ export function receiveWecomSideEvent(emit, endpointKey, configId, msg, logger)
|
|
|
42
40
|
return false;
|
|
43
41
|
const sceneType = resolveChatType(msg.FromUserName);
|
|
44
42
|
void emit('notice.receive', buildNotice(msg, {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
$timestamp: msg.CreateTime ?? Date.now(),
|
|
43
|
+
id: `wecom:${eventName}:${msg.FromUserName}:${msg.CreateTime ?? Date.now()}`,
|
|
44
|
+
clientAdapter: 'wecom',
|
|
45
|
+
endpointId: configId,
|
|
46
|
+
type: 'notice',
|
|
47
|
+
conversation: sideEventConversation(parts.scene_type === 'friend' ? parts.scene_type : sceneType, msg.FromUserName),
|
|
48
|
+
name: composeSideEventName('notice', parts.scene_type === 'friend' ? parts.scene_type : sceneType, parts.sub_type),
|
|
49
|
+
actor: senderFromId(msg.FromUserName),
|
|
50
|
+
timestamp: Number.isFinite(msg.CreateTime) && msg.CreateTime > 0 ? msg.CreateTime * 1000 : Date.now(),
|
|
54
51
|
})).catch((err) => {
|
|
55
52
|
logger.warn(formatCompact({
|
|
56
53
|
op: 'wecom_side_event_failed',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-wecom",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "Zhin.js WeCom (企业微信) adapter for Plugin Runtime (HTTP webhook)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -34,24 +34,24 @@
|
|
|
34
34
|
"directory": "plugins/adapters/wecom"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@zhin.js/adapter": "1.1.
|
|
38
|
-
"@zhin.js/agent-feature": "1.1.
|
|
39
|
-
"@zhin.js/core": "1.1.
|
|
40
|
-
"@zhin.js/feature-kit": "1.1.
|
|
41
|
-
"@zhin.js/host-http": "1.1.
|
|
42
|
-
"@zhin.js/im-contract": "1.1.
|
|
37
|
+
"@zhin.js/adapter": "1.1.15",
|
|
38
|
+
"@zhin.js/agent-feature": "1.1.2",
|
|
39
|
+
"@zhin.js/core": "1.1.39",
|
|
40
|
+
"@zhin.js/feature-kit": "1.1.2",
|
|
41
|
+
"@zhin.js/host-http": "1.1.2",
|
|
42
|
+
"@zhin.js/im-contract": "1.1.2",
|
|
43
43
|
"@zhin.js/logger": "1.1.1",
|
|
44
|
-
"@zhin.js/skill": "1.1.
|
|
45
|
-
"@zhin.js/tool": "1.1.
|
|
44
|
+
"@zhin.js/skill": "1.1.2",
|
|
45
|
+
"@zhin.js/tool": "1.1.2"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"zod": "^4.0.0",
|
|
49
|
-
"@zhin.js/adapter": "^1.1.
|
|
50
|
-
"@zhin.js/command": "^1.1.
|
|
51
|
-
"@zhin.js/core": "^1.1.
|
|
52
|
-
"@zhin.js/host-http": "^1.1.
|
|
53
|
-
"@zhin.js/permission": "^1.1.
|
|
54
|
-
"zhin.js": "^1.1.
|
|
49
|
+
"@zhin.js/adapter": "^1.1.15",
|
|
50
|
+
"@zhin.js/command": "^1.1.3",
|
|
51
|
+
"@zhin.js/core": "^1.1.39",
|
|
52
|
+
"@zhin.js/host-http": "^1.1.2",
|
|
53
|
+
"@zhin.js/permission": "^1.1.3",
|
|
54
|
+
"zhin.js": "^1.1.4"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"@zhin.js/command": {
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"typescript": "^6.0.3",
|
|
70
70
|
"vitest": "^4.1.10",
|
|
71
71
|
"zod": "^4.4.3",
|
|
72
|
-
"zhin.js": "1.1.
|
|
72
|
+
"zhin.js": "1.1.4"
|
|
73
73
|
},
|
|
74
74
|
"files": [
|
|
75
75
|
"adapters",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildNotice, buildSystem, senderFromId } from '@zhin.js/core';
|
|
1
|
+
import { composeSideEventName, sideEventConversation, buildNotice, buildSystem, senderFromId } from '@zhin.js/core';
|
|
2
2
|
import type { EndpointEventEmitter } from 'zhin.js/adapter';
|
|
3
3
|
import { formatCompact, type getAdapterLogger } from '@zhin.js/logger';
|
|
4
4
|
import { resolveChatType, type WecomMessage } from './protocol.js';
|
|
@@ -27,14 +27,12 @@ export function receiveWecomSideEvent(
|
|
|
27
27
|
const eventName = msg.Event ?? 'unknown';
|
|
28
28
|
if (eventName === 'enter_agent') {
|
|
29
29
|
void emit('system.receive', buildSystem(msg, {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
$sub_type: 'enter_agent',
|
|
37
|
-
$timestamp: msg.CreateTime ?? Date.now(),
|
|
30
|
+
id: `wecom:enter_agent:${msg.FromUserName}:${msg.CreateTime ?? Date.now()}`,
|
|
31
|
+
clientAdapter: 'wecom',
|
|
32
|
+
endpointId: configId,
|
|
33
|
+
type: 'system',
|
|
34
|
+
name: composeSideEventName('system', 'wecom', 'enter_agent'),
|
|
35
|
+
timestamp: Number.isFinite(msg.CreateTime) && msg.CreateTime > 0 ? msg.CreateTime * 1000 : Date.now(),
|
|
38
36
|
})).catch((err) => {
|
|
39
37
|
logger.warn(formatCompact({
|
|
40
38
|
op: 'wecom_system_side_event_failed',
|
|
@@ -49,15 +47,14 @@ export function receiveWecomSideEvent(
|
|
|
49
47
|
if (!parts) return false;
|
|
50
48
|
const sceneType = resolveChatType(msg.FromUserName);
|
|
51
49
|
void emit('notice.receive', buildNotice(msg, {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
$timestamp: msg.CreateTime ?? Date.now(),
|
|
50
|
+
id: `wecom:${eventName}:${msg.FromUserName}:${msg.CreateTime ?? Date.now()}`,
|
|
51
|
+
clientAdapter: 'wecom',
|
|
52
|
+
endpointId: configId,
|
|
53
|
+
type: 'notice',
|
|
54
|
+
conversation: sideEventConversation(parts.scene_type === 'friend' ? parts.scene_type : sceneType, msg.FromUserName),
|
|
55
|
+
name: composeSideEventName('notice', parts.scene_type === 'friend' ? parts.scene_type : sceneType, parts.sub_type),
|
|
56
|
+
actor: senderFromId(msg.FromUserName),
|
|
57
|
+
timestamp: Number.isFinite(msg.CreateTime) && msg.CreateTime > 0 ? msg.CreateTime * 1000 : Date.now(),
|
|
61
58
|
})).catch((err) => {
|
|
62
59
|
logger.warn(formatCompact({
|
|
63
60
|
op: 'wecom_side_event_failed',
|