@zhin.js/adapter-wecom 2.0.2 → 2.0.3
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 +33 -0
- package/README.md +79 -226
- package/adapters/wecom.ts +27 -0
- package/agent/tools/get_dept_users.ts +2 -2
- package/agent/tools/get_user.ts +2 -2
- package/agent/tools/list_departments.ts +2 -2
- package/agent/tools/send_text.ts +2 -2
- package/lib/endpoint.d.ts +46 -0
- package/lib/endpoint.js +205 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +5 -0
- package/lib/platform-permit.d.ts +15 -0
- package/lib/{src/platform-permit.js → platform-permit.js} +1 -2
- package/lib/protocol.d.ts +96 -0
- package/lib/protocol.js +252 -0
- package/lib/webhook.d.ts +14 -0
- package/lib/webhook.js +86 -0
- package/lib/wecom-agent-deps.d.ts +17 -0
- package/lib/wecom-agent-deps.js +30 -0
- package/package.json +45 -20
- package/plugin.ts +12 -0
- package/schema.json +24 -0
- package/src/endpoint.ts +196 -584
- package/src/index.ts +48 -53
- package/src/platform-permit.ts +1 -1
- package/src/protocol.ts +362 -0
- package/src/webhook.ts +130 -0
- package/src/wecom-agent-deps.ts +37 -9
- package/lib/agent/tools/get_dept_users.js +0 -18
- package/lib/agent/tools/get_dept_users.js.map +0 -1
- package/lib/agent/tools/get_user.js +0 -17
- package/lib/agent/tools/get_user.js.map +0 -1
- package/lib/agent/tools/list_departments.js +0 -18
- package/lib/agent/tools/list_departments.js.map +0 -1
- package/lib/agent/tools/send_text.js +0 -19
- package/lib/agent/tools/send_text.js.map +0 -1
- package/lib/src/adapter.js +0 -22
- package/lib/src/adapter.js.map +0 -1
- package/lib/src/endpoint.js +0 -602
- package/lib/src/endpoint.js.map +0 -1
- package/lib/src/index.js +0 -41
- package/lib/src/index.js.map +0 -1
- package/lib/src/platform-permit.js.map +0 -1
- package/lib/src/segment-mapper.js +0 -2
- package/lib/src/segment-mapper.js.map +0 -1
- package/lib/src/types.js +0 -5
- package/lib/src/types.js.map +0 -1
- package/lib/src/wecom-agent-deps.js +0 -10
- package/lib/src/wecom-agent-deps.js.map +0 -1
- package/plugin.yml +0 -3
- package/src/adapter.ts +0 -28
- package/src/segment-mapper.ts +0 -1
- package/src/types.ts +0 -51
package/lib/src/index.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 企业微信适配器入口:类型扩展、导出、注册
|
|
3
|
-
*/
|
|
4
|
-
import { usePlugin } from 'zhin.js';
|
|
5
|
-
import { WecomAdapter } from './adapter.js';
|
|
6
|
-
import { registerWecomPlatformPermitChecker, } from './platform-permit.js';
|
|
7
|
-
import { setWecomAgentDeps } from './wecom-agent-deps.js';
|
|
8
|
-
export * from './types.js';
|
|
9
|
-
export { WecomEndpoint } from './endpoint.js';
|
|
10
|
-
export { WecomAdapter } from './adapter.js';
|
|
11
|
-
const plugin = usePlugin();
|
|
12
|
-
const { provide, useContext } = plugin;
|
|
13
|
-
useContext('router', (router) => {
|
|
14
|
-
provide({
|
|
15
|
-
name: 'wecom',
|
|
16
|
-
description: 'WeCom (企业微信) Endpoint Adapter',
|
|
17
|
-
mounted: async (p) => {
|
|
18
|
-
const adapter = new WecomAdapter(p, router);
|
|
19
|
-
await adapter.start();
|
|
20
|
-
return adapter;
|
|
21
|
-
},
|
|
22
|
-
dispose: async (adapter) => {
|
|
23
|
-
await adapter.stop();
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
useContext('tool', 'wecom', (toolService, wecom) => {
|
|
28
|
-
const disposers = [];
|
|
29
|
-
disposers.push(registerWecomPlatformPermitChecker());
|
|
30
|
-
setWecomAgentDeps({
|
|
31
|
-
getEndpoint: (endpointId) => {
|
|
32
|
-
const endpoint = wecom.endpoints.get(endpointId);
|
|
33
|
-
if (!endpoint)
|
|
34
|
-
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
35
|
-
return endpoint;
|
|
36
|
-
},
|
|
37
|
-
getAdapter: () => wecom,
|
|
38
|
-
});
|
|
39
|
-
return () => disposers.forEach(d => d());
|
|
40
|
-
});
|
|
41
|
-
//# sourceMappingURL=index.js.map
|
package/lib/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAiC,MAAM,SAAS,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAa1D,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,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,OAAO;QACb,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAqB,EAAE,EAAE;YACvC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,WAAwB,EAAE,KAAmB,EAAE,EAAE;IAC5E,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,SAAS,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC;IACrD,iBAAiB,CAAC;QAChB,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE;YAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;YAC7D,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;KACxB,CAAC,CAAC;IACH,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform-permit.js","sourceRoot":"","sources":["../../src/platform-permit.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,6BAA6B,EAAgB,MAAM,SAAS,CAAC;AAEtE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,OAAO,IAAI,IAAI,GAAG,CAAC;AACxC,CAAC;AAED,MAAM,gBAAgB,GAA2B;IAC/C,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,OAAO,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAG7C;IACC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,OAAqB;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAoD,CAAC;IAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY;YACf,OAAO,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/C,KAAK,YAAY;YACf,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QACxF;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC;IAChD,OAAO,6BAA6B,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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/lib/src/types.js
DELETED
package/lib/src/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wecom-agent-deps.js","sourceRoot":"","sources":["../../src/wecom-agent-deps.ts"],"names":[],"mappings":"AAQA,IAAI,KAAK,GAA0B,IAAI,CAAC;AAExC,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IACpD,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/plugin.yml
DELETED
package/src/adapter.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 企业微信适配器
|
|
3
|
-
*/
|
|
4
|
-
import { Adapter, Plugin, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL } from 'zhin.js';
|
|
5
|
-
import type { Router } from '@zhin.js/host-router/router';
|
|
6
|
-
import { WecomEndpoint } from './endpoint.js';
|
|
7
|
-
import type { WecomEndpointConfig } from './types.js';
|
|
8
|
-
|
|
9
|
-
export class WecomAdapter extends Adapter<WecomEndpoint> {
|
|
10
|
-
static override readonly capabilities = ['inbound', 'outbound'] as const;
|
|
11
|
-
static override outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
|
|
12
|
-
static override interactivePolicy = 'text' as const;
|
|
13
|
-
|
|
14
|
-
#router: Router;
|
|
15
|
-
|
|
16
|
-
constructor(plugin: Plugin, router: Router) {
|
|
17
|
-
super(plugin, 'wecom', []);
|
|
18
|
-
this.#router = router;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
createEndpoint(config: WecomEndpointConfig): WecomEndpoint {
|
|
22
|
-
return new WecomEndpoint(this, this.#router, config);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async start(): Promise<void> {
|
|
26
|
-
await super.start();
|
|
27
|
-
}
|
|
28
|
-
}
|
package/src/segment-mapper.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { toCanonicalSegments, fromCanonicalSegments } from 'zhin.js';
|
package/src/types.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 企业微信适配器类型定义
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export interface WecomEndpointConfig {
|
|
6
|
-
context: 'wecom'
|
|
7
|
-
name: string
|
|
8
|
-
corpId: string
|
|
9
|
-
agentSecret: string // 应用 Secret
|
|
10
|
-
token: string // 用于签名验证
|
|
11
|
-
encodingAESKey: string // 用于消息加解密
|
|
12
|
-
webhookPath?: string // 默认 '/wecom/callback'
|
|
13
|
-
apiBaseUrl?: string // 默认 'https://qyapi.weixin.qq.com'
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface WecomMessage {
|
|
17
|
-
ToUserName: string
|
|
18
|
-
FromUserName: string
|
|
19
|
-
CreateTime: number
|
|
20
|
-
MsgType: 'text' | 'image' | 'voice' | 'video' | 'shortvideo' | 'location' | 'link' | 'event'
|
|
21
|
-
Content?: string
|
|
22
|
-
MsgId?: string
|
|
23
|
-
PicUrl?: string
|
|
24
|
-
MediaId?: string
|
|
25
|
-
ThumbMediaId?: string
|
|
26
|
-
Format?: string
|
|
27
|
-
Recognition?: string
|
|
28
|
-
Location_X?: string
|
|
29
|
-
Location_Y?: string
|
|
30
|
-
Scale?: string
|
|
31
|
-
Label?: string
|
|
32
|
-
Title?: string
|
|
33
|
-
Description?: string
|
|
34
|
-
Url?: string
|
|
35
|
-
Event?: string
|
|
36
|
-
EventKey?: string
|
|
37
|
-
AgentID?: string
|
|
38
|
-
[key: string]: unknown
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface AccessToken {
|
|
42
|
-
access_token: string
|
|
43
|
-
expires_in: number
|
|
44
|
-
timestamp: number
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export interface WecomApiResponse {
|
|
48
|
-
errcode: number
|
|
49
|
-
errmsg?: string
|
|
50
|
-
[key: string]: unknown
|
|
51
|
-
}
|