@nest-packages/nestjs-lark-sdk 0.1.0 → 0.1.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.
Files changed (53) hide show
  1. package/dist/bitable-base-field.d.ts +177 -0
  2. package/dist/bitable-base-field.js +188 -0
  3. package/dist/bitable-base-field.js.map +1 -0
  4. package/dist/bitable-base-record.d.ts +211 -0
  5. package/dist/bitable-base-record.js +276 -0
  6. package/dist/bitable-base-record.js.map +1 -0
  7. package/dist/bitable-base.abstract.d.ts +18 -0
  8. package/dist/bitable-base.abstract.js +68 -0
  9. package/dist/bitable-base.abstract.js.map +1 -0
  10. package/dist/contact-base.d.ts +333 -0
  11. package/dist/contact-base.js +238 -0
  12. package/dist/contact-base.js.map +1 -0
  13. package/dist/feishu-base-plus.d.ts +19 -0
  14. package/dist/feishu-base-plus.js +187 -0
  15. package/dist/feishu-base-plus.js.map +1 -0
  16. package/dist/feishu-code.d.ts +22 -0
  17. package/dist/feishu-code.js +26 -0
  18. package/dist/feishu-code.js.map +1 -0
  19. package/dist/feishu.constants.d.ts +2 -0
  20. package/dist/feishu.constants.js +6 -0
  21. package/dist/feishu.constants.js.map +1 -0
  22. package/dist/feishu.utils.d.ts +5 -0
  23. package/dist/feishu.utils.js +23 -0
  24. package/dist/feishu.utils.js.map +1 -0
  25. package/dist/im-base.config.d.ts +3 -0
  26. package/dist/im-base.config.js +18 -0
  27. package/dist/im-base.config.js.map +1 -0
  28. package/dist/im-base.d.ts +96 -0
  29. package/dist/im-base.js +270 -0
  30. package/dist/im-base.js.map +1 -0
  31. package/dist/im-base.type.d.ts +19 -0
  32. package/dist/im-base.type.js +3 -0
  33. package/dist/im-base.type.js.map +1 -0
  34. package/dist/index.d.ts +8 -0
  35. package/dist/index.js +25 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/nestjs-lark-sdk.module.d.ts +9 -0
  38. package/dist/nestjs-lark-sdk.module.js +95 -0
  39. package/dist/nestjs-lark-sdk.module.js.map +1 -0
  40. package/dist/nestjs-lark-sdk.service.d.ts +2 -0
  41. package/dist/nestjs-lark-sdk.service.js +17 -0
  42. package/dist/nestjs-lark-sdk.service.js.map +1 -0
  43. package/dist/tsconfig.build.tsbuildinfo +1 -0
  44. package/dist/type.bitable.d.ts +9 -0
  45. package/dist/type.bitable.js +3 -0
  46. package/dist/type.bitable.js.map +1 -0
  47. package/dist/type.d.ts +63 -0
  48. package/dist/type.js +3 -0
  49. package/dist/type.js.map +1 -0
  50. package/dist/types/index.d.ts +168 -0
  51. package/dist/types/index.js +3 -0
  52. package/dist/types/index.js.map +1 -0
  53. package/package.json +13 -6
