@satorijs/adapter-lark 3.7.4 → 3.8.1

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/lib/bot.d.ts CHANGED
@@ -11,7 +11,7 @@ export declare class LarkBot<C extends Context = Context> extends Bot<C, LarkBot
11
11
  assetsQuester: HTTP;
12
12
  internal: Internal;
13
13
  constructor(ctx: C, config: LarkBot.Config);
14
- get appId(): string;
14
+ getResourceUrl(type: string, message_id: string, file_key: string): string;
15
15
  initialize(): Promise<void>;
16
16
  private refreshToken;
17
17
  get token(): string;
@@ -43,6 +43,7 @@ export declare class LarkBot<C extends Context = Context> extends Bot<C, LarkBot
43
43
  }[];
44
44
  next: string;
45
45
  }>;
46
+ createUpload(...uploads: Universal.Upload[]): Promise<string[]>;
46
47
  }
47
48
  export declare namespace LarkBot {
48
49
  interface Config extends HttpServer.Options, HTTP.Config {
package/lib/index.cjs CHANGED
@@ -42,7 +42,6 @@ module.exports = __toCommonJS(src_exports);
42
42
  var import_core5 = require("@satorijs/core");
43
43
 
44
44
  // src/http.ts
45
- var import_node_stream = require("node:stream");
46
45
  var import_core2 = require("@satorijs/core");
47
46
 
48
47
  // src/utils.ts
@@ -61,7 +60,6 @@ function adaptSender(sender, session) {
61
60
  __name(adaptSender, "adaptSender");
62
61
  async function adaptMessage(bot, data, session, details = true) {
63
62
  const json = JSON.parse(data.message.content);
64
- const assetEndpoint = (0, import_core.trimSlash)(bot.config.selfUrl ?? bot.ctx.server.config.selfUrl) + bot.config.path + "/assets";
65
63
  const content = [];
66
64
  switch (data.message.message_type) {
67
65
  case "text": {
@@ -81,16 +79,18 @@ async function adaptMessage(bot, data, session, details = true) {
81
79
  break;
82
80
  }
83
81
  case "image":
84
- content.push(import_core.h.image(`${assetEndpoint}/image/${data.message.message_id}/${json.image_key}?self_id=${bot.selfId}`));
82
+ content.push(import_core.h.image(bot.getResourceUrl("image", data.message.message_id, json.image_key)));
85
83
  break;
86
84
  case "audio":
87
- content.push(import_core.h.audio(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`));
85
+ content.push(import_core.h.audio(bot.getResourceUrl("file", data.message.message_id, json.file_key)));
88
86
  break;
89
87
  case "media":
90
- content.push(import_core.h.video(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`, json.image_key));
88
+ content.push(import_core.h.video(bot.getResourceUrl("file", data.message.message_id, json.file_key), {
89
+ poster: json.image_key
90
+ }));
91
91
  break;
92
92
  case "file":
93
- content.push(import_core.h.file(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`));
93
+ content.push(import_core.h.file(bot.getResourceUrl("file", data.message.message_id, json.file_key)));
94
94
  break;
95
95
  }
96
96
  session.timestamp = +data.message.create_time;
@@ -165,7 +165,6 @@ async function adaptSession(bot, body) {
165
165
  __name(adaptSession, "adaptSession");
166
166
  async function decodeMessage(bot, body, details = true) {
167
167
  const json = JSON.parse(body.body.content);
168
- const assetEndpoint = (0, import_core.trimSlash)(bot.config.selfUrl ?? bot.ctx.server.config.selfUrl) + bot.config.path + "/assets";
169
168
  const content = [];
170
169
  switch (body.msg_type) {
171
170
  case "text": {
@@ -185,16 +184,18 @@ async function decodeMessage(bot, body, details = true) {
185
184
  break;
186
185
  }
187
186
  case "image":
188
- content.push(import_core.h.image(`${assetEndpoint}/image/${body.message_id}/${json.image_key}?self_id=${bot.selfId}`));
187
+ content.push(import_core.h.image(bot.getResourceUrl("image", body.message_id, json.image_key)));
189
188
  break;
190
189
  case "audio":
191
- content.push(import_core.h.audio(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`));
190
+ content.push(import_core.h.audio(bot.getResourceUrl("file", body.message_id, json.file_key)));
192
191
  break;
193
192
  case "media":
194
- content.push(import_core.h.video(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`, json.image_key));
193
+ content.push(import_core.h.video(bot.getResourceUrl("file", body.message_id, json.file_key), {
194
+ poster: json.image_key
195
+ }));
195
196
  break;
196
197
  case "file":
197
- content.push(import_core.h.file(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`));
198
+ content.push(import_core.h.file(bot.getResourceUrl("file", body.message_id, json.file_key)));
198
199
  break;
199
200
  }
200
201
  return {
@@ -331,29 +332,13 @@ var HttpServer = class extends import_core2.Adapter {
331
332
  ctx.body = {};
332
333
  return ctx.status = 200;
333
334
  });
334
- bot.ctx.server.get(path + "/assets/:type/:message_id/:key", async (ctx) => {
335
- const type = ctx.params.type === "image" ? "image" : "file";
336
- const key = ctx.params.key;
337
- const messageId = ctx.params.message_id;
338
- const selfId = ctx.request.query.self_id;
339
- const bot2 = this.bots.find((bot3) => bot3.selfId === selfId);
340
- if (!bot2) return ctx.status = 404;
341
- const resp = await bot2.http(`/im/v1/messages/${messageId}/resources/${key}`, {
342
- method: "GET",
343
- params: { type },
344
- responseType: "stream"
345
- });
346
- ctx.set("content-type", resp.headers.get("content-type"));
347
- ctx.status = 200;
348
- ctx.response.body = import_node_stream.Readable.fromWeb(resp.data);
349
- });
350
335
  }
351
336
  async dispatchSession(body) {
352
337
  const { header } = body;
353
338
  if (!header) return;
354
339
  const { app_id, event_type } = header;
355
340
  body.type = event_type;
356
- const bot = this.bots.find((bot2) => bot2.appId === app_id);
341
+ const bot = this.bots.find((bot2) => bot2.config.appId === app_id);
357
342
  const session = await adaptSession(bot, body);
358
343
  bot.dispatch(session);
359
344
  }
@@ -488,6 +473,15 @@ var LarkMessageEncoder = class extends import_core3.MessageEncoder {
488
473
  }
489
474
  async sendFile(_type, attrs) {
490
475
  const url = attrs.src || attrs.url;
476
+ const prefix = this.bot.getInternalUrl("/im/v1/files/");
477
+ if (url.startsWith(prefix)) {
478
+ const file_key2 = url.slice(prefix.length);
479
+ await this.post({
480
+ msg_type: _type === "video" ? "media" : _type,
481
+ content: JSON.stringify({ file_key: file_key2 })
482
+ });
483
+ return;
484
+ }
491
485
  const { filename, type, data } = await this.bot.assetsQuester.file(url);
492
486
  let file_type;
493
487
  if (_type === "audio") {
@@ -778,9 +772,16 @@ var Internal = class _Internal {
778
772
  } else if (args.length > 1) {
779
773
  throw new Error(`too many arguments for ${path}, received ${raw}`);
780
774
  }
775
+ if (options.type === "binary") {
776
+ config.responseType = "arraybuffer";
777
+ }
781
778
  const response = await this.bot.http(method, url, config);
782
779
  this._assertResponse(response);
783
- return options.noExtractData ? response.data : response.data.data;
780
+ if (options.type === "json-body" || options.type === "binary") {
781
+ return response.data;
782
+ } else {
783
+ return response.data.data;
784
+ }
784
785
  };
785
786
  }
786
787
  }
@@ -805,7 +806,54 @@ Internal.define({
805
806
  "/auth/v3/app_ticket/resend": {
806
807
  POST: "appTicketResendAuth"
807
808
  }
808
- }, { noExtractData: true });
809
+ }, { type: "json-body" });
810
+ Internal.define({
811
+ "/im/v1/messages/{message_id}/resources/{file_key}": {
812
+ GET: "getImMessageResource"
813
+ },
814
+ "/im/v1/images/{image_key}": {
815
+ GET: "getImImage"
816
+ },
817
+ "/im/v1/files/{file_key}": {
818
+ GET: "getImFile"
819
+ },
820
+ "/drive/v1/medias/{file_token}/download": {
821
+ GET: "downloadDrivev1Media"
822
+ },
823
+ "/drive/v1/files/{file_token}/download": {
824
+ GET: "downloadDrivev1File"
825
+ },
826
+ "/vc/v1/exports/download": {
827
+ GET: "downloadVcExport"
828
+ },
829
+ "/attendance/v1/files/{file_id}/download": {
830
+ GET: "downloadAttendanceFile"
831
+ },
832
+ "/helpdesk/v1/ticket_images": {
833
+ GET: "ticketImageHelpdeskTicket"
834
+ },
835
+ "/helpdesk/v1/faqs/{id}/image/{image_key}": {
836
+ GET: "faqImageHelpdeskFaq"
837
+ },
838
+ "/ehr/v1/attachments/{token}": {
839
+ GET: "getEhrAttachment"
840
+ },
841
+ "/corehr/v1/files/{id}": {
842
+ GET: "getCorehrFile"
843
+ },
844
+ "/acs/v1/users/{user_id}/face": {
845
+ GET: "getAcsUserFace"
846
+ },
847
+ "/acs/v1/access_records/{access_record_id}/access_photo": {
848
+ GET: "getAcsAccessRecordAccessPhoto"
849
+ },
850
+ "/lingo/v1/files/{file_token}/download": {
851
+ GET: "downloadLingoFile"
852
+ },
853
+ "/baike/v1/files/{file_token}/download": {
854
+ GET: "downloadBaikeFile"
855
+ }
856
+ }, { type: "binary" });
809
857
  Internal.define({
810
858
  "/event/v1/outbound_ip": {
811
859
  GET: "listEventOutboundIp"
@@ -1013,9 +1061,6 @@ Internal.define({
1013
1061
  "/im/v1/messages/{message_id}/read_users": {
1014
1062
  GET: "readUsersImMessage"
1015
1063
  },
1016
- "/im/v1/messages/{message_id}/resources/{file_key}": {
1017
- GET: "getImMessageResource"
1018
- },
1019
1064
  "/im/v1/messages/{message_id}/urgent_app": {
1020
1065
  PATCH: "urgentAppImMessage"
1021
1066
  },
@@ -1034,12 +1079,6 @@ Internal.define({
1034
1079
  "/im/v1/batch_messages/{batch_message_id}/get_progress": {
1035
1080
  GET: "getProgressImBatchMessage"
1036
1081
  },
1037
- "/im/v1/images/{image_key}": {
1038
- GET: "getImImage"
1039
- },
1040
- "/im/v1/files/{file_key}": {
1041
- GET: "getImFile"
1042
- },
1043
1082
  "/im/v1/messages/{message_id}/reactions": {
1044
1083
  POST: "createImMessageReaction",
1045
1084
  GET: "listImMessageReaction"
@@ -1153,9 +1192,6 @@ Internal.define({
1153
1192
  "/drive/v1/files/task_check": {
1154
1193
  GET: "taskCheckDrivev1File"
1155
1194
  },
1156
- "/drive/v1/medias/{file_token}/download": {
1157
- GET: "downloadDrivev1Media"
1158
- },
1159
1195
  "/drive/v1/medias/batch_get_tmp_download_url": {
1160
1196
  GET: "batchGetTmpDownloadUrlDrivev1Media"
1161
1197
  },
@@ -1180,9 +1216,6 @@ Internal.define({
1180
1216
  "/drive/v1/files/upload_finish": {
1181
1217
  POST: "uploadFinishDrivev1File"
1182
1218
  },
1183
- "/drive/v1/files/{file_token}/download": {
1184
- GET: "downloadDrivev1File"
1185
- },
1186
1219
  "/drive/v1/import_tasks": {
1187
1220
  POST: "createDrivev1ImportTask"
1188
1221
  },
@@ -1653,9 +1686,6 @@ Internal.define({
1653
1686
  "/vc/v1/exports/{task_id}": {
1654
1687
  GET: "getVcExport"
1655
1688
  },
1656
- "/vc/v1/exports/download": {
1657
- GET: "downloadVcExport"
1658
- },
1659
1689
  "/vc/v1/room_levels": {
1660
1690
  POST: "createVcRoomLevel",
1661
1691
  GET: "listVcRoomLevel"
@@ -1801,9 +1831,6 @@ Internal.define({
1801
1831
  "/attendance/v1/user_settings/query": {
1802
1832
  GET: "queryAttendanceUserSetting"
1803
1833
  },
1804
- "/attendance/v1/files/{file_id}/download": {
1805
- GET: "downloadAttendanceFile"
1806
- },
1807
1834
  "/attendance/v1/leave_employ_expire_records/{leave_id}": {
1808
1835
  GET: "getAttendanceLeaveEmployExpireRecord"
1809
1836
  },
@@ -1930,9 +1957,6 @@ Internal.define({
1930
1957
  "/helpdesk/v1/tickets": {
1931
1958
  GET: "listHelpdeskTicket"
1932
1959
  },
1933
- "/helpdesk/v1/ticket_images": {
1934
- GET: "ticketImageHelpdeskTicket"
1935
- },
1936
1960
  "/helpdesk/v1/tickets/{ticket_id}/answer_user_query": {
1937
1961
  POST: "answerUserQueryHelpdeskTicket"
1938
1962
  },
@@ -1964,9 +1988,6 @@ Internal.define({
1964
1988
  PATCH: "patchHelpdeskFaq",
1965
1989
  GET: "getHelpdeskFaq"
1966
1990
  },
1967
- "/helpdesk/v1/faqs/{id}/image/{image_key}": {
1968
- GET: "faqImageHelpdeskFaq"
1969
- },
1970
1991
  "/helpdesk/v1/faqs/search": {
1971
1992
  GET: "searchHelpdeskFaq"
1972
1993
  },
@@ -2430,9 +2451,6 @@ Internal.define({
2430
2451
  "/ehr/v1/employees": {
2431
2452
  GET: "listEhrEmployee"
2432
2453
  },
2433
- "/ehr/v1/attachments/{token}": {
2434
- GET: "getEhrAttachment"
2435
- },
2436
2454
  "/corehr/v2/basic_info/nationalities/search": {
2437
2455
  POST: "searchCorehrBasicInfoNationality"
2438
2456
  },
@@ -2516,9 +2534,6 @@ Internal.define({
2516
2534
  DELETE: "deleteCorehrPerson",
2517
2535
  GET: "getCorehrPerson"
2518
2536
  },
2519
- "/corehr/v1/files/{id}": {
2520
- GET: "getCorehrFile"
2521
- },
2522
2537
  "/corehr/v1/job_datas": {
2523
2538
  POST: "createCorehrJobData",
2524
2539
  GET: "listCorehrJobData"
@@ -3007,9 +3022,6 @@ Internal.define({
3007
3022
  "/acs/v1/access_records": {
3008
3023
  GET: "listAcsAccessRecord"
3009
3024
  },
3010
- "/acs/v1/access_records/{access_record_id}/access_photo": {
3011
- GET: "getAcsAccessRecordAccessPhoto"
3012
- },
3013
3025
  "/performance/v1/semesters": {
3014
3026
  GET: "listPerformanceSemester"
3015
3027
  },
@@ -3052,9 +3064,6 @@ Internal.define({
3052
3064
  "/lingo/v1/repos": {
3053
3065
  GET: "listLingoRepo"
3054
3066
  },
3055
- "/lingo/v1/files/{file_token}/download": {
3056
- GET: "downloadLingoFile"
3057
- },
3058
3067
  "/security_and_compliance/v1/openapi_logs/list_data": {
3059
3068
  POST: "listDataSecurityAndComplianceOpenapiLog"
3060
3069
  },
@@ -3135,9 +3144,6 @@ Internal.define({
3135
3144
  "/baike/v1/classifications": {
3136
3145
  GET: "listBaikeClassification"
3137
3146
  },
3138
- "/baike/v1/files/{file_token}/download": {
3139
- GET: "downloadBaikeFile"
3140
- },
3141
3147
  "/hire/v1/applications/{application_id}/interviews": {
3142
3148
  GET: "listHireApplicationInterview"
3143
3149
  },
@@ -3294,18 +3300,30 @@ var LarkBot = class extends import_core5.Bot {
3294
3300
  internal;
3295
3301
  constructor(ctx, config) {
3296
3302
  super(ctx, config, "lark");
3297
- if (!config.selfUrl && !ctx.server.config.selfUrl) {
3298
- this.logger.warn("selfUrl is not set, some features may not work");
3299
- }
3300
3303
  this.http = ctx.http.extend({
3301
3304
  endpoint: config.endpoint
3302
3305
  });
3303
3306
  this.assetsQuester = ctx.http;
3304
3307
  this.internal = new Internal(this);
3305
3308
  ctx.plugin(HttpServer, this);
3309
+ this.defineInternalRoute("/*path", async ({ params, method, headers, body, query }) => {
3310
+ const response = await this.http("/" + params.path, {
3311
+ method,
3312
+ headers,
3313
+ data: body,
3314
+ params: Object.fromEntries(query.entries()),
3315
+ responseType: "arraybuffer",
3316
+ validateStatus: /* @__PURE__ */ __name(() => true, "validateStatus")
3317
+ });
3318
+ return {
3319
+ status: response.status,
3320
+ body: response.data,
3321
+ headers: response.headers
3322
+ };
3323
+ });
3306
3324
  }
3307
- get appId() {
3308
- return this.config.appId;
3325
+ getResourceUrl(type, message_id, file_key) {
3326
+ return this.getInternalUrl(`/im/v1/messages/${message_id}/resources/${file_key}`, { type });
3309
3327
  }
3310
3328
  async initialize() {
3311
3329
  await this.refreshToken();
@@ -3378,6 +3396,16 @@ var LarkBot = class extends import_core5.Bot {
3378
3396
  const data = members.items.map((v) => ({ user: { id: v.member_id, name: v.name }, name: v.name }));
3379
3397
  return { data, next: members.page_token };
3380
3398
  }
3399
+ async createUpload(...uploads) {
3400
+ return await Promise.all(uploads.map(async (upload) => {
3401
+ const response = await this.internal.createImFile({
3402
+ file_name: upload.filename,
3403
+ file_type: upload.type,
3404
+ file: new Blob([upload.data])
3405
+ });
3406
+ return this.getInternalUrl(`/im/v1/files/${response.file_key}`);
3407
+ }));
3408
+ }
3381
3409
  };
3382
3410
  ((LarkBot2) => {
3383
3411
  LarkBot2.Config = import_core5.Schema.intersect([
@@ -3393,14 +3421,14 @@ var LarkBot = class extends import_core5.Bot {
3393
3421
  import_core5.Schema.object({
3394
3422
  platform: import_core5.Schema.const("feishu").required()
3395
3423
  }),
3396
- import_core5.HTTP.createConfig("https://open.feishu.cn/open-apis/"),
3424
+ import_core5.HTTP.createConfig("https://open.feishu.cn/open-apis"),
3397
3425
  HttpServer.createConfig("/feishu")
3398
3426
  ]),
3399
3427
  import_core5.Schema.intersect([
3400
3428
  import_core5.Schema.object({
3401
3429
  platform: import_core5.Schema.const("lark").required()
3402
3430
  }),
3403
- import_core5.HTTP.createConfig("https://open.larksuite.com/open-apis/"),
3431
+ import_core5.HTTP.createConfig("https://open.larksuite.com/open-apis"),
3404
3432
  HttpServer.createConfig("/lark")
3405
3433
  ])
3406
3434
  ])
@@ -3416,4 +3444,3 @@ var src_default = LarkBot;
3416
3444
  Lark,
3417
3445
  LarkBot
3418
3446
  });
3419
- //# sourceMappingURL=index.cjs.map
@@ -446,7 +446,7 @@ declare module './internal' {
446
446
  * 获取消息中的资源文件
447
447
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-resource/get
448
448
  */
449
- getImMessageResource(message_id: string, file_key: string, query?: GetImMessageResourceQuery): Promise<Buffer>;
449
+ getImMessageResource(message_id: string, file_key: string, query?: GetImMessageResourceQuery): Promise<ArrayBuffer>;
450
450
  /**
451
451
  * 获取指定消息的内容
452
452
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/get
@@ -491,7 +491,7 @@ declare module './internal' {
491
491
  * 下载图片
492
492
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/get
493
493
  */
494
- getImImage(image_key: string): Promise<Buffer>;
494
+ getImImage(image_key: string): Promise<ArrayBuffer>;
495
495
  /**
496
496
  * 上传文件
497
497
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/file/create
@@ -501,7 +501,7 @@ declare module './internal' {
501
501
  * 下载文件
502
502
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/file/get
503
503
  */
504
- getImFile(file_key: string): Promise<Buffer>;
504
+ getImFile(file_key: string): Promise<ArrayBuffer>;
505
505
  /**
506
506
  * 更新应用发送的消息卡片
507
507
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/patch
@@ -741,7 +741,7 @@ declare module './internal' {
741
741
  * 下载素材
742
742
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/download
743
743
  */
744
- downloadDrivev1Media(file_token: string, query?: DownloadDrivev1MediaQuery): Promise<Buffer>;
744
+ downloadDrivev1Media(file_token: string, query?: DownloadDrivev1MediaQuery): Promise<ArrayBuffer>;
745
745
  /**
746
746
  * 获取素材临时下载链接
747
747
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/batch_get_tmp_download_url
@@ -801,7 +801,7 @@ declare module './internal' {
801
801
  * 下载文件
802
802
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/download
803
803
  */
804
- downloadDrivev1File(file_token: string): Promise<Buffer>;
804
+ downloadDrivev1File(file_token: string): Promise<ArrayBuffer>;
805
805
  /**
806
806
  * 创建导入任务
807
807
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/import_task/create
@@ -1756,7 +1756,7 @@ declare module './internal' {
1756
1756
  * 下载导出文件
1757
1757
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/export/download
1758
1758
  */
1759
- downloadVcExport(query?: DownloadVcExportQuery): Promise<Buffer>;
1759
+ downloadVcExport(query?: DownloadVcExportQuery): Promise<ArrayBuffer>;
1760
1760
  /**
1761
1761
  * 创建会议室层级
1762
1762
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room_level/create
@@ -2051,7 +2051,7 @@ declare module './internal' {
2051
2051
  * 下载用户人脸识别照片
2052
2052
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/file/download
2053
2053
  */
2054
- downloadAttendanceFile(file_id: string): Promise<Buffer>;
2054
+ downloadAttendanceFile(file_id: string): Promise<ArrayBuffer>;
2055
2055
  /**
2056
2056
  * 通过过期时间获取发放记录
2057
2057
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/leave_employ_expire_record/get
@@ -2291,7 +2291,7 @@ declare module './internal' {
2291
2291
  * 获取工单内图像
2292
2292
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/ticket_image
2293
2293
  */
2294
- ticketImageHelpdeskTicket(query?: TicketImageHelpdeskTicketQuery): Promise<Buffer>;
2294
+ ticketImageHelpdeskTicket(query?: TicketImageHelpdeskTicketQuery): Promise<ArrayBuffer>;
2295
2295
  /**
2296
2296
  * 回复用户在工单里的提问
2297
2297
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/answer_user_query
@@ -2371,7 +2371,7 @@ declare module './internal' {
2371
2371
  * 获取知识库图像
2372
2372
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/faq_image
2373
2373
  */
2374
- faqImageHelpdeskFaq(id: string, image_key: string): Promise<Buffer>;
2374
+ faqImageHelpdeskFaq(id: string, image_key: string): Promise<ArrayBuffer>;
2375
2375
  /**
2376
2376
  * 搜索知识库
2377
2377
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/search
@@ -3461,7 +3461,7 @@ declare module './internal' {
3461
3461
  * 下载人员的附件
3462
3462
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/ehr/ehr-v1/attachment/get
3463
3463
  */
3464
- getEhrAttachment(token: string): Promise<Buffer>;
3464
+ getEhrAttachment(token: string): Promise<ArrayBuffer>;
3465
3465
  /**
3466
3466
  * 查询国籍信息
3467
3467
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search
@@ -3641,7 +3641,7 @@ declare module './internal' {
3641
3641
  * 下载文件
3642
3642
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get
3643
3643
  */
3644
- getCorehrFile(id: string): Promise<Buffer>;
3644
+ getCorehrFile(id: string): Promise<ArrayBuffer>;
3645
3645
  /**
3646
3646
  * 创建任职信息
3647
3647
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/create
@@ -4591,7 +4591,7 @@ declare module './internal' {
4591
4591
  * 下载人脸图片
4592
4592
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/acs-v1/user-face/get
4593
4593
  */
4594
- getAcsUserFace(user_id: string, query?: GetAcsUserFaceQuery): Promise<Buffer>;
4594
+ getAcsUserFace(user_id: string, query?: GetAcsUserFaceQuery): Promise<ArrayBuffer>;
4595
4595
  /**
4596
4596
  * 获取门禁设备列表
4597
4597
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/acs-v1/device/list
@@ -4606,7 +4606,7 @@ declare module './internal' {
4606
4606
  * 下载开门时的人脸识别图片
4607
4607
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/acs-v1/access_record-access_photo/get
4608
4608
  */
4609
- getAcsAccessRecordAccessPhoto(access_record_id: string): Promise<Buffer>;
4609
+ getAcsAccessRecordAccessPhoto(access_record_id: string): Promise<ArrayBuffer>;
4610
4610
  /**
4611
4611
  * 获取周期
4612
4612
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list
@@ -4696,7 +4696,7 @@ declare module './internal' {
4696
4696
  * 下载图片
4697
4697
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/lingo-v1/file/download
4698
4698
  */
4699
- downloadLingoFile(file_token: string): Promise<Buffer>;
4699
+ downloadLingoFile(file_token: string): Promise<ArrayBuffer>;
4700
4700
  /**
4701
4701
  * 获取OpenAPI审计日志数据
4702
4702
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v1/openapi_log/list_data
@@ -4846,7 +4846,7 @@ declare module './internal' {
4846
4846
  * 下载图片
4847
4847
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/file/download
4848
4848
  */
4849
- downloadBaikeFile(file_token: string): Promise<Buffer>;
4849
+ downloadBaikeFile(file_token: string): Promise<ArrayBuffer>;
4850
4850
  /**
4851
4851
  * 获取用户列表
4852
4852
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/list
@@ -25656,11 +25656,11 @@ export interface GetProgressImBatchMessageResponse {
25656
25656
  }
25657
25657
  export interface CreateImImageResponse {
25658
25658
  /** 图片的key */
25659
- image_key?: string;
25659
+ image_key: string;
25660
25660
  }
25661
25661
  export interface CreateImFileResponse {
25662
25662
  /** 文件的key */
25663
- file_key?: string;
25663
+ file_key: string;
25664
25664
  }
25665
25665
  export interface CreateImMessageReactionResponse extends Lark.MessageReaction {
25666
25666
  }
@@ -10,7 +10,7 @@ export interface BaseResponse {
10
10
  }
11
11
  export interface InternalConfig {
12
12
  multipart?: boolean;
13
- noExtractData?: boolean;
13
+ type?: 'json-body' | 'binary';
14
14
  }
15
15
  export declare class Internal {
16
16
  private bot;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@satorijs/adapter-lark",
3
3
  "description": "Lark (飞书) Adapter for Satorijs",
4
- "version": "3.7.4",
4
+ "version": "3.8.1",
5
5
  "type": "module",
6
6
  "main": "lib/index.cjs",
7
7
  "types": "lib/index.d.ts",
@@ -34,11 +34,11 @@
34
34
  "chat"
35
35
  ],
36
36
  "devDependencies": {
37
- "@cordisjs/plugin-server": "^0.2.4",
38
- "@satorijs/core": "^4.2.12",
37
+ "@cordisjs/plugin-server": "^0.2.5",
38
+ "@satorijs/core": "^4.3.2",
39
39
  "cordis": "^3.18.1"
40
40
  },
41
41
  "peerDependencies": {
42
- "@satorijs/core": "^4.2.12"
42
+ "@satorijs/core": "^4.3.2"
43
43
  }
44
- }
44
+ }
package/src/bot.ts CHANGED
@@ -18,11 +18,6 @@ export class LarkBot<C extends Context = Context> extends Bot<C, LarkBot.Config>
18
18
  constructor(ctx: C, config: LarkBot.Config) {
19
19
  super(ctx, config, 'lark')
20
20
 
21
- // lark bot needs config.selfUrl to be set as it should be serve on a public url
22
- if (!config.selfUrl && !ctx.server.config.selfUrl) {
23
- this.logger.warn('selfUrl is not set, some features may not work')
24
- }
25
-
26
21
  this.http = ctx.http.extend({
27
22
  endpoint: config.endpoint,
28
23
  })
@@ -30,10 +25,26 @@ export class LarkBot<C extends Context = Context> extends Bot<C, LarkBot.Config>
30
25
  this.internal = new Internal(this)
31
26
 
32
27
  ctx.plugin(HttpServer, this)
28
+
29
+ this.defineInternalRoute('/*path', async ({ params, method, headers, body, query }) => {
30
+ const response = await this.http('/' + params.path, {
31
+ method,
32
+ headers,
33
+ data: body,
34
+ params: Object.fromEntries(query.entries()),
35
+ responseType: 'arraybuffer',
36
+ validateStatus: () => true,
37
+ })
38
+ return {
39
+ status: response.status,
40
+ body: response.data,
41
+ headers: response.headers,
42
+ }
43
+ })
33
44
  }
34
45
 
35
- get appId() {
36
- return this.config.appId
46
+ getResourceUrl(type: string, message_id: string, file_key: string) {
47
+ return this.getInternalUrl(`/im/v1/messages/${message_id}/resources/${file_key}`, { type })
37
48
  }
38
49
 
39
50
  async initialize() {
@@ -130,6 +141,17 @@ export class LarkBot<C extends Context = Context> extends Bot<C, LarkBot.Config>
130
141
  const data = members.items.map(v => ({ user: { id: v.member_id, name: v.name }, name: v.name }))
131
142
  return { data, next: members.page_token }
132
143
  }
144
+
145
+ async createUpload(...uploads: Universal.Upload[]): Promise<string[]> {
146
+ return await Promise.all(uploads.map(async (upload) => {
147
+ const response = await this.internal.createImFile({
148
+ file_name: upload.filename,
149
+ file_type: upload.type,
150
+ file: new Blob([upload.data]),
151
+ })
152
+ return this.getInternalUrl(`/im/v1/files/${response.file_key}`)
153
+ }))
154
+ }
133
155
  }
134
156
 
135
157
  export namespace LarkBot {
@@ -153,14 +175,14 @@ export namespace LarkBot {
153
175
  Schema.object({
154
176
  platform: Schema.const('feishu').required(),
155
177
  }),
156
- HTTP.createConfig('https://open.feishu.cn/open-apis/'),
178
+ HTTP.createConfig('https://open.feishu.cn/open-apis'),
157
179
  HttpServer.createConfig('/feishu'),
158
180
  ]),
159
181
  Schema.intersect([
160
182
  Schema.object({
161
183
  platform: Schema.const('lark').required(),
162
184
  }),
163
- HTTP.createConfig('https://open.larksuite.com/open-apis/'),
185
+ HTTP.createConfig('https://open.larksuite.com/open-apis'),
164
186
  HttpServer.createConfig('/lark'),
165
187
  ]),
166
188
  ]),
package/src/http.ts CHANGED
@@ -1,5 +1,3 @@
1
- import { Readable } from 'node:stream'
2
- import { ReadableStream } from 'node:stream/web'
3
1
  import { Adapter, Context, Logger, Schema } from '@satorijs/core'
4
2
  import {} from '@cordisjs/plugin-server'
5
3
 
@@ -78,24 +76,6 @@ export class HttpServer<C extends Context = Context> extends Adapter<C, LarkBot<
78
76
  ctx.body = {}
79
77
  return ctx.status = 200
80
78
  })
81
-
82
- bot.ctx.server.get(path + '/assets/:type/:message_id/:key', async (ctx) => {
83
- const type = ctx.params.type === 'image' ? 'image' : 'file'
84
- const key = ctx.params.key
85
- const messageId = ctx.params.message_id
86
- const selfId = ctx.request.query.self_id
87
- const bot = this.bots.find((bot) => bot.selfId === selfId)
88
- if (!bot) return ctx.status = 404
89
-
90
- const resp = await bot.http<ReadableStream>(`/im/v1/messages/${messageId}/resources/${key}`, {
91
- method: 'GET',
92
- params: { type },
93
- responseType: 'stream',
94
- })
95
- ctx.set('content-type', resp.headers.get('content-type'))
96
- ctx.status = 200
97
- ctx.response.body = Readable.fromWeb(resp.data)
98
- })
99
79
  }
100
80
 
101
81
  async dispatchSession(body: EventPayload) {
@@ -103,7 +83,7 @@ export class HttpServer<C extends Context = Context> extends Adapter<C, LarkBot<
103
83
  if (!header) return
104
84
  const { app_id, event_type } = header
105
85
  body.type = event_type // add type to body to ease typescript type narrowing
106
- const bot = this.bots.find((bot) => bot.appId === app_id)
86
+ const bot = this.bots.find((bot) => bot.config.appId === app_id)
107
87
  const session = await adaptSession(bot, body)
108
88
  bot.dispatch(session)
109
89
  }
package/src/message.ts CHANGED
@@ -101,7 +101,17 @@ export class LarkMessageEncoder<C extends Context = Context> extends MessageEnco
101
101
  }
102
102
 
103
103
  async sendFile(_type: 'video' | 'audio' | 'file', attrs: any) {
104
- const url = attrs.src || attrs.url
104
+ const url: string = attrs.src || attrs.url
105
+ const prefix = this.bot.getInternalUrl('/im/v1/files/')
106
+ if (url.startsWith(prefix)) {
107
+ const file_key = url.slice(prefix.length)
108
+ await this.post({
109
+ msg_type: _type === 'video' ? 'media' : _type,
110
+ content: JSON.stringify({ file_key }),
111
+ })
112
+ return
113
+ }
114
+
105
115
  const { filename, type, data } = await this.bot.assetsQuester.file(url)
106
116
 
107
117
  let file_type: CreateImFileForm['file_type']
package/src/types/api.ts CHANGED
@@ -446,7 +446,7 @@ declare module './internal' {
446
446
  * 获取消息中的资源文件
447
447
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-resource/get
448
448
  */
449
- getImMessageResource(message_id: string, file_key: string, query?: GetImMessageResourceQuery): Promise<Buffer>
449
+ getImMessageResource(message_id: string, file_key: string, query?: GetImMessageResourceQuery): Promise<ArrayBuffer>
450
450
  /**
451
451
  * 获取指定消息的内容
452
452
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/get
@@ -491,7 +491,7 @@ declare module './internal' {
491
491
  * 下载图片
492
492
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/get
493
493
  */
494
- getImImage(image_key: string): Promise<Buffer>
494
+ getImImage(image_key: string): Promise<ArrayBuffer>
495
495
  /**
496
496
  * 上传文件
497
497
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/file/create
@@ -501,7 +501,7 @@ declare module './internal' {
501
501
  * 下载文件
502
502
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/file/get
503
503
  */
504
- getImFile(file_key: string): Promise<Buffer>
504
+ getImFile(file_key: string): Promise<ArrayBuffer>
505
505
  /**
506
506
  * 更新应用发送的消息卡片
507
507
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/patch
@@ -741,7 +741,7 @@ declare module './internal' {
741
741
  * 下载素材
742
742
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/download
743
743
  */
744
- downloadDrivev1Media(file_token: string, query?: DownloadDrivev1MediaQuery): Promise<Buffer>
744
+ downloadDrivev1Media(file_token: string, query?: DownloadDrivev1MediaQuery): Promise<ArrayBuffer>
745
745
  /**
746
746
  * 获取素材临时下载链接
747
747
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/batch_get_tmp_download_url
@@ -801,7 +801,7 @@ declare module './internal' {
801
801
  * 下载文件
802
802
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/download
803
803
  */
804
- downloadDrivev1File(file_token: string): Promise<Buffer>
804
+ downloadDrivev1File(file_token: string): Promise<ArrayBuffer>
805
805
  /**
806
806
  * 创建导入任务
807
807
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/import_task/create
@@ -1756,7 +1756,7 @@ declare module './internal' {
1756
1756
  * 下载导出文件
1757
1757
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/export/download
1758
1758
  */
1759
- downloadVcExport(query?: DownloadVcExportQuery): Promise<Buffer>
1759
+ downloadVcExport(query?: DownloadVcExportQuery): Promise<ArrayBuffer>
1760
1760
  /**
1761
1761
  * 创建会议室层级
1762
1762
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/vc-v1/room_level/create
@@ -2051,7 +2051,7 @@ declare module './internal' {
2051
2051
  * 下载用户人脸识别照片
2052
2052
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/file/download
2053
2053
  */
2054
- downloadAttendanceFile(file_id: string): Promise<Buffer>
2054
+ downloadAttendanceFile(file_id: string): Promise<ArrayBuffer>
2055
2055
  /**
2056
2056
  * 通过过期时间获取发放记录
2057
2057
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/attendance-v1/leave_employ_expire_record/get
@@ -2291,7 +2291,7 @@ declare module './internal' {
2291
2291
  * 获取工单内图像
2292
2292
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/ticket_image
2293
2293
  */
2294
- ticketImageHelpdeskTicket(query?: TicketImageHelpdeskTicketQuery): Promise<Buffer>
2294
+ ticketImageHelpdeskTicket(query?: TicketImageHelpdeskTicketQuery): Promise<ArrayBuffer>
2295
2295
  /**
2296
2296
  * 回复用户在工单里的提问
2297
2297
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/answer_user_query
@@ -2371,7 +2371,7 @@ declare module './internal' {
2371
2371
  * 获取知识库图像
2372
2372
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/faq_image
2373
2373
  */
2374
- faqImageHelpdeskFaq(id: string, image_key: string): Promise<Buffer>
2374
+ faqImageHelpdeskFaq(id: string, image_key: string): Promise<ArrayBuffer>
2375
2375
  /**
2376
2376
  * 搜索知识库
2377
2377
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/search
@@ -3461,7 +3461,7 @@ declare module './internal' {
3461
3461
  * 下载人员的附件
3462
3462
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/ehr/ehr-v1/attachment/get
3463
3463
  */
3464
- getEhrAttachment(token: string): Promise<Buffer>
3464
+ getEhrAttachment(token: string): Promise<ArrayBuffer>
3465
3465
  /**
3466
3466
  * 查询国籍信息
3467
3467
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/basic_info-nationality/search
@@ -3641,7 +3641,7 @@ declare module './internal' {
3641
3641
  * 下载文件
3642
3642
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/file/get
3643
3643
  */
3644
- getCorehrFile(id: string): Promise<Buffer>
3644
+ getCorehrFile(id: string): Promise<ArrayBuffer>
3645
3645
  /**
3646
3646
  * 创建任职信息
3647
3647
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_data/create
@@ -4591,7 +4591,7 @@ declare module './internal' {
4591
4591
  * 下载人脸图片
4592
4592
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/acs-v1/user-face/get
4593
4593
  */
4594
- getAcsUserFace(user_id: string, query?: GetAcsUserFaceQuery): Promise<Buffer>
4594
+ getAcsUserFace(user_id: string, query?: GetAcsUserFaceQuery): Promise<ArrayBuffer>
4595
4595
  /**
4596
4596
  * 获取门禁设备列表
4597
4597
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/acs-v1/device/list
@@ -4606,7 +4606,7 @@ declare module './internal' {
4606
4606
  * 下载开门时的人脸识别图片
4607
4607
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/acs-v1/access_record-access_photo/get
4608
4608
  */
4609
- getAcsAccessRecordAccessPhoto(access_record_id: string): Promise<Buffer>
4609
+ getAcsAccessRecordAccessPhoto(access_record_id: string): Promise<ArrayBuffer>
4610
4610
  /**
4611
4611
  * 获取周期
4612
4612
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/performance-v1/semester/list
@@ -4696,7 +4696,7 @@ declare module './internal' {
4696
4696
  * 下载图片
4697
4697
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/lingo-v1/file/download
4698
4698
  */
4699
- downloadLingoFile(file_token: string): Promise<Buffer>
4699
+ downloadLingoFile(file_token: string): Promise<ArrayBuffer>
4700
4700
  /**
4701
4701
  * 获取OpenAPI审计日志数据
4702
4702
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/security_and_compliance-v1/openapi_log/list_data
@@ -4846,7 +4846,7 @@ declare module './internal' {
4846
4846
  * 下载图片
4847
4847
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/file/download
4848
4848
  */
4849
- downloadBaikeFile(file_token: string): Promise<Buffer>
4849
+ downloadBaikeFile(file_token: string): Promise<ArrayBuffer>
4850
4850
  /**
4851
4851
  * 获取用户列表
4852
4852
  * @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/list
@@ -25654,11 +25654,11 @@ export interface GetProgressImBatchMessageResponse {
25654
25654
  }
25655
25655
  export interface CreateImImageResponse {
25656
25656
  /** 图片的key */
25657
- image_key?: string
25657
+ image_key: string
25658
25658
  }
25659
25659
  export interface CreateImFileResponse {
25660
25660
  /** 文件的key */
25661
- file_key?: string
25661
+ file_key: string
25662
25662
  }
25663
25663
  export interface CreateImMessageReactionResponse extends Lark.MessageReaction {}
25664
25664
  export interface DeleteImMessageReactionResponse extends Lark.MessageReaction {}
@@ -28351,7 +28351,55 @@ Internal.define({
28351
28351
  '/auth/v3/app_ticket/resend': {
28352
28352
  POST: 'appTicketResendAuth',
28353
28353
  },
28354
- }, { noExtractData: true })
28354
+ }, { type: 'json-body' })
28355
+
28356
+ Internal.define({
28357
+ '/im/v1/messages/{message_id}/resources/{file_key}': {
28358
+ GET: 'getImMessageResource',
28359
+ },
28360
+ '/im/v1/images/{image_key}': {
28361
+ GET: 'getImImage',
28362
+ },
28363
+ '/im/v1/files/{file_key}': {
28364
+ GET: 'getImFile',
28365
+ },
28366
+ '/drive/v1/medias/{file_token}/download': {
28367
+ GET: 'downloadDrivev1Media',
28368
+ },
28369
+ '/drive/v1/files/{file_token}/download': {
28370
+ GET: 'downloadDrivev1File',
28371
+ },
28372
+ '/vc/v1/exports/download': {
28373
+ GET: 'downloadVcExport',
28374
+ },
28375
+ '/attendance/v1/files/{file_id}/download': {
28376
+ GET: 'downloadAttendanceFile',
28377
+ },
28378
+ '/helpdesk/v1/ticket_images': {
28379
+ GET: 'ticketImageHelpdeskTicket',
28380
+ },
28381
+ '/helpdesk/v1/faqs/{id}/image/{image_key}': {
28382
+ GET: 'faqImageHelpdeskFaq',
28383
+ },
28384
+ '/ehr/v1/attachments/{token}': {
28385
+ GET: 'getEhrAttachment',
28386
+ },
28387
+ '/corehr/v1/files/{id}': {
28388
+ GET: 'getCorehrFile',
28389
+ },
28390
+ '/acs/v1/users/{user_id}/face': {
28391
+ GET: 'getAcsUserFace',
28392
+ },
28393
+ '/acs/v1/access_records/{access_record_id}/access_photo': {
28394
+ GET: 'getAcsAccessRecordAccessPhoto',
28395
+ },
28396
+ '/lingo/v1/files/{file_token}/download': {
28397
+ GET: 'downloadLingoFile',
28398
+ },
28399
+ '/baike/v1/files/{file_token}/download': {
28400
+ GET: 'downloadBaikeFile',
28401
+ },
28402
+ }, { type: 'binary' })
28355
28403
 
28356
28404
  Internal.define({
28357
28405
  '/event/v1/outbound_ip': {
@@ -28560,9 +28608,6 @@ Internal.define({
28560
28608
  '/im/v1/messages/{message_id}/read_users': {
28561
28609
  GET: 'readUsersImMessage',
28562
28610
  },
28563
- '/im/v1/messages/{message_id}/resources/{file_key}': {
28564
- GET: 'getImMessageResource',
28565
- },
28566
28611
  '/im/v1/messages/{message_id}/urgent_app': {
28567
28612
  PATCH: 'urgentAppImMessage',
28568
28613
  },
@@ -28581,12 +28626,6 @@ Internal.define({
28581
28626
  '/im/v1/batch_messages/{batch_message_id}/get_progress': {
28582
28627
  GET: 'getProgressImBatchMessage',
28583
28628
  },
28584
- '/im/v1/images/{image_key}': {
28585
- GET: 'getImImage',
28586
- },
28587
- '/im/v1/files/{file_key}': {
28588
- GET: 'getImFile',
28589
- },
28590
28629
  '/im/v1/messages/{message_id}/reactions': {
28591
28630
  POST: 'createImMessageReaction',
28592
28631
  GET: 'listImMessageReaction',
@@ -28700,9 +28739,6 @@ Internal.define({
28700
28739
  '/drive/v1/files/task_check': {
28701
28740
  GET: 'taskCheckDrivev1File',
28702
28741
  },
28703
- '/drive/v1/medias/{file_token}/download': {
28704
- GET: 'downloadDrivev1Media',
28705
- },
28706
28742
  '/drive/v1/medias/batch_get_tmp_download_url': {
28707
28743
  GET: 'batchGetTmpDownloadUrlDrivev1Media',
28708
28744
  },
@@ -28727,9 +28763,6 @@ Internal.define({
28727
28763
  '/drive/v1/files/upload_finish': {
28728
28764
  POST: 'uploadFinishDrivev1File',
28729
28765
  },
28730
- '/drive/v1/files/{file_token}/download': {
28731
- GET: 'downloadDrivev1File',
28732
- },
28733
28766
  '/drive/v1/import_tasks': {
28734
28767
  POST: 'createDrivev1ImportTask',
28735
28768
  },
@@ -29200,9 +29233,6 @@ Internal.define({
29200
29233
  '/vc/v1/exports/{task_id}': {
29201
29234
  GET: 'getVcExport',
29202
29235
  },
29203
- '/vc/v1/exports/download': {
29204
- GET: 'downloadVcExport',
29205
- },
29206
29236
  '/vc/v1/room_levels': {
29207
29237
  POST: 'createVcRoomLevel',
29208
29238
  GET: 'listVcRoomLevel',
@@ -29348,9 +29378,6 @@ Internal.define({
29348
29378
  '/attendance/v1/user_settings/query': {
29349
29379
  GET: 'queryAttendanceUserSetting',
29350
29380
  },
29351
- '/attendance/v1/files/{file_id}/download': {
29352
- GET: 'downloadAttendanceFile',
29353
- },
29354
29381
  '/attendance/v1/leave_employ_expire_records/{leave_id}': {
29355
29382
  GET: 'getAttendanceLeaveEmployExpireRecord',
29356
29383
  },
@@ -29477,9 +29504,6 @@ Internal.define({
29477
29504
  '/helpdesk/v1/tickets': {
29478
29505
  GET: 'listHelpdeskTicket',
29479
29506
  },
29480
- '/helpdesk/v1/ticket_images': {
29481
- GET: 'ticketImageHelpdeskTicket',
29482
- },
29483
29507
  '/helpdesk/v1/tickets/{ticket_id}/answer_user_query': {
29484
29508
  POST: 'answerUserQueryHelpdeskTicket',
29485
29509
  },
@@ -29511,9 +29535,6 @@ Internal.define({
29511
29535
  PATCH: 'patchHelpdeskFaq',
29512
29536
  GET: 'getHelpdeskFaq',
29513
29537
  },
29514
- '/helpdesk/v1/faqs/{id}/image/{image_key}': {
29515
- GET: 'faqImageHelpdeskFaq',
29516
- },
29517
29538
  '/helpdesk/v1/faqs/search': {
29518
29539
  GET: 'searchHelpdeskFaq',
29519
29540
  },
@@ -29977,9 +29998,6 @@ Internal.define({
29977
29998
  '/ehr/v1/employees': {
29978
29999
  GET: 'listEhrEmployee',
29979
30000
  },
29980
- '/ehr/v1/attachments/{token}': {
29981
- GET: 'getEhrAttachment',
29982
- },
29983
30001
  '/corehr/v2/basic_info/nationalities/search': {
29984
30002
  POST: 'searchCorehrBasicInfoNationality',
29985
30003
  },
@@ -30063,9 +30081,6 @@ Internal.define({
30063
30081
  DELETE: 'deleteCorehrPerson',
30064
30082
  GET: 'getCorehrPerson',
30065
30083
  },
30066
- '/corehr/v1/files/{id}': {
30067
- GET: 'getCorehrFile',
30068
- },
30069
30084
  '/corehr/v1/job_datas': {
30070
30085
  POST: 'createCorehrJobData',
30071
30086
  GET: 'listCorehrJobData',
@@ -30554,9 +30569,6 @@ Internal.define({
30554
30569
  '/acs/v1/access_records': {
30555
30570
  GET: 'listAcsAccessRecord',
30556
30571
  },
30557
- '/acs/v1/access_records/{access_record_id}/access_photo': {
30558
- GET: 'getAcsAccessRecordAccessPhoto',
30559
- },
30560
30572
  '/performance/v1/semesters': {
30561
30573
  GET: 'listPerformanceSemester',
30562
30574
  },
@@ -30599,9 +30611,6 @@ Internal.define({
30599
30611
  '/lingo/v1/repos': {
30600
30612
  GET: 'listLingoRepo',
30601
30613
  },
30602
- '/lingo/v1/files/{file_token}/download': {
30603
- GET: 'downloadLingoFile',
30604
- },
30605
30614
  '/security_and_compliance/v1/openapi_logs/list_data': {
30606
30615
  POST: 'listDataSecurityAndComplianceOpenapiLog',
30607
30616
  },
@@ -30682,9 +30691,6 @@ Internal.define({
30682
30691
  '/baike/v1/classifications': {
30683
30692
  GET: 'listBaikeClassification',
30684
30693
  },
30685
- '/baike/v1/files/{file_token}/download': {
30686
- GET: 'downloadBaikeFile',
30687
- },
30688
30694
  '/hire/v1/applications/{application_id}/interviews': {
30689
30695
  GET: 'listHireApplicationInterview',
30690
30696
  },
@@ -12,7 +12,7 @@ export interface BaseResponse {
12
12
 
13
13
  export interface InternalConfig {
14
14
  multipart?: boolean
15
- noExtractData?: boolean
15
+ type?: 'json-body' | 'binary'
16
16
  }
17
17
 
18
18
  export class Internal {
@@ -66,9 +66,16 @@ export class Internal {
66
66
  } else if (args.length > 1) {
67
67
  throw new Error(`too many arguments for ${path}, received ${raw}`)
68
68
  }
69
+ if (options.type === 'binary') {
70
+ config.responseType = 'arraybuffer'
71
+ }
69
72
  const response = await this.bot.http(method, url, config)
70
73
  this._assertResponse(response)
71
- return options.noExtractData ? response.data : response.data.data
74
+ if (options.type === 'json-body' || options.type === 'binary') {
75
+ return response.data
76
+ } else {
77
+ return response.data.data
78
+ }
72
79
  }
73
80
  }
74
81
  }
package/src/utils.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import crypto from 'crypto'
2
- import { Context, h, Session, trimSlash, Universal } from '@satorijs/core'
2
+ import { Context, h, Session, Universal } from '@satorijs/core'
3
3
  import { LarkBot } from './bot'
4
4
  import { EventPayload, Events, GetImChatResponse, Lark } from './types'
5
5
 
@@ -24,7 +24,6 @@ export function adaptSender(sender: Sender, session: Session): Session {
24
24
 
25
25
  export async function adaptMessage(bot: LarkBot, data: Events['im.message.receive_v1'], session: Session, details = true): Promise<Session> {
26
26
  const json = JSON.parse(data.message.content)
27
- const assetEndpoint = trimSlash(bot.config.selfUrl ?? bot.ctx.server.config.selfUrl) + bot.config.path + '/assets'
28
27
  const content: (string | h)[] = []
29
28
  switch (data.message.message_type) {
30
29
  case 'text': {
@@ -46,16 +45,18 @@ export async function adaptMessage(bot: LarkBot, data: Events['im.message.receiv
46
45
  break
47
46
  }
48
47
  case 'image':
49
- content.push(h.image(`${assetEndpoint}/image/${data.message.message_id}/${json.image_key}?self_id=${bot.selfId}`))
48
+ content.push(h.image(bot.getResourceUrl('image', data.message.message_id, json.image_key)))
50
49
  break
51
50
  case 'audio':
52
- content.push(h.audio(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`))
51
+ content.push(h.audio(bot.getResourceUrl('file', data.message.message_id, json.file_key)))
53
52
  break
54
53
  case 'media':
55
- content.push(h.video(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`, json.image_key))
54
+ content.push(h.video(bot.getResourceUrl('file', data.message.message_id, json.file_key), {
55
+ poster: json.image_key,
56
+ }))
56
57
  break
57
58
  case 'file':
58
- content.push(h.file(`${assetEndpoint}/file/${data.message.message_id}/${json.file_key}?self_id=${bot.selfId}`))
59
+ content.push(h.file(bot.getResourceUrl('file', data.message.message_id, json.file_key)))
59
60
  break
60
61
  }
61
62
 
@@ -135,7 +136,6 @@ export async function adaptSession<C extends Context>(bot: LarkBot<C>, body: Eve
135
136
  // TODO: This function has many duplicated code with `adaptMessage`, should refactor them
136
137
  export async function decodeMessage(bot: LarkBot, body: Lark.Message, details = true): Promise<Universal.Message> {
137
138
  const json = JSON.parse(body.body.content)
138
- const assetEndpoint = trimSlash(bot.config.selfUrl ?? bot.ctx.server.config.selfUrl) + bot.config.path + '/assets'
139
139
  const content: h[] = []
140
140
  switch (body.msg_type) {
141
141
  case 'text': {
@@ -157,16 +157,18 @@ export async function decodeMessage(bot: LarkBot, body: Lark.Message, details =
157
157
  break
158
158
  }
159
159
  case 'image':
160
- content.push(h.image(`${assetEndpoint}/image/${body.message_id}/${json.image_key}?self_id=${bot.selfId}`))
160
+ content.push(h.image(bot.getResourceUrl('image', body.message_id, json.image_key)))
161
161
  break
162
162
  case 'audio':
163
- content.push(h.audio(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`))
163
+ content.push(h.audio(bot.getResourceUrl('file', body.message_id, json.file_key)))
164
164
  break
165
165
  case 'media':
166
- content.push(h.video(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`, json.image_key))
166
+ content.push(h.video(bot.getResourceUrl('file', body.message_id, json.file_key), {
167
+ poster: json.image_key,
168
+ }))
167
169
  break
168
170
  case 'file':
169
- content.push(h.file(`${assetEndpoint}/file/${body.message_id}/${json.file_key}?self_id=${bot.selfId}`))
171
+ content.push(h.file(bot.getResourceUrl('file', body.message_id, json.file_key)))
170
172
  break
171
173
  }
172
174
 
package/lib/index.cjs.map DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts", "../src/bot.ts", "../src/http.ts", "../src/utils.ts", "../src/message.ts", "../src/types/index.ts", "../src/types/internal.ts", "../src/types/api.ts"],
4
- "mappings": "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",
5
- "names": ["import_core", "import_core", "mention", "crypto", "bot", "body", "HttpServer", "import_core", "import_core", "data", "LarkBot"]
6
- }