@larksuiteoapi/node-sdk 1.14.0 → 1.15.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/README.md CHANGED
@@ -185,6 +185,74 @@ const res = await client. request({
185
185
  params: {},
186
186
  });
187
187
  ````
188
+ #### Message Card
189
+ When sending [message card](https://open.feishu.cn/document/ukTMukTMukTM/uczM3QjL3MzN04yNzcDN), it will first be in the [message card builder](https://open.feishu.cn/document/ukTMukTMukTM/uYzM3QjL2MzN04iNzcDN/message-card-builder) to build a message card template, get the generated template json, replace the content-related parts with data, and use the result as a parameter to support the message card api. Such as sending a simple message card with `title` and `content`:
190
+ ```typescript
191
+ client.im.message.create({
192
+ params: {
193
+ receive_id_type: 'chat_id',
194
+ },
195
+ data: {
196
+ receive_id: 'your receive_id',
197
+ content: JSON.stringify({
198
+ "config": {
199
+ "wide_screen_mode": true
200
+ },
201
+ "elements": [
202
+ {
203
+ "tag": "markdown",
204
+ "content": "Card Content"
205
+ }
206
+ ],
207
+ "header": {
208
+ "template": "blue",
209
+ "title": {
210
+ "content": "Card Title",
211
+ "tag": "plain_text"
212
+ }
213
+ }
214
+ }
215
+ ),
216
+ msg_type: 'interactive'
217
+ }
218
+ })
219
+ ```
220
+ ![](doc/msg-card.png)
221
+ There will be a problem: **If the content of the message card is relatively rich, the generated template json is relatively large, and there will be more content that needs to be filled with data, and manual maintenance is more cumbersome**. To solve this problem, The Open-Platform provides the ability of [Template Message](https://open.feishu.cn/document/tools-and-resources/message-card-builder#3e1f2c7c).When sending a message card, you only need to provide the template id and the data content of the template. The sdk encapsulates this ability in terms of calling, and the interface that supports message cards will synchronously add a ByCard calling method, only need to pass `template_id` and `template_variable`. The above call can be rewritten as:
222
+ ```typescript
223
+ client.im.message.createByCard({
224
+ params: {
225
+ receive_id_type: 'chat_id',
226
+ },
227
+ data: {
228
+ receive_id: 'your receive_id',
229
+ template_id: 'your template_id',
230
+ template_variable: {
231
+ content: "Card Content",
232
+ title: "Card Title"
233
+ }
234
+ }
235
+ });
236
+ ```
237
+ If you want to quickly experience Message Card, you can use a basic card built into the sdk:
238
+ ```typescript
239
+ import * as lark from '@larksuiteoapi/node-sdk';
240
+
241
+ client.im.message.create({
242
+ params: {
243
+ receive_id_type: 'chat_id',
244
+ },
245
+ data: {
246
+ receive_id: 'your receive_id',
247
+ content: lark.messageCard.defaultCard({
248
+ title: 'Card Title',
249
+ content: 'Card Content'
250
+ }),
251
+ msg_type: 'interactive'
252
+ }
253
+ })
254
+ ```
255
+ ![](doc/msg-card.png)
188
256
 
189
257
  #### Configure request options
190
258
  If you want to modify the parameters of the request during the API call, such as carrying some headers, custom tenantToken, etc., you can use the second parameter of the request method to modify:
package/README.zh.md CHANGED
@@ -184,6 +184,75 @@ const res = await client.request({
184
184
  params: {},
185
185
  });
186
186
  ```
187
+ #### 消息卡片
188
+ 在发送[消息卡片](https://open.feishu.cn/document/ukTMukTMukTM/uczM3QjL3MzN04yNzcDN)信息时,会先在[消息卡片搭建工具](https://open.feishu.cn/document/ukTMukTMukTM/uYzM3QjL2MzN04iNzcDN/message-card-builder)中搭建出消息卡片的模版,拿到生成的模版json,用数据替换其中内容相关的部分,将结果作为支持消息卡片api的参数来使用。如发送一个简单的具有`title`和`content`的消息卡片:
189
+ ```typescript
190
+ client.im.message.create({
191
+ params: {
192
+ receive_id_type: 'chat_id',
193
+ },
194
+ data: {
195
+ receive_id: 'your receive_id',
196
+ content: JSON.stringify({
197
+ "config": {
198
+ "wide_screen_mode": true
199
+ },
200
+ "elements": [
201
+ {
202
+ "tag": "markdown",
203
+ "content": "Card Content"
204
+ }
205
+ ],
206
+ "header": {
207
+ "template": "blue",
208
+ "title": {
209
+ "content": "Card Title",
210
+ "tag": "plain_text"
211
+ }
212
+ }
213
+ }
214
+ ),
215
+ msg_type: 'interactive'
216
+ }
217
+ })
218
+ ```
219
+ ![](doc/msg-card.png)
220
+ 这样使用会有一个问题:**如果消息卡片内容比较丰富,生成的模版json比较大,与之相关需要数据填充的内容部分也会比较多,手动维护比较繁琐**。针对这个问题,开放平台提供了[模版消息](https://open.feishu.cn/document/tools-and-resources/message-card-builder#3e1f2c7c)的能力,发送消息卡片时只需要提供模版id和模版的数据内容即可。sdk对这个能力进行了调用上的封装,支持消息卡片的接口会同步的增加一个ByCard的调用方式,只需要传递`template_id`和`template_variable`即可。如上面的调用可以改写成:
221
+ ```typescript
222
+ client.im.message.createByCard({
223
+ params: {
224
+ receive_id_type: 'chat_id',
225
+ },
226
+ data: {
227
+ receive_id: 'your receive_id',
228
+ template_id: 'your template_id',
229
+ template_variable: {
230
+ content: "Card Content",
231
+ title: "Card Title"
232
+ }
233
+ }
234
+ });
235
+ ```
236
+ 如果想要快速体验消息卡片,可以使用sdk中内置的一个基础卡片:
237
+ ```typescript
238
+ import * as lark from '@larksuiteoapi/node-sdk';
239
+
240
+ client.im.message.create({
241
+ params: {
242
+ receive_id_type: 'chat_id',
243
+ },
244
+ data: {
245
+ receive_id: 'your receive_id',
246
+ content: lark.messageCard.defaultCard({
247
+ title: 'Card Title',
248
+ content: 'Card Content'
249
+ }),
250
+ msg_type: 'interactive'
251
+ }
252
+ })
253
+ ```
254
+ 效果同上:
255
+ ![](doc/msg-card.png)
187
256
 
188
257
  #### 配置请求选项
189
258
  如果想在api调用过程中修改请求的参数,如携带一些header,自定义tenantToken等,则可以使用请求方法的第二个参数来进行修改:
package/es/index.js CHANGED
@@ -14951,6 +14951,70 @@ class Client$1 {
14951
14951
  throw e;
14952
14952
  });
14953
14953
  }),
14954
+ /**
14955
+ * {@link https://open.feishu.cn/api-explorer?project=im&resource=message&apiName=create&version=v1 click to debug }
14956
+ *
14957
+ * {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create document }
14958
+ *
14959
+ * 通过模版消息卡片发送消息
14960
+ *
14961
+ * 注意事项:;- 需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability) ;- 给用户发送消息,需要机器人对用户有[可用性](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability);- 给群组发送消息,需要机器人在群组中
14962
+ */
14963
+ createByCard: (payload, options) => __awaiter(this, void 0, void 0, function* () {
14964
+ const { headers, params, data, path } = yield this.formatPayload(payload, options);
14965
+ const { template_id, template_variable } = data, rest = __rest(data, ["template_id", "template_variable"]);
14966
+ const targetData = Object.assign({ msg_type: "interactive", content: JSON.stringify({
14967
+ type: "template",
14968
+ data: {
14969
+ template_id: template_id,
14970
+ template_variable: template_variable,
14971
+ },
14972
+ }) }, rest);
14973
+ return this.httpInstance
14974
+ .request({
14975
+ url: fillApiPath(`${this.domain}/open-apis/im/v1/messages`, path),
14976
+ method: "POST",
14977
+ data: targetData,
14978
+ params,
14979
+ headers,
14980
+ })
14981
+ .catch((e) => {
14982
+ this.logger.error(formatErrors(e));
14983
+ throw e;
14984
+ });
14985
+ }),
14986
+ /**
14987
+ * {@link https://open.feishu.cn/api-explorer?project=im&resource=message&apiName=reply&version=v1 click to debug }
14988
+ *
14989
+ * {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/reply document }
14990
+ *
14991
+ * 通过模版消息卡片回复消息
14992
+ *
14993
+ * 注意事项:;- 需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability) ;- 回复私聊消息,需要机器人对用户有[可用性](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability);- 回复群组消息,需要机器人在群中
14994
+ */
14995
+ replyByCard: (payload, options) => __awaiter(this, void 0, void 0, function* () {
14996
+ const { headers, params, data, path } = yield this.formatPayload(payload, options);
14997
+ const { template_id, template_variable } = data, rest = __rest(data, ["template_id", "template_variable"]);
14998
+ const targetData = Object.assign({ msg_type: "interactive", content: JSON.stringify({
14999
+ type: "template",
15000
+ data: {
15001
+ template_id: template_id,
15002
+ template_variable: template_variable,
15003
+ },
15004
+ }) }, rest);
15005
+ return this.httpInstance
15006
+ .request({
15007
+ url: fillApiPath(`${this.domain}/open-apis/im/v1/messages/:message_id/reply`, path),
15008
+ method: "POST",
15009
+ data: targetData,
15010
+ params,
15011
+ headers,
15012
+ })
15013
+ .catch((e) => {
15014
+ this.logger.error(formatErrors(e));
15015
+ throw e;
15016
+ });
15017
+ }),
14954
15018
  },
14955
15019
  /**
14956
15020
  * 消息 - 表情回复
@@ -22027,4 +22091,31 @@ const adaptKoaRouter = (dispatcher, options) => (ctx, next) => __awaiter(void 0,
22027
22091
  yield next();
22028
22092
  });
22029
22093
 
22030
- export { AESCipher, AppType, CAppTicket, CTenantAccessToken, CardActionHandler, Client, Domain, EventDispatcher, LoggerLevel, adaptDefault, adaptExpress, adaptKoa, adaptKoaRouter, defaultHttpInstance, generateChallenge, withAll, withHelpDeskCredential, withTenantKey, withTenantToken, withUserAccessToken };
22094
+ const defaultCard = (variables) => {
22095
+ const { title, content } = variables;
22096
+ return JSON.stringify({
22097
+ "config": {
22098
+ "wide_screen_mode": true
22099
+ },
22100
+ "elements": [
22101
+ {
22102
+ "tag": "markdown",
22103
+ "content": content
22104
+ }
22105
+ ],
22106
+ "header": {
22107
+ "template": "blue",
22108
+ "title": {
22109
+ "content": title,
22110
+ "tag": "plain_text"
22111
+ }
22112
+ }
22113
+ });
22114
+ };
22115
+
22116
+ var messageCard = /*#__PURE__*/Object.freeze({
22117
+ __proto__: null,
22118
+ defaultCard: defaultCard
22119
+ });
22120
+
22121
+ export { AESCipher, AppType, CAppTicket, CTenantAccessToken, CardActionHandler, Client, Domain, EventDispatcher, LoggerLevel, adaptDefault, adaptExpress, adaptKoa, adaptKoaRouter, defaultHttpInstance, generateChallenge, messageCard, withAll, withHelpDeskCredential, withTenantKey, withTenantToken, withUserAccessToken };
package/lib/index.js CHANGED
@@ -14966,6 +14966,70 @@ class Client$1 {
14966
14966
  throw e;
14967
14967
  });
14968
14968
  }),
14969
+ /**
14970
+ * {@link https://open.feishu.cn/api-explorer?project=im&resource=message&apiName=create&version=v1 click to debug }
14971
+ *
14972
+ * {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create document }
14973
+ *
14974
+ * 通过模版消息卡片发送消息
14975
+ *
14976
+ * 注意事项:;- 需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability) ;- 给用户发送消息,需要机器人对用户有[可用性](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability);- 给群组发送消息,需要机器人在群组中
14977
+ */
14978
+ createByCard: (payload, options) => __awaiter(this, void 0, void 0, function* () {
14979
+ const { headers, params, data, path } = yield this.formatPayload(payload, options);
14980
+ const { template_id, template_variable } = data, rest = __rest(data, ["template_id", "template_variable"]);
14981
+ const targetData = Object.assign({ msg_type: "interactive", content: JSON.stringify({
14982
+ type: "template",
14983
+ data: {
14984
+ template_id: template_id,
14985
+ template_variable: template_variable,
14986
+ },
14987
+ }) }, rest);
14988
+ return this.httpInstance
14989
+ .request({
14990
+ url: fillApiPath(`${this.domain}/open-apis/im/v1/messages`, path),
14991
+ method: "POST",
14992
+ data: targetData,
14993
+ params,
14994
+ headers,
14995
+ })
14996
+ .catch((e) => {
14997
+ this.logger.error(formatErrors(e));
14998
+ throw e;
14999
+ });
15000
+ }),
15001
+ /**
15002
+ * {@link https://open.feishu.cn/api-explorer?project=im&resource=message&apiName=reply&version=v1 click to debug }
15003
+ *
15004
+ * {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/reply document }
15005
+ *
15006
+ * 通过模版消息卡片回复消息
15007
+ *
15008
+ * 注意事项:;- 需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability) ;- 回复私聊消息,需要机器人对用户有[可用性](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability);- 回复群组消息,需要机器人在群中
15009
+ */
15010
+ replyByCard: (payload, options) => __awaiter(this, void 0, void 0, function* () {
15011
+ const { headers, params, data, path } = yield this.formatPayload(payload, options);
15012
+ const { template_id, template_variable } = data, rest = __rest(data, ["template_id", "template_variable"]);
15013
+ const targetData = Object.assign({ msg_type: "interactive", content: JSON.stringify({
15014
+ type: "template",
15015
+ data: {
15016
+ template_id: template_id,
15017
+ template_variable: template_variable,
15018
+ },
15019
+ }) }, rest);
15020
+ return this.httpInstance
15021
+ .request({
15022
+ url: fillApiPath(`${this.domain}/open-apis/im/v1/messages/:message_id/reply`, path),
15023
+ method: "POST",
15024
+ data: targetData,
15025
+ params,
15026
+ headers,
15027
+ })
15028
+ .catch((e) => {
15029
+ this.logger.error(formatErrors(e));
15030
+ throw e;
15031
+ });
15032
+ }),
14969
15033
  },
14970
15034
  /**
14971
15035
  * 消息 - 表情回复
@@ -22042,6 +22106,33 @@ const adaptKoaRouter = (dispatcher, options) => (ctx, next) => __awaiter(void 0,
22042
22106
  yield next();
22043
22107
  });
22044
22108
 
22109
+ const defaultCard = (variables) => {
22110
+ const { title, content } = variables;
22111
+ return JSON.stringify({
22112
+ "config": {
22113
+ "wide_screen_mode": true
22114
+ },
22115
+ "elements": [
22116
+ {
22117
+ "tag": "markdown",
22118
+ "content": content
22119
+ }
22120
+ ],
22121
+ "header": {
22122
+ "template": "blue",
22123
+ "title": {
22124
+ "content": title,
22125
+ "tag": "plain_text"
22126
+ }
22127
+ }
22128
+ });
22129
+ };
22130
+
22131
+ var messageCard = /*#__PURE__*/Object.freeze({
22132
+ __proto__: null,
22133
+ defaultCard: defaultCard
22134
+ });
22135
+
22045
22136
  exports.AESCipher = AESCipher;
22046
22137
  exports.CAppTicket = CAppTicket;
22047
22138
  exports.CTenantAccessToken = CTenantAccessToken;
@@ -22054,6 +22145,7 @@ exports.adaptKoa = adaptKoa;
22054
22145
  exports.adaptKoaRouter = adaptKoaRouter;
22055
22146
  exports.defaultHttpInstance = defaultHttpInstance;
22056
22147
  exports.generateChallenge = generateChallenge;
22148
+ exports.messageCard = messageCard;
22057
22149
  exports.withAll = withAll;
22058
22150
  exports.withHelpDeskCredential = withHelpDeskCredential;
22059
22151
  exports.withTenantKey = withTenantKey;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@larksuiteoapi/node-sdk",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "description": "larksuite open sdk for nodejs",
5
5
  "keywords": [
6
6
  "feishu",
package/types/index.d.ts CHANGED
@@ -46474,6 +46474,107 @@ declare abstract class Client$1 {
46474
46474
  invalid_user_id_list: Array<string>;
46475
46475
  } | undefined;
46476
46476
  }>;
46477
+ /**
46478
+ * {@link https://open.feishu.cn/api-explorer?project=im&resource=message&apiName=create&version=v1 click to debug }
46479
+ *
46480
+ * {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create document }
46481
+ *
46482
+ * 通过模版消息卡片发送消息
46483
+ *
46484
+ * 注意事项:;- 需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability) ;- 给用户发送消息,需要机器人对用户有[可用性](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability);- 给群组发送消息,需要机器人在群组中
46485
+ */
46486
+ createByCard: (payload?: {
46487
+ data: {
46488
+ receive_id: string;
46489
+ uuid?: string;
46490
+ template_id: string;
46491
+ template_variable?: Record<string, any>;
46492
+ };
46493
+ params: {
46494
+ receive_id_type: "open_id" | "user_id" | "union_id" | "email" | "chat_id";
46495
+ };
46496
+ }, options?: IRequestOptions$1) => Promise<{
46497
+ code?: number | undefined;
46498
+ msg?: string | undefined;
46499
+ data?: {
46500
+ message_id?: string | undefined;
46501
+ root_id?: string | undefined;
46502
+ parent_id?: string | undefined;
46503
+ msg_type?: string | undefined;
46504
+ create_time?: string | undefined;
46505
+ update_time?: string | undefined;
46506
+ deleted?: boolean | undefined;
46507
+ updated?: boolean | undefined;
46508
+ chat_id?: string | undefined;
46509
+ sender?: {
46510
+ id: string;
46511
+ id_type: string;
46512
+ sender_type: string;
46513
+ tenant_key?: string | undefined;
46514
+ } | undefined;
46515
+ body?: {
46516
+ content: string;
46517
+ } | undefined;
46518
+ mentions?: {
46519
+ key: string;
46520
+ id: string;
46521
+ id_type: string;
46522
+ name: string;
46523
+ tenant_key?: string | undefined;
46524
+ }[] | undefined;
46525
+ upper_message_id?: string | undefined;
46526
+ } | undefined;
46527
+ }>;
46528
+ /**
46529
+ * {@link https://open.feishu.cn/api-explorer?project=im&resource=message&apiName=reply&version=v1 click to debug }
46530
+ *
46531
+ * {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/reply document }
46532
+ *
46533
+ * 通过模版消息卡片回复消息
46534
+ *
46535
+ * 注意事项:;- 需要开启[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability) ;- 回复私聊消息,需要机器人对用户有[可用性](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability);- 回复群组消息,需要机器人在群中
46536
+ */
46537
+ replyByCard: (payload?: {
46538
+ data: {
46539
+ uuid?: string;
46540
+ template_id: string;
46541
+ template_variable?: Record<string, any>;
46542
+ };
46543
+ path: {
46544
+ message_id: string;
46545
+ };
46546
+ }, options?: IRequestOptions$1) => Promise<{
46547
+ code?: number | undefined;
46548
+ msg?: string | undefined;
46549
+ data?: {
46550
+ message_id?: string | undefined;
46551
+ root_id?: string | undefined;
46552
+ parent_id?: string | undefined;
46553
+ msg_type?: string | undefined;
46554
+ create_time?: string | undefined;
46555
+ update_time?: string | undefined;
46556
+ deleted?: boolean | undefined;
46557
+ updated?: boolean | undefined;
46558
+ chat_id?: string | undefined;
46559
+ sender?: {
46560
+ id: string;
46561
+ id_type: string;
46562
+ sender_type: string;
46563
+ tenant_key?: string | undefined;
46564
+ } | undefined;
46565
+ body?: {
46566
+ content: string;
46567
+ } | undefined;
46568
+ mentions?: {
46569
+ key: string;
46570
+ id: string;
46571
+ id_type: string;
46572
+ name: string;
46573
+ tenant_key?: string | undefined;
46574
+ }[] | undefined;
46575
+ upper_message_id?: string | undefined;
46576
+ } | undefined;
46577
+ }>;
46477
46578
  };
46478
46579
  /**
46479
46580
  * 消息 - 表情回复
@@ -58851,4 +58952,16 @@ interface InteractiveCardSelectMenuActionItem extends InteractiveCardActionBaseI
58851
58952
  value?: Record<string, any>;
58852
58953
  }
58853
58954
 
58854
- export { AESCipher, AppType, CAppTicket, CTenantAccessToken, Cache, CardActionHandler, Client, Domain, EventDispatcher, IHandles as EventHandles, HttpInstance, HttpRequestOptions, InteractiveCard, InteractiveCardActionEvent, InteractiveCardActionItem, InteractiveCardButtonActionItem, InteractiveCardDatePickerActionItem, InteractiveCardDivElement, InteractiveCardDividerElement, InteractiveCardElement, InteractiveCardField, InteractiveCardImageElement, InteractiveCardImageItem, InteractiveCardLarkMdItem, InteractiveCardMarkdownElement, InteractiveCardNoteElement, InteractiveCardOverflowActionItem, InteractiveCardPlainTextItem, InteractiveCardSelectMenuActionItem, InteractiveCardTextItem, InteractiveCardTitle, InteractiveCardUrlItem, InterfaceCardActionElement, LoggerLevel, adaptDefault, adaptExpress, adaptKoa, adaptKoaRouter, defaultHttpInstance, generateChallenge, withAll, withHelpDeskCredential, withTenantKey, withTenantToken, withUserAccessToken };
58955
+ declare const defaultCard: (variables: {
58956
+ title: string;
58957
+ content: string;
58958
+ }) => string;
58959
+
58960
+ declare const messageCard_defaultCard: typeof defaultCard;
58961
+ declare namespace messageCard {
58962
+ export {
58963
+ messageCard_defaultCard as defaultCard,
58964
+ };
58965
+ }
58966
+
58967
+ export { AESCipher, AppType, CAppTicket, CTenantAccessToken, Cache, CardActionHandler, Client, Domain, EventDispatcher, IHandles as EventHandles, HttpInstance, HttpRequestOptions, InteractiveCard, InteractiveCardActionEvent, InteractiveCardActionItem, InteractiveCardButtonActionItem, InteractiveCardDatePickerActionItem, InteractiveCardDivElement, InteractiveCardDividerElement, InteractiveCardElement, InteractiveCardField, InteractiveCardImageElement, InteractiveCardImageItem, InteractiveCardLarkMdItem, InteractiveCardMarkdownElement, InteractiveCardNoteElement, InteractiveCardOverflowActionItem, InteractiveCardPlainTextItem, InteractiveCardSelectMenuActionItem, InteractiveCardTextItem, InteractiveCardTitle, InteractiveCardUrlItem, InterfaceCardActionElement, LoggerLevel, adaptDefault, adaptExpress, adaptKoa, adaptKoaRouter, defaultHttpInstance, generateChallenge, messageCard, withAll, withHelpDeskCredential, withTenantKey, withTenantToken, withUserAccessToken };