@@ -0,0 +1,177 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { appTableCreateData, appTableFieldCreateData, appTableFieldCreatePath } from './types';
3
+ import { AbstractBaseBitable } from './bitable-base.abstract';
4
+ import { FeishuBasePlus } from './feishu-base-plus';
5
+ export declare enum fieldTypeEnum {
6
+ '多行文本' = 1,
7
+ '数字' = 2,
8
+ '单选' = 3,
9
+ '多选' = 4,
10
+ '日期' = 5,
11
+ '复选框' = 7,
12
+ '人员' = 11,
13
+ '电话号码' = 13,
14
+ '超链接' = 15,
15
+ '附件' = 17,
16
+ '单向关联' = 18,
17
+ '公式' = 20,
18
+ '双向关联' = 21,
19
+ '地理位置' = 22,
20
+ '群组' = 23,
21
+ '创建时间' = 1001,
22
+ '最后更新时间' = 1002,
23
+ '创建人' = 1003,
24
+ '修改人' = 1004,
25
+ '自动编号' = 1005
26
+ }
27
+ export declare class BitableFieldBase extends AbstractBaseBitable {
28
+ readonly logger: Logger;
29
+ bitablePath: appTableFieldCreatePath;
30
+ bitableUrl: string;
31
+ constructor(feishuBaseInstance: FeishuBasePlus, bitableUrl: string);
32
+ setBitablePath(path: appTableFieldCreatePath | string): Promise<{
33
+ app_token: string;
34
+ table_id: string;
35
+ }>;
36
+ getBitablePath(bitableUrl?: string): Promise<{
37
+ app_token: string;
38
+ table_id: string;
39
+ }>;
40
+ batchFieldList(batchFieldListPayload: appTableFieldCreateData[]): Promise<boolean>;
41
+ sleep(ms: any): Promise<unknown>;
42
+ updateField(payloadData: appTableFieldCreateData, field_id?: string): Promise<{
43
+ field?: {
44
+ field_name: string;
45
+ type: number;
46
+ property?: {
47
+ options?: {
48
+ name?: string | undefined;
49
+ id?: string | undefined;
50
+ color?: number | undefined;
51
+ }[] | undefined;
52
+ formatter?: string | undefined;
53
+ date_formatter?: string | undefined;
54
+ auto_fill?: boolean | undefined;
55
+ multiple?: boolean | undefined;
56
+ table_id?: string | undefined;
57
+ table_name?: string | undefined;
58
+ back_field_name?: string | undefined;
59
+ auto_serial?: {
60
+ type: "custom" | "auto_increment_number";
61
+ options?: {
62
+ type: "system_number" | "fixed_text" | "created_time";
63
+ value: string;
64
+ }[] | undefined;
65
+ } | undefined;
66
+ location?: {
67
+ input_type: "only_mobile" | "not_limit";
68
+ } | undefined;
69
+ formula_expression?: string | undefined;
70
+ allowed_edit_modes?: {
71
+ manual?: boolean | undefined;
72
+ scan?: boolean | undefined;
73
+ } | undefined;
74
+ min?: number | undefined;
75
+ max?: number | undefined;
76
+ range_customize?: boolean | undefined;
77
+ currency_code?: string | undefined;
78
+ rating?: {
79
+ symbol?: string | undefined;
80
+ } | undefined;
81
+ type?: {
82
+ data_type: number;
83
+ ui_property?: {
84
+ currency_code?: string | undefined;
85
+ formatter?: string | undefined;
86
+ range_customize?: boolean | undefined;
87
+ min?: number | undefined;
88
+ max?: number | undefined;
89
+ date_formatter?: string | undefined;
90
+ rating?: {
91
+ symbol?: string | undefined;
92
+ } | undefined;
93
+ } | undefined;
94
+ ui_type?: "Number" | "Progress" | "Currency" | "Rating" | "DateTime" | undefined;
95
+ } | undefined;
96
+ } | undefined;
97
+ description?: {
98
+ disable_sync?: boolean | undefined;
99
+ text?: string | undefined;
100
+ } | undefined;
101
+ is_primary?: boolean | undefined;
102
+ field_id?: string | undefined;
103
+ ui_type?: "Text" | "Barcode" | "Number" | "Progress" | "Currency" | "Rating" | "SingleSelect" | "MultiSelect" | "DateTime" | "Checkbox" | "User" | "GroupChat" | "Phone" | "Url" | "Attachment" | "SingleLink" | "Formula" | "DuplexLink" | "Location" | "CreatedTime" | "ModifiedTime" | "CreatedUser" | "ModifiedUser" | "AutoNumber" | "Email" | undefined;
104
+ is_hidden?: boolean | undefined;
105
+ } | undefined;
106
+ }>;
107
+ getFieldList(): Promise<{
108
+ field_name: string;
109
+ type: number;
110
+ property?: {
111
+ options?: {
112
+ name?: string | undefined;
113
+ id?: string | undefined;
114
+ color?: number | undefined;
115
+ }[] | undefined;
116
+ formatter?: string | undefined;
117
+ date_formatter?: string | undefined;
118
+ auto_fill?: boolean | undefined;
119
+ multiple?: boolean | undefined;
120
+ table_id?: string | undefined;
121
+ table_name?: string | undefined;
122
+ back_field_name?: string | undefined;
123
+ auto_serial?: {
124
+ type: "custom" | "auto_increment_number";
125
+ options?: {
126
+ type: "system_number" | "fixed_text" | "created_time";
127
+ value: string;
128
+ }[] | undefined;
129
+ } | undefined;
130
+ location?: {
131
+ input_type: "only_mobile" | "not_limit";
132
+ } | undefined;
133
+ formula_expression?: string | undefined;
134
+ allowed_edit_modes?: {
135
+ manual?: boolean | undefined;
136
+ scan?: boolean | undefined;
137
+ } | undefined;
138
+ min?: number | undefined;
139
+ max?: number | undefined;
140
+ range_customize?: boolean | undefined;
141
+ currency_code?: string | undefined;
142
+ rating?: {
143
+ symbol?: string | undefined;
144
+ } | undefined;
145
+ type?: {
146
+ data_type: number;
147
+ ui_property?: {
148
+ currency_code?: string | undefined;
149
+ formatter?: string | undefined;
150
+ range_customize?: boolean | undefined;
151
+ min?: number | undefined;
152
+ max?: number | undefined;
153
+ date_formatter?: string | undefined;
154
+ rating?: {
155
+ symbol?: string | undefined;
156
+ } | undefined;
157
+ } | undefined;
158
+ ui_type?: "Number" | "Progress" | "Currency" | "Rating" | "DateTime" | undefined;
159
+ } | undefined;
160
+ } | undefined;
161
+ description?: string | undefined;
162
+ is_primary?: boolean | undefined;
163
+ field_id?: string | undefined;
164
+ ui_type?: "Text" | "Barcode" | "Number" | "Progress" | "Currency" | "Rating" | "SingleSelect" | "MultiSelect" | "DateTime" | "Checkbox" | "User" | "GroupChat" | "Phone" | "Url" | "Attachment" | "SingleLink" | "Formula" | "DuplexLink" | "Location" | "CreatedTime" | "ModifiedTime" | "CreatedUser" | "ModifiedUser" | "AutoNumber" | undefined;
165
+ is_hidden?: boolean | undefined;
166
+ }[]>;
167
+ getAppTableList(path: appTableFieldCreatePath): Promise<{
168
+ table_id?: string | undefined;
169
+ revision?: number | undefined;
170
+ name?: string | undefined;
171
+ }[]>;
172
+ getTargetTable(bitableUrl: string, tableName: any, batchFieldListPayload: appTableCreateData[]): Promise<{
173
+ table_id: string;
174
+ app_token: string;
175
+ }>;
176
+ getAppTableCreate(tableName: string, appToken: string, batchFieldListPayload: appTableCreateData[]): Promise<string>;
177
+ }
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BitableFieldBase = exports.fieldTypeEnum = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const lodash_1 = require("lodash");
6
+ const bitable_base_abstract_1 = require("./bitable-base.abstract");
7
+ const feishu_code_1 = require("./feishu-code");
8
+ var fieldTypeEnum;
9
+ (function (fieldTypeEnum) {
10
+ fieldTypeEnum[fieldTypeEnum["\u591A\u884C\u6587\u672C"] = 1] = "\u591A\u884C\u6587\u672C";
11
+ fieldTypeEnum[fieldTypeEnum["\u6570\u5B57"] = 2] = "\u6570\u5B57";
12
+ fieldTypeEnum[fieldTypeEnum["\u5355\u9009"] = 3] = "\u5355\u9009";
13
+ fieldTypeEnum[fieldTypeEnum["\u591A\u9009"] = 4] = "\u591A\u9009";
14
+ fieldTypeEnum[fieldTypeEnum["\u65E5\u671F"] = 5] = "\u65E5\u671F";
15
+ fieldTypeEnum[fieldTypeEnum["\u590D\u9009\u6846"] = 7] = "\u590D\u9009\u6846";
16
+ fieldTypeEnum[fieldTypeEnum["\u4EBA\u5458"] = 11] = "\u4EBA\u5458";
17
+ fieldTypeEnum[fieldTypeEnum["\u7535\u8BDD\u53F7\u7801"] = 13] = "\u7535\u8BDD\u53F7\u7801";
18
+ fieldTypeEnum[fieldTypeEnum["\u8D85\u94FE\u63A5"] = 15] = "\u8D85\u94FE\u63A5";
19
+ fieldTypeEnum[fieldTypeEnum["\u9644\u4EF6"] = 17] = "\u9644\u4EF6";
20
+ fieldTypeEnum[fieldTypeEnum["\u5355\u5411\u5173\u8054"] = 18] = "\u5355\u5411\u5173\u8054";
21
+ fieldTypeEnum[fieldTypeEnum["\u516C\u5F0F"] = 20] = "\u516C\u5F0F";
22
+ fieldTypeEnum[fieldTypeEnum["\u53CC\u5411\u5173\u8054"] = 21] = "\u53CC\u5411\u5173\u8054";
23
+ fieldTypeEnum[fieldTypeEnum["\u5730\u7406\u4F4D\u7F6E"] = 22] = "\u5730\u7406\u4F4D\u7F6E";
24
+ fieldTypeEnum[fieldTypeEnum["\u7FA4\u7EC4"] = 23] = "\u7FA4\u7EC4";
25
+ fieldTypeEnum[fieldTypeEnum["\u521B\u5EFA\u65F6\u95F4"] = 1001] = "\u521B\u5EFA\u65F6\u95F4";
26
+ fieldTypeEnum[fieldTypeEnum["\u6700\u540E\u66F4\u65B0\u65F6\u95F4"] = 1002] = "\u6700\u540E\u66F4\u65B0\u65F6\u95F4";
27
+ fieldTypeEnum[fieldTypeEnum["\u521B\u5EFA\u4EBA"] = 1003] = "\u521B\u5EFA\u4EBA";
28
+ fieldTypeEnum[fieldTypeEnum["\u4FEE\u6539\u4EBA"] = 1004] = "\u4FEE\u6539\u4EBA";
29
+ fieldTypeEnum[fieldTypeEnum["\u81EA\u52A8\u7F16\u53F7"] = 1005] = "\u81EA\u52A8\u7F16\u53F7";
30
+ })(fieldTypeEnum || (exports.fieldTypeEnum = fieldTypeEnum = {}));
31
+ class BitableFieldBase extends bitable_base_abstract_1.AbstractBaseBitable {
32
+ constructor(feishuBaseInstance, bitableUrl) {
33
+ super(feishuBaseInstance);
34
+ this.logger = new common_1.Logger(BitableFieldBase.name);
35
+ this.bitableUrl = bitableUrl;
36
+ }
37
+ async setBitablePath(path) {
38
+ if ((0, lodash_1.isString)(path)) {
39
+ this.bitablePath = await this.getBitablePath(path);
40
+ }
41
+ else {
42
+ this.bitablePath = path;
43
+ }
44
+ return this.bitablePath;
45
+ }
46
+ async getBitablePath(bitableUrl = '') {
47
+ this.logger.debug(`getBitablePath bitableUrl ${bitableUrl}`);
48
+ if (this.bitablePath) {
49
+ return this.bitablePath;
50
+ }
51
+ this.bitablePath = await this.getPath(this.bitableUrl);
52
+ return this.bitablePath;
53
+ }
54
+ async batchFieldList(batchFieldListPayload) {
55
+ const fieldList = await this.getFieldList();
56
+ let cnt = 0;
57
+ for (const field of batchFieldListPayload) {
58
+ const matchField = fieldList.find((item) => item.field_name === field.field_name);
59
+ cnt++;
60
+ if (cnt >= 9) {
61
+ cnt = 0;
62
+ this.logger.log(`延迟支持,10次/秒 QPS 限制`);
63
+ await this.sleep(1000);
64
+ }
65
+ if (!(matchField === null || matchField === void 0 ? void 0 : matchField.field_id)) {
66
+ await this.updateField(field, matchField === null || matchField === void 0 ? void 0 : matchField.field_id);
67
+ }
68
+ }
69
+ return true;
70
+ }
71
+ sleep(ms) {
72
+ return new Promise((resolve) => setTimeout(resolve, ms));
73
+ }
74
+ async updateField(payloadData, field_id) {
75
+ const { larkClient } = this;
76
+ const bitablePath = await this.getBitablePath();
77
+ try {
78
+ if (field_id) {
79
+ const res = await larkClient.bitable.appTableField.update({
80
+ data: payloadData,
81
+ path: Object.assign(Object.assign({}, bitablePath), { field_id }),
82
+ });
83
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
84
+ this.logger.log(`updateField 更新成功`, payloadData.field_name);
85
+ return res.data;
86
+ }
87
+ if (res.code === feishu_code_1.CODE_FAIL) {
88
+ }
89
+ this.logger.error(`updateField 更新失败`, res.msg, res.code, res);
90
+ }
91
+ else {
92
+ const res = await larkClient.bitable.appTableField.create({
93
+ data: payloadData,
94
+ path: bitablePath,
95
+ });
96
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
97
+ this.logger.log(`updateField 新增成功`, payloadData.field_name);
98
+ return res.data;
99
+ }
100
+ if (res.code === feishu_code_1.CODE_FAIL) {
101
+ }
102
+ this.logger.error(`updateField 新增失败`, res.msg, res.code, res, payloadData);
103
+ }
104
+ }
105
+ catch (error) {
106
+ this.logger.error(`updateField 操作失败`, error);
107
+ }
108
+ return null;
109
+ }
110
+ async getFieldList() {
111
+ this.logger.debug(`getFieldList init`);
112
+ const { larkClient } = this;
113
+ const bitablePath = await this.getBitablePath();
114
+ const logger = this.logger;
115
+ logger.debug(`getFieldList bitablePath ${bitablePath.table_id}`);
116
+ let list = [];
117
+ async function loopGetFieldList(page_token) {
118
+ const res = await larkClient.bitable.appTableField.list({
119
+ params: {
120
+ page_token,
121
+ page_size: 100,
122
+ },
123
+ path: bitablePath,
124
+ });
125
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
126
+ list = list.concat(res.data.items);
127
+ if (res.data.has_more) {
128
+ await loopGetFieldList(res.data.page_token);
129
+ }
130
+ }
131
+ else {
132
+ logger.error(`loopGetFieldList 获取失败`, res.msg, res.code);
133
+ }
134
+ }
135
+ try {
136
+ await loopGetFieldList('');
137
+ }
138
+ catch (error) {
139
+ this.logger.error(`getFieldList 获取失败`, error);
140
+ }
141
+ return list;
142
+ }
143
+ async getAppTableList(path) {
144
+ const { larkClient } = this.feishuBaseInstance;
145
+ const res = await larkClient.bitable.appTable.list({
146
+ params: {
147
+ page_size: 500,
148
+ },
149
+ path,
150
+ });
151
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
152
+ return res.data.items;
153
+ }
154
+ }
155
+ async getTargetTable(bitableUrl, tableName, batchFieldListPayload) {
156
+ const bitablePath = await this.getBitablePath(bitableUrl);
157
+ const appTableList = await this.getAppTableList(bitablePath);
158
+ let tableId = '';
159
+ const tableItem = appTableList.find((appTableListItem) => appTableListItem.name === tableName);
160
+ if (tableItem) {
161
+ tableId = tableItem.table_id;
162
+ }
163
+ else {
164
+ tableId = await this.getAppTableCreate(tableName, bitablePath.app_token, batchFieldListPayload);
165
+ }
166
+ return Object.assign(Object.assign({}, bitablePath), { table_id: tableId });
167
+ }
168
+ async getAppTableCreate(tableName, appToken, batchFieldListPayload) {
169
+ const { larkClient } = this.feishuBaseInstance;
170
+ const res = await larkClient.bitable.appTable.create({
171
+ data: {
172
+ table: {
173
+ name: tableName,
174
+ fields: batchFieldListPayload,
175
+ },
176
+ },
177
+ path: {
178
+ app_token: appToken,
179
+ },
180
+ });
181
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
182
+ return res.data.table_id;
183
+ }
184
+ throw new Error(`${BitableFieldBase.name}.getAppTableCreate 生成失败。 tableName: ${tableName} appToken: ${appToken}`);
185
+ }
186
+ }
187
+ exports.BitableFieldBase = BitableFieldBase;
188
+ //# sourceMappingURL=bitable-base-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitable-base-field.js","sourceRoot":"","sources":["../src/bitable-base-field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ import { Client } from '@larksuiteoapi/node-sdk';
2
+ import { Logger } from '@nestjs/common';
3
+ import { BitableFieldBase } from './bitable-base-field';
4
+ import { FeishuBasePlus } from './feishu-base-plus';
5
+ import { TypeAppTablePath, TypeAppTableRecordSearchPayloadData, TypeAppTableRecordSearchPayloadParams } from './type.bitable';
6
+ import { appTableFieldCreatePath, AppTableRecordRecordField, typeAppTableRecordCreateFields, TypeBitablePath } from './types';
7
+ export declare class BitableRecordBase extends BitableFieldBase {
8
+ logger: Logger;
9
+ bitablePath: appTableFieldCreatePath;
10
+ larkClient: Client;
11
+ static instance: Map<string, BitableRecordBase>;
12
+ constructor(feishuBaseInstance: FeishuBasePlus, bitableUrl: string);
13
+ getBitablePath(bitableUrl: string): Promise<TypeBitablePath>;
14
+ setBitablePath(path: appTableFieldCreatePath | string): Promise<{
15
+ app_token: string;
16
+ table_id: string;
17
+ }>;
18
+ getRecordById<T = AppTableRecordRecordField>(record_id: string, bitableUrl?: string, user_id_type?: 'open_id' | 'user_id' | 'union_id'): Promise<T>;
19
+ batchGetRecord<T = AppTableRecordRecordField>(record_ids: string[], bitableUrl?: string, user_id_type?: 'open_id' | 'user_id' | 'union_id'): Promise<T[]>;
20
+ recordUpdate(record_id: string, fields: any, bitableUrl?: string): Promise<{
21
+ fields: Record<string, string | number | number | number | boolean | {
22
+ text?: string;
23
+ link?: string;
24
+ } | {
25
+ location?: string;
26
+ pname?: string;
27
+ cityname?: string;
28
+ adname?: string;
29
+ address?: string;
30
+ name?: string;
31
+ full_address?: string;
32
+ } | Array<{
33
+ id?: string;
34
+ name?: string;
35
+ avatar_url?: string;
36
+ }> | Array<string> | Array<{
37
+ id?: string;
38
+ name?: string;
39
+ en_name?: string;
40
+ email?: string;
41
+ avatar_url?: string;
42
+ }> | Array<{
43
+ file_token?: string;
44
+ name?: string;
45
+ type?: string;
46
+ size?: number;
47
+ url?: string;
48
+ tmp_url?: string;
49
+ }>>;
50
+ record_id?: string | undefined;
51
+ created_by?: {
52
+ id?: string | undefined;
53
+ name?: string | undefined;
54
+ en_name?: string | undefined;
55
+ email?: string | undefined;
56
+ avatar_url?: string | undefined;
57
+ } | undefined;
58
+ created_time?: number | undefined;
59
+ last_modified_by?: {
60
+ id?: string | undefined;
61
+ name?: string | undefined;
62
+ en_name?: string | undefined;
63
+ email?: string | undefined;
64
+ avatar_url?: string | undefined;
65
+ } | undefined;
66
+ last_modified_time?: number | undefined;
67
+ shared_url?: string | undefined;
68
+ record_url?: string | undefined;
69
+ }>;
70
+ search(payloadData: TypeAppTableRecordSearchPayloadData, payloadParams: TypeAppTableRecordSearchPayloadParams, path: TypeAppTablePath): Promise<{
71
+ code?: number | undefined;
72
+ msg?: string | undefined;
73
+ data?: {
74
+ items?: {
75
+ fields: Record<string, string | number | number | number | boolean | {
76
+ text?: string;
77
+ link?: string;
78
+ } | {
79
+ location?: string;
80
+ pname?: string;
81
+ cityname?: string;
82
+ adname?: string;
83
+ address?: string;
84
+ name?: string;
85
+ full_address?: string;
86
+ } | Array<{
87
+ id?: string;
88
+ name?: string;
89
+ avatar_url?: string;
90
+ }> | Array<string> | Array<{
91
+ id?: string;
92
+ name?: string;
93
+ en_name?: string;
94
+ email?: string;
95
+ avatar_url?: string;
96
+ }> | Array<{
97
+ file_token?: string;
98
+ name?: string;
99
+ type?: string;
100
+ size?: number;
101
+ url?: string;
102
+ tmp_url?: string;
103
+ }>>;
104
+ record_id?: string | undefined;
105
+ created_by?: {
106
+ id?: string | undefined;
107
+ name?: string | undefined;
108
+ en_name?: string | undefined;
109
+ email?: string | undefined;
110
+ avatar_url?: string | undefined;
111
+ } | undefined;
112
+ created_time?: number | undefined;
113
+ last_modified_by?: {
114
+ id?: string | undefined;
115
+ name?: string | undefined;
116
+ en_name?: string | undefined;
117
+ email?: string | undefined;
118
+ avatar_url?: string | undefined;
119
+ } | undefined;
120
+ last_modified_time?: number | undefined;
121
+ shared_url?: string | undefined;
122
+ record_url?: string | undefined;
123
+ }[] | undefined;
124
+ has_more?: boolean | undefined;
125
+ page_token?: string | undefined;
126
+ total?: number | undefined;
127
+ } | undefined;
128
+ }>;
129
+ searchAllRecord<T = AppTableRecordRecordField>(payloadData: TypeAppTableRecordSearchPayloadData, payloadParams: TypeAppTableRecordSearchPayloadParams, path: TypeAppTablePath): Promise<T[]>;
130
+ createRecord<T extends Record<string, any> = typeAppTableRecordCreateFields>(fields: T): Promise<{
131
+ code?: number | undefined;
132
+ msg?: string | undefined;
133
+ data?: {
134
+ record?: {
135
+ fields: Record<string, string | number | number | number | boolean | {
136
+ text?: string;
137
+ link?: string;
138
+ } | {
139
+ location?: string;
140
+ pname?: string;
141
+ cityname?: string;
142
+ adname?: string;
143
+ address?: string;
144
+ name?: string;
145
+ full_address?: string;
146
+ } | Array<{
147
+ id?: string;
148
+ name?: string;
149
+ avatar_url?: string;
150
+ }> | Array<string> | Array<{
151
+ id?: string;
152
+ name?: string;
153
+ en_name?: string;
154
+ email?: string;
155
+ avatar_url?: string;
156
+ }> | Array<{
157
+ file_token?: string;
158
+ name?: string;
159
+ type?: string;
160
+ size?: number;
161
+ url?: string;
162
+ tmp_url?: string;
163
+ }>>;
164
+ record_id?: string | undefined;
165
+ created_by?: {
166
+ id?: string | undefined;
167
+ name?: string | undefined;
168
+ en_name?: string | undefined;
169
+ email?: string | undefined;
170
+ avatar_url?: string | undefined;
171
+ } | undefined;
172
+ created_time?: number | undefined;
173
+ last_modified_by?: {
174
+ id?: string | undefined;
175
+ name?: string | undefined;
176
+ en_name?: string | undefined;
177
+ email?: string | undefined;
178
+ avatar_url?: string | undefined;
179
+ } | undefined;
180
+ last_modified_time?: number | undefined;
181
+ shared_url?: string | undefined;
182
+ record_url?: string | undefined;
183
+ } | undefined;
184
+ } | undefined;
185
+ }>;
186
+ protected fetchBatchBitTableParamsChunk(records: any[], chunkSize?: number): any;
187
+ appTableRecordBatchDelete(records: string[], bitablePath: TypeBitablePath): Promise<{
188
+ fail: number;
189
+ success: number;
190
+ }>;
191
+ batchBitableControl(records: any, bitablePath: TypeBitablePath, chunkSize?: number, user_id_type?: 'open_id' | 'user_id' | 'union_id'): Promise<{
192
+ edit: {
193
+ successTotal: number;
194
+ failTotal: number;
195
+ total: number;
196
+ title: string;
197
+ };
198
+ add: {
199
+ successTotal: number;
200
+ failTotal: number;
201
+ total: number;
202
+ title: string;
203
+ };
204
+ }>;
205
+ updateBitableRecords(recordsList: any[], opType: 'edit' | 'add', bitablePath: any, chunkSize?: number, user_id_type?: 'open_id' | 'user_id' | 'union_id'): Promise<{
206
+ successTotal: number;
207
+ failTotal: number;
208
+ total: number;
209
+ title: string;
210
+ }>;
211
+ }