@zhin.js/adapter-dingtalk 2.0.0 → 3.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-dingtalk
2
2
 
3
+ ## 3.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - zhin.js@3.0.0
8
+ - @zhin.js/host-router@2.0.0
9
+
10
+ ## 2.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
  ## 2.0.0
4
22
 
5
23
  ### Patch Changes
package/README.md CHANGED
@@ -13,9 +13,9 @@ pnpm add @zhin.js/adapter-dingtalk
13
13
  ### 基础配置
14
14
 
15
15
  ```typescript
16
- import { DingTalkBotConfig } from '@zhin.js/adapter-dingtalk';
16
+ import { DingTalkEndpointConfig } from '@zhin.js/adapter-dingtalk';
17
17
 
18
- const config: DingTalkBotConfig = {
18
+ const config: DingTalkEndpointConfig = {
19
19
  context: 'dingtalk',
20
20
  name: 'my-dingtalk-bot',
21
21
  appKey: 'YOUR_APP_KEY', // 钉钉应用 AppKey
@@ -28,7 +28,7 @@ const config: DingTalkBotConfig = {
28
28
  ### 完整配置
29
29
 
30
30
  ```typescript
31
- const config: DingTalkBotConfig = {
31
+ const config: DingTalkEndpointConfig = {
32
32
  context: 'dingtalk',
33
33
  name: 'my-dingtalk-bot',
34
34
  appKey: 'YOUR_APP_KEY',
@@ -117,7 +117,7 @@ const config: DingTalkBotConfig = {
117
117
  import { defineConfig } from 'zhin.js'
118
118
 
119
119
  export default defineConfig({
120
- bots: [
120
+ endpoints: [
121
121
  {
122
122
  name: 'dingtalk-bot',
123
123
  context: 'dingtalk',
@@ -232,9 +232,9 @@ addCommand(new MessageCommand('info')
232
232
  ### 获取用户信息
233
233
 
234
234
  ```typescript
235
- const bot = app.adapters.get('dingtalk')?.bots.get('dingtalk-bot')
235
+ const endpoint = app.adapters.get('dingtalk')?.endpoints.get('dingtalk-bot')
236
236
  if (bot) {
237
- const userInfo = await bot.getUserInfo('user-id')
237
+ const userInfo = await endpoint.getUserInfo('user-id')
238
238
  console.log(userInfo)
239
239
  }
240
240
  ```
@@ -242,14 +242,14 @@ if (bot) {
242
242
  ### 获取部门用户列表
243
243
 
244
244
  ```typescript
245
- const users = await bot.getDepartmentUsers(1) // 部门 ID
245
+ const users = await endpoint.getDepartmentUsers(1) // 部门 ID
246
246
  console.log(users)
247
247
  ```
248
248
 
249
249
  ### 发送工作通知
250
250
 
251
251
  ```typescript
252
- await bot.sendWorkNotice(
252
+ await endpoint.sendWorkNotice(
253
253
  ['user1', 'user2'], // 用户 ID 列表
254
254
  {
255
255
  msgtype: 'text',
@@ -283,7 +283,7 @@ await bot.sendWorkNotice(
283
283
 
284
284
  ```typescript
285
285
  export default defineConfig({
286
- bots: [{
286
+ endpoints: [{
287
287
  name: 'dingtalk-bot',
288
288
  context: 'dingtalk',
289
289
  appKey: process.env.DINGTALK_APP_KEY!,
package/lib/adapter.d.ts CHANGED
@@ -2,15 +2,16 @@
2
2
  * 钉钉适配器
3
3
  */
4
4
  import { Adapter, Plugin } from "zhin.js";
5
- import { DingTalkBot } from "./bot.js";
6
- import type { DingTalkBotConfig } from "./types.js";
7
- export declare class DingTalkAdapter extends Adapter<DingTalkBot> {
5
+ import { DingTalkEndpoint } from "./endpoint.js";
6
+ import type { DingTalkEndpointConfig } from "./types.js";
7
+ export declare class DingTalkAdapter extends Adapter<DingTalkEndpoint> {
8
8
  #private;
9
+ static readonly capabilities: readonly ["inbound", "outbound"];
9
10
  constructor(plugin: Plugin, router: any);
10
- createBot(config: DingTalkBotConfig): DingTalkBot;
11
- kickMember(botId: string, sceneId: string, userId: string): Promise<boolean>;
12
- setGroupName(botId: string, sceneId: string, name: string): Promise<boolean>;
13
- getGroupInfo(botId: string, sceneId: string): Promise<any>;
11
+ createEndpoint(config: DingTalkEndpointConfig): DingTalkEndpoint;
12
+ kickMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
13
+ setGroupName(endpointId: string, sceneId: string, name: string): Promise<boolean>;
14
+ getGroupInfo(endpointId: string, sceneId: string): Promise<any>;
14
15
  start(): Promise<void>;
15
16
  }
16
17
  //# 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,EACL,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,qBAAa,eAAgB,SAAQ,OAAO,CAAC,WAAW,CAAC;;gBAG3C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAKvC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW;IAI3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMzD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMzD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,qBAAa,eAAgB,SAAQ,OAAO,CAAC,gBAAgB,CAAC;;IAC5D,gBAAyB,YAAY,mCAAoC;gBAI7D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAKvC,cAAc,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB;IAI1D,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM9D,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAM9D,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
package/lib/adapter.js CHANGED
@@ -2,33 +2,34 @@
2
2
  * 钉钉适配器
3
3
  */
4
4
  import { Adapter, } from "zhin.js";
5
- import { DingTalkBot } from "./bot.js";
5
+ import { DingTalkEndpoint } from "./endpoint.js";
6
6
  export class DingTalkAdapter extends Adapter {
7
+ static capabilities = ['inbound', 'outbound'];
7
8
  #router;
8
9
  constructor(plugin, router) {
9
10
  super(plugin, "dingtalk", []);
10
11
  this.#router = router;
11
12
  }
12
- createBot(config) {
13
- return new DingTalkBot(this, this.#router, config);
13
+ createEndpoint(config) {
14
+ return new DingTalkEndpoint(this, this.#router, config);
14
15
  }
15
- async kickMember(botId, sceneId, userId) {
16
- const bot = this.bots.get(botId);
17
- if (!bot)
18
- throw new Error(`Bot ${botId} 不存在`);
19
- return bot.updateChat(sceneId, { del_useridlist: [userId] });
16
+ async kickMember(endpointId, sceneId, userId) {
17
+ const endpoint = this.endpoints.get(endpointId);
18
+ if (!endpoint)
19
+ throw new Error(`Endpoint ${endpointId} 不存在`);
20
+ return endpoint.updateChat(sceneId, { del_useridlist: [userId] });
20
21
  }
21
- async setGroupName(botId, sceneId, name) {
22
- const bot = this.bots.get(botId);
23
- if (!bot)
24
- throw new Error(`Bot ${botId} 不存在`);
25
- return bot.updateChat(sceneId, { name });
22
+ async setGroupName(endpointId, sceneId, name) {
23
+ const endpoint = this.endpoints.get(endpointId);
24
+ if (!endpoint)
25
+ throw new Error(`Endpoint ${endpointId} 不存在`);
26
+ return endpoint.updateChat(sceneId, { name });
26
27
  }
27
- async getGroupInfo(botId, sceneId) {
28
- const bot = this.bots.get(botId);
29
- if (!bot)
30
- throw new Error(`Bot ${botId} 不存在`);
31
- return bot.getChatInfo(sceneId);
28
+ async getGroupInfo(endpointId, sceneId) {
29
+ const endpoint = this.endpoints.get(endpointId);
30
+ if (!endpoint)
31
+ throw new Error(`Endpoint ${endpointId} 不存在`);
32
+ return endpoint.getChatInfo(sceneId);
32
33
  }
33
34
  async start() {
34
35
  await super.start();
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,GAER,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,OAAO,eAAgB,SAAQ,OAAoB;IACvD,OAAO,CAAM;IAEb,YAAY,MAAc,EAAE,MAAW;QACrC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,MAAyB;QACjC,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,MAAc;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAe,EAAE,IAAY;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAe;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,GAER,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,OAAO,eAAgB,SAAQ,OAAyB;IAC5D,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAEzE,OAAO,CAAM;IAEb,YAAY,MAAc,EAAE,MAAW;QACrC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,MAA8B;QAC3C,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe,EAAE,IAAY;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * 钉钉 Bot 实现
2
+ * 钉钉 Endpoint 实现
3
3
  */
4
- import { Bot, Message, SendOptions } from 'zhin.js';
5
- import type { DingTalkBotConfig, DingTalkMessage } from "./types.js";
4
+ import { Endpoint, Message, SendOptions } from 'zhin.js';
5
+ import type { DingTalkEndpointConfig, DingTalkMessage } from "./types.js";
6
6
  import type { DingTalkAdapter } from "./adapter.js";
7
- export declare class DingTalkBot implements Bot<DingTalkBotConfig, DingTalkMessage> {
7
+ export declare class DingTalkEndpoint implements Endpoint<DingTalkEndpointConfig, DingTalkMessage> {
8
8
  adapter: DingTalkAdapter;
9
- $config: DingTalkBotConfig;
9
+ $config: DingTalkEndpointConfig;
10
10
  $connected: boolean;
11
11
  private router;
12
12
  private accessToken;
@@ -14,7 +14,7 @@ export declare class DingTalkBot implements Bot<DingTalkBotConfig, DingTalkMessa
14
14
  private sessionWebhooks;
15
15
  get $id(): string;
16
16
  get logger(): import("zhin.js").Logger;
17
- constructor(adapter: DingTalkAdapter, router: any, $config: DingTalkBotConfig);
17
+ constructor(adapter: DingTalkAdapter, router: any, $config: DingTalkEndpointConfig);
18
18
  private request;
19
19
  private setupWebhookRoute;
20
20
  private handleWebhook;
@@ -43,4 +43,4 @@ export declare class DingTalkBot implements Bot<DingTalkBotConfig, DingTalkMessa
43
43
  del_useridlist?: string[];
44
44
  }): Promise<boolean>;
45
45
  }
46
- //# sourceMappingURL=bot.d.ts.map
46
+ //# sourceMappingURL=endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAwC,WAAW,EAAE,MAAM,SAAS,CAAC;AAG9G,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,qBAAa,gBAAiB,YAAW,QAAQ,CAAC,sBAAsB,EAAE,eAAe,CAAC;IAgB/E,OAAO,EAAE,eAAe;IAExB,OAAO,EAAE,sBAAsB;IAjBxC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAkC;IAEzD,IAAI,GAAG,WAEN;IAED,IAAI,MAAM,6BAET;gBAGQ,OAAO,EAAE,eAAe,EAC/B,MAAM,EAAE,GAAG,EACJ,OAAO,EAAE,sBAAsB;YAS1B,OAAO;IA4BrB,OAAO,CAAC,iBAAiB;YAMX,aAAa;IA0B3B,OAAO,CAAC,eAAe;YAaT,WAAW;YAeX,iBAAiB;YAajB,kBAAkB;IA2BhC,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAoC9D,OAAO,CAAC,mBAAmB;IAoGrB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAwCnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,CAAC,iBAAiB;IA8EnB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAczC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAclD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBpE,iBAAiB,CAAC,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAcrD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAc/C,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqBnB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAczC,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,GACA,OAAO,CAAC,OAAO,CAAC;CAgBpB"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * 钉钉 Bot 实现
2
+ * 钉钉 Endpoint 实现
3
3
  */
4
4
  import { formatCompact, Message, segment } from 'zhin.js';
5
5
  import { registerFetchRoute } from "@zhin.js/host-router/router";
6
6
  import { createHmac } from "crypto";
7
- export class DingTalkBot {
7
+ import { normalizeDingtalkSenderForPermit } from "./platform-permit.js";
8
+ export class DingTalkEndpoint {
8
9
  adapter;
9
10
  $config;
10
11
  $connected;
@@ -99,7 +100,7 @@ export class DingTalkBot {
99
100
  this.adapter.emit("message.receive", message);
100
101
  this.logger.debug(formatCompact({
101
102
  op: "recv",
102
- bot: this.$config.name,
103
+ endpoint: this.$config.name,
103
104
  channel: message.$channel.type,
104
105
  id: message.$channel.id,
105
106
  len: segment.raw(message.$content).length,
@@ -145,13 +146,16 @@ export class DingTalkBot {
145
146
  $formatMessage(msg) {
146
147
  const content = this.parseMessageContent(msg);
147
148
  const chatType = msg.conversationType === "2" ? "group" : "private";
149
+ const permit = normalizeDingtalkSenderForPermit({ isAdmin: msg.isAdmin === true });
148
150
  return Message.from(msg, {
149
151
  $id: msg.msgId || Date.now().toString(),
150
152
  $adapter: "dingtalk",
151
- $bot: this.$config.name,
153
+ $endpoint: this.$config.name,
152
154
  $sender: {
153
155
  id: msg.senderId || msg.senderStaffId || "unknown",
154
156
  name: msg.senderNick || msg.senderId || "Unknown User",
157
+ role: permit.role,
158
+ permissions: permit.permissions,
155
159
  },
156
160
  $channel: {
157
161
  id: msg.conversationId || "unknown",
@@ -166,7 +170,7 @@ export class DingTalkBot {
166
170
  $reply: async (content) => {
167
171
  return await this.adapter.sendMessage({
168
172
  context: "dingtalk",
169
- bot: this.$config.name,
173
+ endpoint: this.$config.name,
170
174
  id: msg.conversationId || msg.senderId || "unknown",
171
175
  type: chatType,
172
176
  content: content,
@@ -383,7 +387,7 @@ export class DingTalkBot {
383
387
  try {
384
388
  await this.refreshAccessToken();
385
389
  this.$connected = true;
386
- this.logger.info(formatCompact({ bot: this.$config.name }));
390
+ this.logger.info(formatCompact({ endpoint: this.$config.name }));
387
391
  this.logger.info(formatCompact({ op: "webhook", path: this.$config.webhookPath }));
388
392
  }
389
393
  catch (error) {
@@ -395,7 +399,7 @@ export class DingTalkBot {
395
399
  try {
396
400
  this.sessionWebhooks.clear();
397
401
  this.$connected = false;
398
- this.logger.info(formatCompact({ op: "disconnect", bot: this.$config.name }));
402
+ this.logger.info(formatCompact({ op: "disconnect", endpoint: this.$config.name }));
399
403
  }
400
404
  catch (error) {
401
405
  this.logger.error("Error disconnecting DingTalk bot:", error);
@@ -536,4 +540,4 @@ export class DingTalkBot {
536
540
  }
537
541
  }
538
542
  }
539
- //# sourceMappingURL=bot.js.map
543
+ //# 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 { DingTalkBot } from "./bot.js";
13
+ export { DingTalkEndpoint } from "./endpoint.js";
14
14
  export { DingTalkAdapter } 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":"AAIA,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,QAAQ,EAAE,eAAe,CAAC;KAC3B;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":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAO/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,QAAQ,EAAE,eAAe,CAAC;KAC3B;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
@@ -3,15 +3,16 @@
3
3
  */
4
4
  import { usePlugin, createGroupManagementTools } from "zhin.js";
5
5
  import { DingTalkAdapter } from "./adapter.js";
6
+ import { dingtalkGroupPermitResolver, platformPermit, registerDingtalkPlatformPermitChecker, } from "./platform-permit.js";
6
7
  export * from "./types.js";
7
- export { DingTalkBot } from "./bot.js";
8
+ export { DingTalkEndpoint } from "./endpoint.js";
8
9
  export { DingTalkAdapter } from "./adapter.js";
9
10
  const plugin = usePlugin();
10
11
  const { provide, useContext } = plugin;
11
12
  useContext("router", (router) => {
12
13
  provide({
13
14
  name: "dingtalk",
14
- description: "DingTalk Bot Adapter",
15
+ description: "DingTalk Endpoint Adapter",
15
16
  mounted: async (p) => {
16
17
  const adapter = new DingTalkAdapter(p, router);
17
18
  await adapter.start();
@@ -23,26 +24,28 @@ useContext("router", (router) => {
23
24
  });
24
25
  });
25
26
  useContext('tool', 'dingtalk', (toolService, dingtalk) => {
26
- const groupTools = createGroupManagementTools(dingtalk, 'dingtalk');
27
- const disposers = groupTools.map(t => toolService.addTool(t, plugin.name));
27
+ const disposers = [];
28
+ disposers.push(registerDingtalkPlatformPermitChecker());
29
+ const groupTools = createGroupManagementTools(dingtalk, 'dingtalk', { permitResolver: dingtalkGroupPermitResolver, registerChecker: false });
30
+ disposers.push(...groupTools.map(t => toolService.addTool(t, plugin.name)));
28
31
  disposers.push(toolService.addTool({
29
32
  name: 'dingtalk_get_user',
30
33
  description: '获取钉钉用户信息',
31
34
  parameters: {
32
35
  type: 'object',
33
36
  properties: {
34
- bot: { type: 'string', description: 'Bot 名称' },
37
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
35
38
  user_id: { type: 'string', description: '用户 ID' },
36
39
  },
37
- required: ['bot', 'user_id'],
40
+ required: ['endpoint_id', 'user_id'],
38
41
  },
39
42
  platforms: ['dingtalk'],
40
43
  tags: ['dingtalk'],
41
44
  execute: async (args) => {
42
- const bot = dingtalk.bots.get(args.bot);
43
- if (!bot)
44
- throw new Error(`Bot ${args.bot} 不存在`);
45
- return await bot.getUserInfo(args.user_id);
45
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
46
+ if (!endpoint)
47
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
48
+ return await endpoint.getUserInfo(args.user_id);
46
49
  },
47
50
  }, plugin.name));
48
51
  disposers.push(toolService.addTool({
@@ -51,18 +54,18 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
51
54
  parameters: {
52
55
  type: 'object',
53
56
  properties: {
54
- bot: { type: 'string', description: 'Bot 名称' },
57
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
55
58
  dept_id: { type: 'string', description: '部门 ID' },
56
59
  },
57
- required: ['bot', 'dept_id'],
60
+ required: ['endpoint_id', 'dept_id'],
58
61
  },
59
62
  platforms: ['dingtalk'],
60
63
  tags: ['dingtalk'],
61
64
  execute: async (args) => {
62
- const bot = dingtalk.bots.get(args.bot);
63
- if (!bot)
64
- throw new Error(`Bot ${args.bot} 不存在`);
65
- const users = await bot.getDepartmentUsers(args.dept_id);
65
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
66
+ if (!endpoint)
67
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
68
+ const users = await endpoint.getDepartmentUsers(args.dept_id);
66
69
  return { users, count: users.length };
67
70
  },
68
71
  }, plugin.name));
@@ -72,18 +75,18 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
72
75
  parameters: {
73
76
  type: 'object',
74
77
  properties: {
75
- bot: { type: 'string', description: 'Bot 名称' },
78
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
76
79
  dept_id: { type: 'string', description: '父部门 ID,默认 1(根部门)' },
77
80
  },
78
- required: ['bot'],
81
+ required: ['endpoint_id'],
79
82
  },
80
83
  platforms: ['dingtalk'],
81
84
  tags: ['dingtalk'],
82
85
  execute: async (args) => {
83
- const bot = dingtalk.bots.get(args.bot);
84
- if (!bot)
85
- throw new Error(`Bot ${args.bot} 不存在`);
86
- const departments = await bot.getDepartmentList(args.dept_id || '1');
86
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
87
+ if (!endpoint)
88
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
89
+ const departments = await endpoint.getDepartmentList(args.dept_id || '1');
87
90
  return { departments, count: departments.length };
88
91
  },
89
92
  }, plugin.name));
@@ -93,20 +96,20 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
93
96
  parameters: {
94
97
  type: 'object',
95
98
  properties: {
96
- bot: { type: 'string', description: 'Bot 名称' },
99
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
97
100
  user_ids: { type: 'string', description: '用户 ID 列表,逗号分隔' },
98
101
  content: { type: 'string', description: '通知内容' },
99
102
  },
100
- required: ['bot', 'user_ids', 'content'],
103
+ required: ['endpoint_id', 'user_ids', 'content'],
101
104
  },
102
105
  platforms: ['dingtalk'],
103
106
  tags: ['dingtalk'],
104
107
  execute: async (args) => {
105
- const bot = dingtalk.bots.get(args.bot);
106
- if (!bot)
107
- throw new Error(`Bot ${args.bot} 不存在`);
108
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
109
+ if (!endpoint)
110
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
108
111
  const msgContent = { msgtype: 'text', text: { content: args.content } };
109
- const success = await bot.sendWorkNotice(args.user_ids.split(','), msgContent);
112
+ const success = await endpoint.sendWorkNotice(args.user_ids.split(','), msgContent);
110
113
  return { success, message: success ? '工作通知已发送' : '发送失败' };
111
114
  },
112
115
  }, plugin.name));
@@ -116,20 +119,21 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
116
119
  parameters: {
117
120
  type: 'object',
118
121
  properties: {
119
- bot: { type: 'string', description: 'Bot 名称' },
122
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
120
123
  name: { type: 'string', description: '群名' },
121
124
  owner: { type: 'string', description: '群主用户 ID' },
122
125
  members: { type: 'string', description: '成员用户 ID 列表,逗号分隔' },
123
126
  },
124
- required: ['bot', 'name', 'owner', 'members'],
127
+ required: ['endpoint_id', 'name', 'owner', 'members'],
125
128
  },
126
129
  platforms: ['dingtalk'],
127
130
  tags: ['dingtalk'],
131
+ permissions: [platformPermit('chat_owner')],
128
132
  execute: async (args) => {
129
- const bot = dingtalk.bots.get(args.bot);
130
- if (!bot)
131
- throw new Error(`Bot ${args.bot} 不存在`);
132
- const chatId = await bot.createChat(args.name, args.owner, args.members.split(','));
133
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
134
+ if (!endpoint)
135
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
136
+ const chatId = await endpoint.createChat(args.name, args.owner, args.members.split(','));
133
137
  return { success: !!chatId, chat_id: chatId, message: chatId ? `群聊创建成功: ${chatId}` : '创建失败' };
134
138
  },
135
139
  }, plugin.name));
@@ -139,19 +143,20 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
139
143
  parameters: {
140
144
  type: 'object',
141
145
  properties: {
142
- bot: { type: 'string', description: 'Bot 名称' },
146
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
143
147
  chat_id: { type: 'string', description: '群聊 ID' },
144
148
  user_ids: { type: 'string', description: '要添加的用户 ID 列表,逗号分隔' },
145
149
  },
146
- required: ['bot', 'chat_id', 'user_ids'],
150
+ required: ['endpoint_id', 'chat_id', 'user_ids'],
147
151
  },
148
152
  platforms: ['dingtalk'],
149
153
  tags: ['dingtalk'],
154
+ permissions: [platformPermit('chat_admin')],
150
155
  execute: async (args) => {
151
- const bot = dingtalk.bots.get(args.bot);
152
- if (!bot)
153
- throw new Error(`Bot ${args.bot} 不存在`);
154
- const success = await bot.updateChat(args.chat_id, { add_useridlist: args.user_ids.split(',') });
156
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
157
+ if (!endpoint)
158
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
159
+ const success = await endpoint.updateChat(args.chat_id, { add_useridlist: args.user_ids.split(',') });
155
160
  return { success, message: success ? '成员添加成功' : '添加失败' };
156
161
  },
157
162
  }, plugin.name));
@@ -161,18 +166,18 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
161
166
  parameters: {
162
167
  type: 'object',
163
168
  properties: {
164
- bot: { type: 'string', description: 'Bot 名称' },
169
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
165
170
  dept_id: { type: 'string', description: '部门 ID' },
166
171
  },
167
- required: ['bot', 'dept_id'],
172
+ required: ['endpoint_id', 'dept_id'],
168
173
  },
169
174
  platforms: ['dingtalk'],
170
175
  tags: ['dingtalk'],
171
176
  execute: async (args) => {
172
- const bot = dingtalk.bots.get(args.bot);
173
- if (!bot)
174
- throw new Error(`Bot ${args.bot} 不存在`);
175
- return await bot.getDepartmentInfo(Number(args.dept_id));
177
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
178
+ if (!endpoint)
179
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
180
+ return await endpoint.getDepartmentInfo(Number(args.dept_id));
176
181
  },
177
182
  }, plugin.name));
178
183
  disposers.push(toolService.addTool({
@@ -181,21 +186,21 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
181
186
  parameters: {
182
187
  type: 'object',
183
188
  properties: {
184
- bot: { type: 'string', description: 'Bot 名称' },
189
+ endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
185
190
  chat_id: { type: 'string', description: '群聊 ID' },
186
191
  name: { type: 'string', description: '新群名(可选)' },
187
192
  owner: { type: 'string', description: '新群主 userId(可选)' },
188
193
  add_members: { type: 'string', description: '要添加的成员 userId,逗号分隔(可选)' },
189
194
  remove_members: { type: 'string', description: '要移除的成员 userId,逗号分隔(可选)' },
190
195
  },
191
- required: ['bot', 'chat_id'],
196
+ required: ['endpoint_id', 'chat_id'],
192
197
  },
193
198
  platforms: ['dingtalk'],
194
199
  tags: ['dingtalk'],
195
200
  execute: async (args) => {
196
- const bot = dingtalk.bots.get(args.bot);
197
- if (!bot)
198
- throw new Error(`Bot ${args.bot} 不存在`);
201
+ const endpoint = dingtalk.endpoints.get(args.endpoint_id);
202
+ if (!endpoint)
203
+ throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
199
204
  const options = {};
200
205
  if (args.name)
201
206
  options.name = args.name;
@@ -205,7 +210,7 @@ useContext('tool', 'dingtalk', (toolService, dingtalk) => {
205
210
  options.add_useridlist = args.add_members.split(',').map((s) => s.trim());
206
211
  if (args.remove_members)
207
212
  options.del_useridlist = args.remove_members.split(',').map((s) => s.trim());
208
- await bot.updateChat(args.chat_id, options);
213
+ await endpoint.updateChat(args.chat_id, options);
209
214
  return { success: true, message: '群聊设置已更新' };
210
215
  },
211
216
  }, plugin.name));